ShipKitStop configuring.
Start shipping.
A production-ready monorepo with auth, payments, admin panel, i18n, and an interactive CLI that sets everything up in 30 seconds. One command. Zero config.
Everything included
The whole SaaS stack, one grid
Fourteen production subsystems, pre-wired. Click any card for the details.
// api
app.post('/checkout', handler, { body: t.Object({ plan: t.String() }) })
// frontend — types auto-inferred
const { data } = await api.checkout.post({ plan: 'annual' })
2.4M
req/s
21x
vs Express
6x
vs Fastify
apps/web
public frontend
apps/admin
protected admin, RBAC
apps/api
Elysia.js REST
apps/worker
jobs & webhooks
✓ ready in ~30s
tools/checkout.create
tools/users.list
✓ e2e/signup.spec.ts
✓ e2e/login.spec.ts
✓ e2e/checkout.spec.ts
new-pricing on
beta-ai off
Battle-tested
11 production bugs. All fixed.
We shipped 4 apps with this boilerplate and documented every mistake. Your AI assistant has these rules built in.
Double /api/ path
Better Auth appends /api/auth internally. Using API URL as baseURL causes /api/api/auth/.
✓ Fixed.
Hardcoded colors
bg-white, text-slate-900 break dark mode.
✓ Every component uses semantic tokens now.
Canonical URL in layout
Hardcoding canonical to homepage tells Google every page is a duplicate.
✓ Per-page canonicals now.
Checkout without webhook
Payment received, subscription not activated.
✓ Now includes checkout, webhook, and status check.
Default black --primary
shadcn default primary is black. Buttons and accents look wrong.
✓ Marked with "CHANGE THIS".
Admin vs Web confusion
Dashboards in apps/web = no auth gate.
✓ Admin panel exists for a reason.
+ 5 more fixes documented in CLAUDE.md.
Social proof
12 production apps. One boilerplate.
Every one of them is mine, so I can show you the diff — what each app had to write for itself, and how much of that ShipKit ships today.

AI running coach. Syncs a full Strava history, benchmarks it against World Athletics records, and turns it into training plans from four specialist agents.

The commercial control plane for a self-hosted analytics product: checkout, license keys, a server registry, installer distribution, and a hosted AI gateway.

A four-app commerce platform for Uzbekistan: trilingual storefront, admin back-office, local payment rails, and a native courier app for last-mile delivery.

Attendance and payroll for shift teams. Staff clock in from Telegram or a native app, verified by face recognition and a GPS geofence; verified shifts become same-day pay.
Build vs Buy
Skip months of infrastructure work
Here's what building this foundation yourself actually costs. We itemized it.
Invoice #0001
Build-It-Yourself LLC
infrastructure work · est. 224h @ $75/h
Pricing
$149. Once. Done.
Full source code. Private GitHub repo. Unlimited projects.
Everything in the repo. No tiers, no upsells, no “pro” version hiding behind another paywall.
- Full source code (7 apps + 18 packages)
- Private GitHub repository access
- Interactive setup CLI (zero manual config)
- Auth, payments, admin panel, i18n, SEO
- AI skills for Claude Code & Cursor
- Landing page templates
- Deployment guides (nginx, systemd, SSL)
- Lifetime updates
- Unlimited projects, commercial use
12 apps shipped on this codebase, 5 written up in depth with their package diffs — see the showcase.
Full refund any time before repo access is granted. Just ask.
Payments via Polar.sh
Built on ShipKit
Templates that shipped to a customer first
Each one started from this codebase, went into production for a real client, and is sold as full source with the same licence as ShipKit itself.
From the blog
What we measured, what broke, what it cost
Benchmarks, migrations and bills from the production apps this boilerplate is distilled from.

TimescaleDB vs plain Postgres: the route that fell from 25,426 requests a second to 63.3
One Elysia application over three physical layouts of the same shop: naive Postgres, hand-tuned Postgres and TimescaleDB. Where the columnstore wins, where it collapses, and the one line in the query that decides which.

Elysia 2 vs NestJS 12: Runtime +64.6%, Framework +10.6%
We moved one API from NestJS 12 on Node to Elysia 2 on Bun one layer at a time. On the database routes the runtime step bought +64.6…+81.5% throughput and the framework step +7.5…+12.7%; Elysia's own wins are memory and boot. The friction, the contention story and the hosting bill are here too.
Bun Owns the Speed, Elysia Owns the Memory: What We Learned Upgrading Every Layer at Once
We upgraded Bun, Elysia 2 beta, Next 16.3 and TS 7 on a live ecommerce+POS API and benchmarked each layer alone. The credit does not go where you'd guess.
FAQ
Common questions.
Start building your product today.
The setup is done. Auth works. Payments work. Just add your idea.
Get ShipKit — $149About ShipKit
ShipKit is a production-ready SaaS boilerplate built by DavrApps, an independent software studio. We built ShipKit because we were tired of spending weeks on auth, payments, and i18n before writing a single line of product code.
The same boilerplate powers our own products: Picefy, ImgTools, and DevTools — all built and deployed using ShipKit.
Stack: Next.js 16, Elysia.js (2.4M req/s on Bun), Better Auth, Polar.sh payments, Drizzle ORM, shadcn/ui, next-intl, Turborepo monorepo. One command to set up, one command to deploy.

