Three days ago I confirmed my first mission on The Airlock. The mission? Shipping The Airlock itself.

The Problem With Building Alone

Every indie hacker knows the graveyard: half-finished side projects, repos with a great README and no deploy, domains renewed yearly out of guilt. The missing ingredient is never ideas or skill. It’s a deadline that actually hurts to miss.

Public accountability works, but “building in public” on X is toothless. You post a screenshot, get twelve likes, and quietly stop. Nobody remembers what you promised.

So I built the version with teeth.

How The Airlock Works

The rules fit in four lines:

  • Board the ship. Buy a boarding pass and claim one of 100 numbered seats. I’m Seat 01.
  • Declare a mission. One app, 30 days, publicly logged with a timestamp.
  • Attach proof. A live URL with a working buy button before the hatch closes. Not a waitlist. Not a demo. Something a stranger can pay for.
  • Confirmed or airlocked. Hit the deadline and the launch lands on your public launch wall. Miss it and your handle goes on the airlock log. Forever. There is no delete button.

The buy button requirement is the core of it. It forces you to solve payments, deployment, and “would anyone pay for this?” inside the 30 days — the three things side projects conveniently postpone until never.

Eating My Own Cooking

I declared “Ship Airlock v1.0 + Clerk billing” on May 12th, the same day I boarded. That gave me 30 days to build the platform that would publicly shame me if I failed to build it. Recursion as a motivation strategy.

Confirmed on June 12th, with a real buy button, hatch closed with time to spare.

The Stack

  • Astro with SSR on AWS Lambda — static-first pages, server rendering where sessions matter. One fun bug: Lambda Function URLs lossily UTF-8-decode gzip request bodies, which broke PostHog ingestion until I switched the client to plain JSON. That one cost an evening.
  • Clerk for auth and billing — boarding passes are Clerk Billing subscriptions. Checkout, renewals, and cancellations were done in an afternoon; I never wrote a webhook handler for payment state.
  • PostHog behind a first-party relay — EU instance, proxied through the site with token and redirect-URL redaction baked into before_send.
  • A retro space-station design system — VT323 terminal type, pixel-art astronaut avatars, rubber-stamp badges (DECLARED, CONFIRMED, PROOF), grain overlays, and SVG spaceship mission patches as OG-image fallbacks. This is where most of the fun lived.

What’s Next

The Wake — a public feed of every seal, hatch, and paid release — is live. Preset miss posts are armed on my account: if I ever miss a hatch, the platform auto-posts about it from my handle. Extra rope.

Seat 01 is taken. 99 left. If you have a graveyard of almost-shipped projects, you know where the hatch is: theairlock.space.

My next mission is already declared. More on that soon.