Commit Graph
15 Commits
Author SHA1 Message Date
asownerytandClaude Opus 5.5 95887551b2 Remove the sticky mobile Call/Text bar
Docker / build (push) Failing after 1m43s
Also drops the body padding and Chatwoot bubble offset that only
existed to make room for it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:31:24 +13:00
asownerytandClaude Opus 5.5 30dc6f2c7b Migrate to the cn package
- Ran `npx shadcn@latest migrate cn`: swaps clsx + tailwind-merge for cn
- Import cn from "cn" everywhere (matches what `shadcn add` now writes)
  and remove the src/lib/utils.js re-export shim

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:26:38 +13:00
asownerytandClaude Opus 5.5 f916f058fc Swap to shadcn components and polish the design
Components (added via the shadcn MCP/CLI):
- Navbar: NavigationMenu on desktop, Sheet on mobile; drops
  Navbar.module.css and the hand-rolled slide-down menu
- Buttons: shadcn Button via a shared ContactButtons component
  (replaces Button.js and its CSS module)
- Card for price cards, testimonials, the business block and plan;
  Table for prices; Input/Textarea/Label/NativeSelect/RadioGroup and
  Alert in the quote form; Separator in the footer
- Components import cn from @/lib/utils (not the new "cn" package);
  accordion moved to the unified radix-ui package

Design tweaks:
- Geist Sans is actually applied (font variables were on <body>, but
  Tailwind reads them on <html>, so the site fell back to system fonts)
- Theme primary set to the existing brand blue; slightly smaller radius
- Balanced, tighter heading tracking; muted secondary text
- 44px contact buttons; 16px FAQ text; tighter homepage spacing
- Full-width selects with 16px text on phones (no iOS zoom)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:25:07 +13:00
asownerytandClaude Opus 5.5 f6846ebaae Add shadcn MCP server config
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:15:46 +13:00
asownerytandClaude Opus 5.5 1ec5088652 Update dependencies and fix security advisories
- next 16.3.7, react/react-dom 19.3.0, tailwindcss 4.3.3, sharp 0.35.5,
  lucide-react 1.49.0 and other minor updates
- npm audit: 10 vulnerabilities (2 critical: next, tar) -> 0
- Remove unused motion and @next/env
- Stay on ESLint 9: ESLint 10 crashes in eslint-config-next's plugins

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:14:25 +13:00
asownerytandClaude Opus 5.5 275bce3b87 Phase 6: QA fixes for Lighthouse and navigation
- Map is a titled iframe (accessibility); drop @next/third-parties
- "Services" nav toggle is a real button with aria-expanded (SEO
  crawlable-anchors, accessibility)
- Hero images use default quality; page-header image is preloaded (LCP)
- Mobile services submenu no longer clips its last item

Mobile Lighthouse: / 94/100/100/100, /services/computer-repair
96/100/100/100, /areas/henderson 97/100/100/100, /contact 95/100/100/100
(performance/accessibility/best practices/SEO).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:52:53 +13:00
asownerytandClaude Opus 5.5 4d901b351e Phase 5: contact, conversion and tracking hooks
- Contact page: Call/Text/WhatsApp at the top, hours, drop-off address,
  service area, map, and the quote form
- Quote form: device, problem, preferred contact; email required, phone
  optional; labels wired to inputs; _gotcha honeypot; AJAX submit to
  form.taxi with an inline "same day during business hours" message and
  an error fallback (still posts normally without JavaScript)
- Analytics hooks for click_call, click_text, click_email,
  submit_quote_form and click_google_reviews; no-ops until Plausible
  is installed
- /review redirects (307) to the Google review link
- Maps embed moved to one MapEmbed component

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:48:56 +13:00
asownerytandClaude Opus 5.5 9f5cf387dc Phase 4: pricing, about, area, Windows 10 and business pages
- /pricing: full price list, no-fix-no-fee terms, travel and payments
- /about: first-person page from confirmed facts, links to area pages
- /areas/[suburb]: Te Atatū Peninsula, Te Atatū South, Henderson and
  Massey, generated from src/lib/areas.js with suburb-specific copy
- /windows-10: options page with free Windows 11 check; October 2028
  used for business Extended Security Updates
- /business: $65/month plan (2 hours, no lock-in, no rollover)
- Nav gains Pricing/About and Business/Windows 10 links; footer rebuilt
  with address, hours and links; homepage links areas, /business and
  a Windows 10 banner; sitemap includes all new routes
- Mobile menu hides by its own height (fixes overflow with more links);
  hamburger now used below 900px so the link row never overlaps

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:47:06 +13:00
asownerytandClaude Opus 5.5 40d3a08050 Phase 3: service pages on a shared template
- ServicePage template: H1 with service + area, intro with Call/Text
  above the fold, What I fix, Pricing, How it works, Why choose me,
  a testimonial, FAQs (with FAQPage schema), CTA band, related services
- Service copy moved to src/lib/services.js, rewritten in first person
  with owner-confirmed jobs and prices only; removes the "team of
  technicians", "preferred choice", Mac and motherboard claims
- FaqList and CtaBand extracted and shared with the homepage
- Button gains primary/outlineDark variants; responsive page-header H1
- Compact Chatwoot bubble on phones so it doesn't cover CTAs

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:37:42 +13:00
asownerytandClaude Opus 5.5 7043b47de1 Phase 2: homepage that converts
- Hero says what and where, with No fix no fee / $35 diagnosis, Call and
  Text CTAs, and the real Google rating
- Common fixes grid with owner-confirmed labour prices, linking to
  service pages
- How it works, About (first person), testimonials, areas served with
  map, a short business IT block, rewritten FAQ and a final CTA band
- Sticky Call/Text bar on mobile (site-wide); Chatwoot bubble moved above it
- Button renders a link when given href (no more button-inside-link)
- Business facts (prices, rating, testimonials, contact links) in site.js

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:32:46 +13:00
asownerytandClaude Opus 5.5 c085e2b031 Phase 1: technical SEO foundations
- Per-page titles, descriptions, canonicals, Open Graph/Twitter tags
  via a shared pageMetadata() helper; metadataBase on the root layout
- Sitemap generated from a route list on the canonical non-www host;
  robots.txt points to it; /services removed
- One H1 per page; decorative images get empty alt text
- JSON-LD: site-wide ComputerRepairService, FAQPage on the homepage,
  Service on each service page
- FAQ answers are now server-rendered (forceMount) so the schema matches
  the HTML; fixed the nested payment FAQ item
- Drop web design (page, nav link, homepage card and FAQs); 301 the old URL
- Remove GA, Facebook Pixel and Vercel Analytics/Speed Insights
- Fix tel: links (+640211... -> +64211...)
- Add og-image.png and logo.png

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:24:29 +13:00
asowneryt 0478ab65e5 Update compose.yml
Docker / build (push) Successful in 1m19s
2026-07-18 01:20:18 +12:00
asowneryt fd81eeb21e Create compose.yml
Docker / build (push) Canceled after 25s
2026-07-18 01:19:59 +12:00
asowneryt 7ad57bb981 Update docker-publish.yml
Docker / build (push) Failing after 19s
2026-07-18 01:15:18 +12:00
asowneryt 0c9a87e8be Update 2026-07-18 01:12:55 +12:00