Web Application
EarlyBird, Next.js App (Vercel + Supabase)
A minimalist waitlist application built with Next.js, TypeScript, and Supabase, deployed on Vercel. A single-purpose signup page with privacy-first data handling: emails stored in one Supabase row with row-level security, hashed IPs for spam control.
EarlyBird is a quiet, design-led waitlist tool. The list before the launch.
The problem
Most waitlist tools are marketing platforms wearing a signup form, and they treat an email address as the start of a drip campaign. Some products want the opposite: capture interest, promise almost nothing, and be trusted with the address.
What I built
A single-purpose signup page. Editorial, no-noise aesthetic. One thing to do on the page.
A three-principle promise stated on the page. One email when something ships, no drip campaigns, one-click unsubscribe. Stated as a commitment, which is the actual product here.
Privacy-first storage. Each signup is a single Supabase row with row-level security enabled, so the data boundary is enforced at the database rather than in application code.
Hashed IPs for spam control. Abuse prevention without retaining identifiable data, which is the trade most signup forms get wrong in the other direction.
The stack
Next.js with TypeScript, Supabase for storage and auth, deployed to Vercel. This one exists partly to show range beyond PHP into the React and serverless stack.
Related services
Need something similar? Tell me what you are launching and how much noise you want to make about it.
