Getting started
Cinderblock is a forkable template. The fork-to-green flow takes under 5 minutes on a warm Docker cache; first run is 10–15 minutes while supabase start pulls images.
Prerequisites
- Node 22 + npm
- Docker (for the local Supabase stack)
- A Supabase Cloud project on the Pro plan (the demo deployment uses one; forkers create their own)
1 — Fork the template
Click Use this template on github.com/philiprehberger/cinderblock and clone your fork.
2 — Run the post-clone setup
cd cinderblock
npm install
npx supabase start # ~10-15min cold cache, ~45s warm
./scripts/setup-roles.sh # generates cb_audit_writer + cb_impersonator passwords
npx supabase test db # 74 tests should pass
npm run dev # http://localhost:30003 — Wire Stripe (optional)
The billing UI works in "not configured" mode without keys. To exercise Checkout / Customer Portal end-to-end:
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PRICE_TEAM=price_...
STRIPE_PRICE_BUSINESS=price_...See Stripe wiring for the full setup, including the webhook endpoint.
4 — Deploy to your own Supabase project
supabase link to your Cloud project, then supabase db push applies the migrations. The Cinderblock deployment uses EC2 + Apache + PM2; see Swap to Vercel if you prefer the Vercel path — the stack is portable.