NexAI AdvisorsThe Record
My own site, redesigned in October 2026 for the AI staff offer: white sheets on a sage desk, a business record a hire answers from, and every price from one data file. A render audit gates each release on contrast, overflow and accessibility.
Built with Next.js 14, React 18, TypeScript, Tailwind CSS, next/font, Playwright, axe-core, Jest, Netlify, Cal.com.
4.5:1
Every text and ground pair is measured at or above AA contrast by the render audit, not eyeballed
One price source
Every dollar figure on the site and in the chat agent comes from a single data file
4 widths
Horizontal overflow measured at 375, 768, 1280 and 1440 pixels before each release



What it is
The site is a Next.js 14 App Router build in strict TypeScript, deployed to Netlify from the main branch. Every public route uses one design system, documented in the repo and expressed as a single stylesheet of tokens: a sage desk, white sheets with square corners and spruce rules, a highlighter yellow reserved for the line an AI hire read, and Public Sans for display and body alike. The home page is a binder: the first sheet holds the pitch beside an example business record with tabbed entries, the line the hire read highlighted, and the reply it drafted waiting for the owner's OK; the sheets that follow carry the two doors, the three priced steps, the house rules, the client file, and who builds it. Every price on every page comes from one data file that the chat agent also reads, so a number can only change in one place.
The problem
The previous site sold a list of packages, with prices repeated across pages, and a chatbot that still quoted a retired figure. The redesign had to say one thing - I review what AI built and make it production-ready - keep every number in one place, and hold itself to the accessibility and performance standard I ask clients to meet.
What I built
All price bands, the guarantee, payment terms and FAQ moved into one data file that every page and the chat agent read, so a price can only change in one place. A render audit script drives Playwright and axe-core over every route derived from the app directory: it measures each text and ground pair against 4.5:1, measures horizontal overflow at 375, 768, 1280 and 1440 pixels, and fails on any unnamed button or select. A gate script runs lint, typecheck, build, the Jest suite, that audit, a guard against retired colour tokens, and a public-secrets check, and prints each exit code on its own line. Only transform and opacity animate, reduced-motion renders final states, and the headline is server-rendered. Every retired route redirects to a real page.
What happened
Live at nexaiadvisors.com. The home page went up on 2026-09-02 and every other route was converted the next day, all in one vocabulary. The gate is the definition of done for a release, and the chat agent answers with the same ladder the pages show.
What it changed
- One promise on the landing page instead of a package list
- Prices can only change in one place, so the site and the chat agent never disagree
- The site meets the same contrast and accessibility bar I hold client work to
Who it fits
- Founders with an app built in Lovable, Bolt, Replit, v0 or Cursor who need it reviewed before launch
- Business owners who want the phone answered and the back office automated
- Anyone deciding whether to hand over a plan or have it taken to production
- One token stylesheet for every route, with Tailwind kept for layout helpers only
- Render audit over every route: contrast pairs, overflow at four widths, axe button and select names
- A release gate that runs lint, typecheck, build, tests, the audit, a retired-token guard and a secrets check, printing each exit code
- Offer ladder, guarantee, payment terms and FAQ held in one data file read by pages and the chat agent
- Animation limited to transform and opacity, with reduced-motion rendering final states
Want something like this built?
Bring the job that eats your week. Step 1 is a free 15-minute fit call. Step 2 is the AI Staff Assessment, $500, a written assessment you keep. Step 3 is your first hire at a published price, or you take the assessment and stop.