Side project
Headliner.
An experiment in building with AI.
I wanted to find out how far one person could take a real product by building alongside AI. The answer became Headliner: a website platform for bands and artists, now live at headliner.band.
What it became
A real platform,
not a prototype.
A real site on the artist’s own domain that keeps itself current. Designed, built and launched on my own.
- Multi-tenant: every artist gets their own site, domain and dashboard
- Postgres on Supabase, with row-level security keeping each account's data its own
- Stripe subscriptions and billing; transactional email with Resend
- Syncs releases, videos and tour dates from Spotify, YouTube and Bandsintown
- Commits
- 933
- Of active build
- 7 weeks
- Database migrations
- 34
How it was built
One person,
working with AI.
Claude Code at my side
I used Claude Code to plan features, write and review code, and work through bugs. It moved fast; I decided what shipped.
Agents for review
Separate agents, each with one brief, reviewed the work for security, SEO and accessibility in parallel. I've since used the same approach to audit this site.
Tested in every engine
Key pages were rendered in Chromium, WebKit and Firefox at phone, tablet and desktop sizes, in both orientations, rather than assuming Safari behaves like Chrome.
Rules the AI had to follow
A written standard for branches and releases, security, accessibility and performance. The more specific the rules, the better the work that came back.
What I learned
What the experiment
taught me.
AI is fast. Judgment still decides what ships.
Clear written rules beat clever prompts.
Check the result, not the claim. AI can be confidently wrong.
Previews and a ready rollback make moving fast safe.
Also built
Other things
I’ve built.
In development
Up North client portal
A monorepo platform for client accounts: multi-tenant Postgres with row-level security, features switched on per organization, and sign-in behind its own interface so the provider can change.
In use
Proposal builder
A private tool that turns a scoped project into a client-ready proposal, with an Airtable dashboard behind it.
On this site
Live Google reviews
Reviews read server-side from the Google Places API, cached hourly and shown across the site, so they are always current and never slow a page down.
In use
Showcase generator
Config-driven, branded images of finished client sites for Google Business Profile and Instagram, captured with real device emulation and rendered at 2×.
What it’s built with.
- Claude Code
- Next.js
- React
- TypeScript
- Supabase
- Postgres
- Stripe
- Resend
- Playwright
- Vercel
