Hand it to your agent. Live in an hour.
A SaaS starter with auth, payments, credits and an admin console already wired — plus the rules, skills and tests that keep Claude Code, Codex and Cursor on the rails.
Built on
- TanStack Start
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Vite
- Bun
- Cloudflare
- Node.js
- Drizzle
- better-auth
- Stripe
- Creem
- Resend
With your agent
Say what you want. It does the rest.
- Claude Code
- Codex
- Cursor
- GitHub Copilot
- Windsurf
- opencode
- Zed
- Amp
Step 1
Running in one command
/setupbun installbun run db:migrate:localbun run devhttp://localhost:3000/Step 2
Payments wired by the agent
/stripestripe prices create …Wrote ids to plans.tsstripe listencheckout → 200Step 3
Rules it cannot quietly break
Add invoices/add-feature invoices✗ no permission checkAdded requirePermission✓ all tests pass
This is the whole app.
- The app
A guarded shell: home, account settings, plan and credits.
- Billing
Checkout, prorated upgrades, downgrades at period end, receipts.
- Admin console
Users, subscriptions, orders, the ledger, audit and email logs.
- Marketing site
Prerendered landing, pricing, docs, blog and legal — in two languages.








In the box
The parts you would have written anyway.
- 01
Payments, provider-neutral
src/features/billing- Stripe
- Creem
- One internal event type
- Upgrade now, downgrade at period end
- A refund undoes an upgrade
- Switch with one env var
- 02
Passwordless auth
src/features/auth- GitHub
- Emailed sign-in code
- No passwords, no reset flow
- Sessions in D1
- 03
Metered credits
src/features/credits- Monthly grant per plan
- Packs that never expire
- Spend without a transaction
- Full ledger
- 04
An admin console
src/routes/_app/admin- KPIs and trends
- Users, subscriptions, orders
- Roles and permissions
- Audit and email logs
- Admin JSON API
- 05
Content and i18n
src/features/content- MDX content
- Blog and docs
- Compiled at build time
- EN / 中文
- Locale in the URL
- 06
The boring half
.github/workflows/ci.yml- Typecheck and lint
- Unit tests
- Playwright e2e
- Deploy refuses pending migrations
- Deletion recipes verified in CI
- 07
And the rest
src/features- R2 file storage
- Transactional email
- In-app notifications
- In-app feedback
- Waitlist gate
- Affiliate programme
- Analytics
- API keys
Pricing
One price. Every update after it.
ShipKit license
$99$199one-time
Launch price
- The full source, in a private GitHub repository
- Every future update — pull it like any other remote
- Unlimited projects of your own
- Rules, skills and tests for Claude Code, Codex and Cursor
- Setup, payments and deploy guides
Sign in with GitHub and the repository invite goes out the moment you pay.
Digital goods, delivered instantly — all sales are final. Refunds
Questions
Things people ask before they clone it.
How do I get the code?
You are invited to a private GitHub repository. Sign in with GitHub and the invite goes out as soon as the payment clears; signed in another way, you connect your GitHub account from the dashboard with one click. Future releases land in the same repository — add it as a remote and pull.
Stripe or Creem?
Either, and both at once. The webhook routes only verify, deduplicate and translate a payload into one internal event; features never import a provider client. PAYMENT_PROVIDER picks who takes new checkouts, and existing subscriptions keep renewing wherever they started.
Why Cloudflare Workers and not a Node host?
Because D1 and R2 are bindings, not services with credentials: no connection string, no pool, no S3 keys, and local dev runs the same runtime as production. The trade is that workerd forbids some Node patterns — the template already works around the ones that matter, like runtime-eval MDX.
What does "every feature is deletable" actually mean?
Each optional feature is a directory plus a handful of one-line registrations — a schema barrel line, a handler import, a nav row. The /delete-feature skill knows the recipe for each, and a CI job runs every recipe on every pull request and fails if one has rotted.
What does it cost to run?
On a small app, close to nothing: Workers, D1 and R2 all have free tiers that cover early traffic, and the only always-on cost is your domain. Email and payments bill per use.
ShipKit