The SaaS backend boilerplate with
everything you need to ship fast

Auth, billing, teams, webhooks, background jobs, API keys, emails, file uploads, audit logs, OAuth, and auto-generated docs. 202 tests. Built on Bun + Elysia. Free and open source.

Building from scratch?

Every SaaS starts the same way. Auth, billing, teams, emails. You've built it before. You'll spend months rebuilding it again.

BunShip is all of it. Clone it and start building your actual product.

2 weeks to get auth right
+ 2 weeks for Stripe billing
+ 3 weeks for teams and RBAC
+ 1 week for emails
+ 1 week for background jobs
+ 1 week for webhooks
+ 1 week for the rest
+ ??? debugging edge cases
= 3 months gone

12 modules, production-tested, ready to go

Each module has routes, services, Drizzle migrations, Zod validation, and tests. They connect at the middleware layer, auth checks billing state, teams enforce RBAC, webhooks fire background jobs.

Au Auth

JWT, 2FA, magic links, sessions, email verification, brute-force lockout

Bi Billing

Stripe subscriptions, trials, usage caps, customer portal, webhook sync

Te Teams

4 roles, 20+ permissions, invites, ownership transfer, middleware RBAC

Wh Webhooks

HMAC-signed, exponential backoff, delivery logs, manual resend

Bg Jobs

BullMQ + Redis, retries, dead letter queues, scheduled tasks

Ak API Keys

Scoped, rate-limited, expiring, rotatable

Em Emails

React Email + Resend, verification, invites, alerts, resets

Oa OAuth

Google, GitHub, account linking, no duplicates

Fi Uploads

Presigned URLs, size/type limits, S3, R2, MinIO

Al Audit Logs

Before/after snapshots, user tracking, IP recording

Se Security

Argon2id, Zod, Helmet, CORS, rate limiting

Dc API Docs

Auto-generated OpenAPI + Swagger at /docs


Clone, configure, build

No account. No CLI. No setup wizard.

1
Clone the repo
$ git clone https://github.com/mayhemds/bunship.git $ cd bunship && bun install
12 modules, shared packages, Turborepo monorepo.
2
Add your keys
$ cp .env.example .env # paste your keys STRIPE_SECRET_KEY=... TURSO_DATABASE_URL=... RESEND_API_KEY=...
One env file. Three keys. Done.
3
Start building
$ bun dev Server on :3000 12 modules loaded Docs at /docs
Your API is running. Point any frontend at it.

BunShip Pro

Everything in Free, plus a TanStack Start + React frontend. Auth pages, dashboard, team management, admin panel. Connected via Eden for end-to-end type safety.

$199, one-time. Unlimited projects.

See everything in Pro
Auth UI (login, register, 2FA, forgot password)
Dashboard with activity feed
Team management, billing, API keys
Admin panel
Dark + light mode, responsive 375px-1440px
Loading skeletons, error boundaries

Frequently asked questions

They're fullstack boilerplates built on Next.js. BunShip is backend-only, built on Bun + Elysia. You get a tested API that works with any frontend, React, Vue, Svelte, mobile, whatever. No lock-in to a UI framework. If you want fullstack, Pro adds TanStack Start + React.
Bun runs TypeScript natively, no compile step, no build config. Built-in test runner, fast installs. Elysia gives you end-to-end type safety and auto-generates OpenAPI docs from your route schemas. It's faster and simpler.
Boilerplate. You clone it, you own every line of code. No package to install, no dependency to manage, no vendor.
Whatever you want. BunShip is a REST API. If it can make HTTP requests, it works.
202 tests across 194 files. Auth, billing, teams, webhooks, API keys, all covered. Run bun test.
Yes. Free and Pro. No per-project licensing.
Turso (managed SQLite) via Drizzle ORM. You can swap to Postgres, MySQL, or PlanetScale by changing one config file.
Docker Compose for local dev, production Dockerfile included. GitHub Actions CI/CD pipeline ready. Runs anywhere Docker runs.

Stop building infrastructure.
Start building product.