The sales pitch that has to prove itself.
A one-person agency’s own site: designed, written, coded, and hosted by the person it sells. Lighthouse 98 performance, zero layout shift, and an AI receptionist answering its phone line.

The problem
An agency that sells websites has exactly one credential that can’t be faked: its own site. Before any client work could live on this page, the site around it had to make the argument by itself. Every claim FWA makes (custom code, honest pricing, performance you can measure) gets tested against the first thing a prospect ever sees.
The approach
One person built all of it, which is also the pitch. The copy came first and the design had to serve it: a locked voice with no hype, a claims policy that allows only verifiable statements, and prices published right on the site. The design system is called Highlighter: ink, paper, and one yellow, used the way a marker gets used on a printed page. Motion is hand-built CSS that fires once and honors reduced-motion settings. No template, no page builder, no animation library.
What got built
- A custom, server-rendered Nuxt 4 front end with a hand-rolled motion system: marker sweeps that paint the highlights, a services band that follows your attention, and a process timeline that draws itself.
- A headless CMS (Directus) for the content that actually changes: articles, case studies, and testimonials. Everything else lives in code, where it can’t drift.
- An AI receptionist answering the business line and the demo line, feeding every call into the same intake as the contact form.
- A self-hosted Docker stack behind Caddy on a small DigitalOcean server, deployed and maintained by the same person who built it.
What changed
This section is where client case studies will carry calls, bookings, and revenue. For our own site, the honest numbers are build numbers, measured with Lighthouse on August 20, 2026: 98 performance on desktop with a 0.6-second largest contentful paint, zero cumulative layout shift on mobile, 100 for SEO, 100 for best practices, and 96 for accessibility. Every page ships as server-rendered HTML, with or without JavaScript.
Stack
Nuxt 4 · Vue 3 · Tailwind CSS v4 · Directus · Docker · Caddy · DigitalOcean · Plausible & GA4 · Vapi (AI receptionist)
The client’s words
“Demanding client. Kept changing the hero. Would hire again.”
— Kasan Francis, the client. Also the agency.
Let's figure out what your site should actually be doing.
No hard sell, no jargon, no obligation. Tell me where things stand and I'll tell you honestly whether I can help and what it'd take.