- 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]>
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]>
- 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]>