The engine behind showhatch.com — now yours

Ship a self-serve multi-tenant SaaS this weekend

Your customer checks out with Stripe. ~3 minutes later they have a live, isolated instance of your app on their own subdomain — own database, own admin, optionally their own Stripe receiving their money. One Linux box. No Kubernetes.

Get the kit → See it live in production ↗
Tenant provisioning + isolation~2 days
Stripe subscriptions + billing webhooks~1 day
BYO-Stripe onboarding for tenants~1 day
Subdomain routing + TLS + systemd~1 day
Teardown, dunning, edge cases~1 day
Multi-tenant plumbing before your first tenant6+ days
With HatchKitan afternoon
$ # stripe checkout.session.completed → webhook fires…
Two kits, one factory

What's inside

SKU 1 · the factory

HatchKit Core

  • Provisioner: Postgres DB → template stamp (hardlink, seconds) → build → systemd service → router vhost → health check → registry
  • Control-plane API (stdlib Python, ~450 lines you can fully audit): signup, slug check, billing webhook, live setup status, billing portal
  • Stripe subscriptions on your account; tiers configured in one JSON env var
  • BYO-Stripe for tenants: key validated against Stripe, webhook auto-created on their account — you never hold their money
  • Clean teardown: service, vhost, database, webhook, registry
  • Signup + live setup pages, ready to restyle
  • Template contract docs + minimal example app
  • Runs on a $5 VPS or a home server behind a Cloudflare Tunnel
SKU 2 · the product

HatchKit Events

  • Complete event-ticketing platform: Next.js + Prisma + Postgres + Stripe
  • Ticket tiers, VIP table deposits, capacity, pending-order expiry
  • QR door check-in, guest lists, comps, discount codes
  • Promoter links with sales attribution
  • Audience ownership: CSV export, email campaigns (Brevo/Resend/SendGrid/Postmark/SMTP)
  • Meta/Google/TikTok pixels + server conversions, GA4, Event JSON-LD, sitemap, IndexNow
  • Full admin back office
  • Doubles as the reference template for Core — sell storefronts as a SaaS on day one
From checkout to live tenant

How it works

Customer checks outYour landing page posts to /api/signup; the control plane creates a Stripe Checkout subscription session.
Webhook fires the provisionercheckout.session.completed → dedicated Postgres database, template stamped with the tenant's env, migrations, seed, build.
Instance goes livesystemd service on the next free port, router vhost for slug.yourdomain.com, health check, registry entry. ~3 minutes end to end.
Customer watches it happensetup.html polls live status, then hands them their storefront and admin links. A "you're live" email goes out automatically.
They connect their own Stripe (optional)Key validated via the Stripe API, webhook created on their account — their revenue settles direct to them.
One-time purchase · lifetime updates

Pricing

Launch pricing for the first 25 buyers, wired to real sales — when they're gone, they're gone.

The factory

HatchKit Core

$299$149
one-time · your products forever
  • Provisioner + teardown
  • Control-plane API + Stripe billing
  • BYO-Stripe tenant onboarding
  • Router + signup/setup pages
  • Template contract + example app
  • Docs: setup, architecture, Stripe
  • Lifetime updates
Best value
Factory + product

HatchKit Bundle

$598$249
one-time · both repos
  • Everything in Core
  • Everything in Events
  • Events pre-wired as the Core template
  • Launch a sellable SaaS this weekend
  • Lifetime updates on both
The product

HatchKit Events

$299$149
one-time · unlimited events
  • Full ticketing platform source
  • Stripe checkout + webhooks
  • QR check-in + promoter links
  • Email campaigns + ad pixels + SEO
  • Docker + bare-metal deploy guides
  • Lifetime updates

Delivered as private GitHub repo access, automatically, minutes after purchase.

Who built this

Extracted from production, not written for a course

I run a fleet of live products — nine of them — from one home server. HatchKit started as the ticketing system for my own Las Vegas club nights, became the white-label engine behind showhatch.com, and is now packaged so you can skip the six days of plumbing between "I have an app" and "customers provision themselves."

Every claim on this page is checkable: the production system is live at showhatch.com — sign up for the demo and watch a tenant build itself.

Questions

FAQ

Is this actually running in production?

Yes — HatchKit is the exact engine behind showhatch.com, where storefronts self-provision in ~3 minutes after checkout. The Events template ran real Las Vegas club nights before being productized. This page fabricates nothing: no invented testimonials, no fake buyer counts. The launch counter reads real sales data.

What do I need to run it?

One Linux box with systemd — a $5 VPS or a home server behind a free Cloudflare Tunnel — plus Node 20+, Postgres, Caddy, and Python 3.10+. No Docker or Kubernetes required (Events ships a docker-compose if you prefer it standalone). Everything runs as an unprivileged user.

How is this different from ShipFast-style boilerplates?

Boilerplates give you one app with auth and payments — great, but single-tenant. HatchKit is the factory: your customers check out and get their own isolated instance — dedicated database, subdomain, process, and optionally their own Stripe account receiving their revenue. It's the difference between building a SaaS and building the thing that stamps out SaaS instances.

Does my app have to be Next.js?

Out of the box the provisioner builds and serves Next.js apps. The template contract is small (env vars + npm scripts), and the systemd/build steps are two lines you can adapt to any stack that builds and listens on a port — but Next.js is the paved path.

Why instance-per-tenant instead of one app with tenant IDs?

Blast radius and simplicity. A bug, a noisy neighbor, or a deletion request affects exactly one tenant. Template copies are hardlinked, so stamping costs seconds and near-zero disk. The honest tradeoff: ~100–200MB RAM per tenant — dozens of tenants per midsize box, and by the time that's your bottleneck, you have the revenue to solve it.

What exactly is delivered, and how fast?

Private GitHub repo access (Core, Events, or both), granted automatically within minutes of checkout — you enter your GitHub username at checkout. Lifetime updates land in the same repos.

License?

Unlimited products you own and operate, unlimited tenants, unlimited revenue. You can't resell or republish the kit itself as a boilerplate/starter/course. Full text in the repo.

Refunds?

Because you receive complete source code on purchase, all sales are final once repo access is granted. Check out the live production system first — that's exactly what you're buying.