All work

Billboard

Outdoor advertising is sold the way it was sold in 1985 — a phone call, a rate card, a twelve-month contract. This puts the whole thing on a website: pick a spot, design the ad, pay monthly, cancel whenever.

Role
Sole developer
Surface
Website + admin
Stack
Expo Router web · Supabase · Stripe
Status
Built, pre-launch
Billboard home page

A physical thing, sold like software.

The board is real and it has exactly sixteen slots, so the product has a hard inventory limit that a normal SaaS signup flow doesn't. When the rotation is full, the next person joins a waitlist rather than getting a checkout page.

Everything after that is subscription mechanics: Stripe checkout, a customer portal for changing the card or cancelling, and webhooks keeping the subscription state on the account in sync with what Stripe believes.

How it works
Three steps, stated plainly, before anyone is asked for a card.

The parts that were hard.

Nothing goes up unseen

This is a physical board in public, so an unmoderated upload is not an option. Every design — the first one and every change after — passes an automated image check and then a human look before it enters the rotation.

Designing without a designer

Most small businesses don't have artwork that fits a billboard. An AI design step takes a description or a starting point and drafts something at the board's exact dimensions, so the preview is precisely what will be displayed.

Payments that fail safely

The payment functions answer with a clear 'not configured' state rather than half-working when Stripe credentials are absent, so a broken key never turns into a customer thinking they've bought a slot they don't have.

Next case study
itisonme.org
Read it