Notes
Notes from the build.
How the template is put together, and what to check before you ship.

Guides / 2026-09-25
Stripe vs Creem vs Paddle vs Lemon Squeezy: getting paid when Stripe doesn't support your country
Selling a SaaS to customers abroad without a company in a Stripe country? Four payment platforms compared: who is the merchant of record, what each charges, who can sign up, and how the money gets home. Worked through for mainland China, as of September 2026.

Guides / 2026-09-24
The best SaaS boilerplates for AI coding agents in 2026 (Claude Code, Cursor, Codex)
Twelve SaaS starters compared on what they actually give a coding agent: AGENTS.md and CLAUDE.md, skills, MCP servers, llms.txt, and whether anything checks that the agent kept to the rules. Prices and sources as of September 2026.

Guides / 2026-09-24
The best SaaS starter kits for Cloudflare Workers in 2026
Ten SaaS boilerplates that deploy to Cloudflare Workers, compared: which run natively and which go through an adapter, D1 or Postgres over Hyperdrive, auth, payments and price. With the Workers and D1 limits that decide the choice, as of September 2026.

Guides / 2026-09-24
The best TanStack Start boilerplates in 2026, compared
Nine TanStack Start SaaS starters side by side: where each one runs, which database, auth and payments it uses, what it costs, and who it is actually for. Written by the makers of one of them.

Guides / 2026-09-24
Moving from Cloudflare D1 to Postgres later: what an AI can translate, and what it can't
Starting on D1 (SQLite) doesn't lock you in forever. Switching a Drizzle app to Postgres is mostly mechanical, and an AI agent handles that part well. The real work is behavior that changes silently and the data you already have. A checklist.

Walkthroughs / 2026-09-24
How to sell access to a private GitHub repo
Payment in, read-only collaborator out, access gone on a full refund: the whole delivery flow behind shipkit.sh, with the GitHub API calls and the edge cases that bite.

Guides / 2026-09-24
TanStack Start vs Next.js: why we built a SaaS starter on TanStack Start
Next.js is the default for React SaaS. We chose TanStack Start for ShipKit anyway: native Cloudflare Workers support, type-safe routing and an explicit data flow that an AI agent can follow. Here is the trade, including what we gave up.

Guides / 2026-09-24
Cloudflare Workers + D1 vs Vercel + Postgres for a SaaS: why ShipKit chose Cloudflare
What it costs to run a SaaS on Workers, D1 and R2 versus Vercel and a hosted Postgres, at 1,000 and 10,000 users, with the arithmetic. What Cloudflare gives you, what it takes away, and when to pick the other side.

Guides / 2026-09-08
Why every feature in this template is deletable
A starter you delete from is more useful than one you add to — but only if deleting is a recipe rather than an archaeology dig.

Reference / 2026-09-05
D1 has no interactive transactions: how to spend a balance safely anyway
Spending credits safely on Cloudflare D1, where db.transaction() throws: a conditional single statement, when to reach for batch(), and the append-only ledger ShipKit uses so there is no balance to get wrong.

Walkthroughs / 2026-09-01
From clone to deployed, start to finish
Every step between `bun install` and a live domain — what you configure, in what order, and which steps you genuinely cannot automate.