Case study · This very website

The site that sells my work is also the proof of it.

You're standing inside the case study. Here's how this whole thing got built, fast, by me and an AI pair, in a voice that's mine, on a stack cheap enough to hand the same thing to a corner store down the road.

Claude Code · custom voice skill · Cloudflare Pages + Functions · Workers KV · GitHub

01

A consultant's site, built the way I'd build yours

The premise · Why eat my own cooking

Truth be told, most consulting sites are a billboard. Mine needed to be a working demonstration, because I sell building things, and the fastest way to prove I can build yours is to point at the one you're reading. Every piece here, the marketing pages, the lead-intake form that actually emails me, a private prospecting dashboard, password-gated demo sites for local businesses, a reusable template that spins up a neighbor's site in days, all of it is the same kind of work I'd do for a client.

So this case study is a little unusual. The product and the proof are the same object. Let me walk you through how it got built, and why it's built the way it is.

02

The whole thing, on one page

Architecture · The big picture

Here's the entire system. One stack, three jobs: a build loop that turns conversation into deployed code, a public site for clients and the community, and a set of private tools sitting behind a single password.

Architecture diagram of josephschafer.com showing the build loop, the public site, and the private tools, all on Cloudflare.
// the build loop feeds both the public site and the private tools, all on one Cloudflare deploy
03

Built by pairing with an AI, in my own words

The build loop · Claude Code + a voice skill

The hard part of writing with AI isn't getting words out. It's getting words that sound like you. So I taught it how I sound.

I built this site by pairing with Claude Code, describing what I wanted and steering as it wrote the markup, the styles, and the serverless functions. That part is becoming common. The part that matters is the voice.

I wrote a custom voice skill, a little rulebook the AI loads on every session, that captures how I actually write: story first, honest about tradeoffs, allergic to the tells that scream "a robot wrote this." No em-dashes. None of the smug "it's not X, it's Y" constructions. No filler. When I caught a phrasing I hated, I added a rule, and it never showed up again. Every page on this site went through that filter, which is why it reads like one person instead of a content mill.

The mechanics underneath are deliberately boring, which is the point. Code lives in a private Git repository. Every change is a commit. Pushing to the main branch deploys the live site in about a minute, with no servers for me to babysit. I can do it from my laptop or my phone, and the voice skill rides along in the repo so the writing stays consistent wherever I work.

~24h
from a starter file to a full multi-page site, live
1
voice skill keeping every page sounding like a person
0
servers to run; push-to-deploy on Cloudflare
100%
of the work version-controlled and reversible
04

A real backend, with nothing to run

The public site · Serverless functions

A brochure site is easy. This one does actual work. The lead-intake form takes a real submission, runs it through a hidden honeypot field to swat away bots, and emails it straight to me through a verified sending domain. That's a Cloudflare Pages Function: a small piece of code that runs on demand at the edge, so there's no always-on server sitting there costing money and waiting to be patched.

The booking page hooks into a calendar so people can grab a working session without a back-and-forth. The whole public site is static files plus a handful of these functions, which is why it's fast everywhere and costs almost nothing to keep online. That low running cost is exactly what lets me offer a local business a real site for a price that makes sense.

05

Private tools, built for finding and helping neighbors

The community engine · GeoOutbound, demos, the template

Behind one password sits the part I'm proudest of, because it's pointed at the South Shore. GeoOutbound is a prospecting dashboard that finds every local business near a town, scores each one on how strong it is and how thin its web presence is, and ranks them so the ones I could genuinely help float to the top. I can mark a lead's status, keep notes, and those changes follow me across devices because they're saved server-side in Cloudflare's key-value store.

The GeoOutbound dashboard: a ranked, color-coded table of local businesses with opportunity scores, status, web presence, and contact details (company names blurred).
// GeoOutbound: every business near a town, scored and ranked, with status and notes that persist. Names blurred.

Next to it is the part that closes the loop. From a reusable website template, a single config-driven file, I can stand up a concept site for a real local business in an afternoon. I show it to them behind a password before anyone commits to anything. The barber, the tutoring center, the general store that's been on the corner since 1938, each can see exactly what their site would look like, in their own colors, before spending a dollar.

The same stack that runs my consulting site runs the corner store's site too. That's not a coincidence. It's the whole idea.

The economics are the quiet engine here. Because everything is static files and serverless functions on infrastructure I already use, hosting a neighbor's landing page costs almost nothing. That's what lets me price it for a small business instead of an enterprise, and it's why a tool for finding local businesses and a tool for building their sites live in the same place.

1
password unlocks the dashboard and every demo
1 file
config-driven template behind every client site
days
from a handshake to a real site on their domain
~$0
marginal hosting cost per business served
06

Why it's built this way

The design decisions, plainly

  • Static and serverless by default. No always-on server means near-zero hosting cost and almost nothing to break or patch. The savings get passed straight to the businesses I work with.
  • AI-paired, but human-steered. The AI types fast; I decide what's right. The combination is how a one-person shop ships like a small team.
  • A voice skill with real rules. How I write, captured once and applied everywhere, so the site sounds like me on page one and page twenty.
  • One password, one stack. The prospecting tool, the demos, and the public site share infrastructure and a single sign-in. Less to maintain, less to explain.
  • Rooted on the South Shore. Every technical choice bends toward the same goal: making it cheap and fast to get a local business online and found.

Want one of these for your business?

If you run something local and you've been putting off a real website, this is the stack I'd build it on, and the price reflects it. Let's talk.