New — Two-factor auth & audit log shipped

The SaaS foundation
you don't have to rebuild.

Auth, billing, team management, multi-tenancy, audit logs — pre-wired and production-ready. Skip the plumbing, build your product.

Built with

Next.js 16Drizzle ORMSQLiteStripeJWT AuthTypeScript
FEATURES

Everything a SaaS needs, on day one.

Eight months of plumbing distilled into one tightly-integrated starter. Each piece is wired together — not glued.

Auth & sessions

JWT cookies, email verification, password reset, and active session management with per-device revoke.

Two-factor auth

TOTP via authenticator apps with QR setup and one-time recovery codes. Optional per user.

Multi-tenancy

Organizations, member roles, and invite-by-email with token-based acceptance — the boring stuff, done right.

API keys & /v1

Hashed API keys with prefixes, per-key rate limits, and a public REST API authenticated by Bearer token.

Stripe billing

Subscription Checkout, Customer Portal, and webhook-driven plan updates — three tiers wired up.

Audit log

Every meaningful action recorded with actor, IP, and timestamp. Indexed and paginated by default.

Transactional email

Resend integration for verification, password resets, and team invitations — with sane retries.

Production-ready

SQLite WAL mode, indexed hot paths, and observability via the audit feed. Ship the boring parts on day one.

UNDER THE HOOD

Not a demo. The real plumbing.

Each system is built the way you would build it for production — typed end to end, indexed, and integrated with the rest of the stack.

Authentication & 2FA, handled.

Email and password sign-in backed by JWT cookies, verification emails, and password resets. Add a second factor with TOTP authenticator apps and one-time recovery codes — opt-in per user.

  • JWT cookie sessions with per-device revoke
  • TOTP 2FA with QR setup & recovery codes
  • Email verification and password reset flows
Two-factor authenticationEnabled

Recovery codes

7f2a-9c1db4e8-03afd91c-5e7b
Verified · 6-digit code

Multi-tenancy & roles built in.

Organizations are first-class. Invite teammates by email with token-based acceptance, assign roles, and scope every query to the active tenant — no bolt-on workarounds.

  • Organizations with owner / admin / member roles
  • Email invites with secure token acceptance
  • Tenant-scoped data access throughout
Acme Inc · Members4 / 25
JSJordan SimsOwner
PNPriya NairAdmin
MKMei KimMember
TRTom ReyesInvited

Billing with Stripe, end to end.

Subscription Checkout, the Customer Portal, and webhook-driven plan changes are wired across three tiers. Plan limits sync to your tenant automatically — add your keys and ship.

  • Checkout & Customer Portal sessions
  • Webhook-synced subscription state
  • Per-plan member & feature limits
SubscriptionPro
$29/month

Renews on the 1st · via Stripe

Visa ending 4242Active

Webhooks & a public API.

Issue hashed API keys with prefixes and per-key rate limits, then let customers hit a versioned /v1 REST API authenticated by Bearer token. Stripe webhooks are verified and idempotent.

  • Hashed, prefixed API keys with rate limits
  • Bearer-authenticated public /v1 endpoints
  • Signature-verified, idempotent webhooks
terminal
$ curl https://api.saasly.dev/v1/members
  -H "Authorization: Bearer sk_live_••••"

{
  "data": [
    { "id": "mem_4f2a", "role": "admin" },
    { "id": "mem_9c1d", "role": "member" }
  ],
  "has_more": false
}
TESTIMONIALS

Loved by builders who ship.

Founders and engineers who skipped the plumbing and got straight to their product.

Shipped my MVP in a weekend instead of a month. Auth, billing, and teams were already wired together — I just built my actual product on top.
AR

Alex Rivera

Indie founder · solo

The multi-tenancy and audit log saved us weeks. It is the boring infrastructure we always end up rebuilding, done properly out of the box.
PN

Priya Nair

CTO · seed-stage startup

Clean code, sensible defaults, real TypeScript types everywhere. The Stripe webhooks just worked. Easily paid for itself on day one.
ML

Marcus Lee

Lead engineer · B2B SaaS

PRICING

Simple, transparent pricing.

Start free. Upgrade when you outgrow it. Cancel anytime.

Starter

For solo builders kicking the tires.

$0/month
Start free
  • Up to 3 team members
  • Basic analytics
  • 5 GB storage
  • Email support

Pro

Most popular

For growing teams shipping fast.

$29/month
Get Pro
  • Up to 25 team members
  • Advanced analytics
  • 50 GB storage
  • Priority email & chat support
  • Custom integrations

Enterprise

For organizations that need more.

$99/month
Get Enterprise
  • Unlimited team members
  • Full analytics suite
  • 500 GB storage
  • 24/7 dedicated support
  • Custom integrations
  • SLA guarantee
  • SSO / SAML
FAQ

Questions, answered.

Everything you need to know before you buy.

What's included?

Everything you need to launch a SaaS: email/password auth with JWT sessions, two-factor auth (TOTP), email verification and password reset, organizations with member roles and email invites, Stripe subscription billing, hashed API keys with a public /v1 REST API, an audit log, and transactional email via Resend — all pre-wired in Next.js 16 with Drizzle ORM and TypeScript.

Can I use it commercially?

Yes. The license lets you build and ship your own projects and products — including commercial ones — and modify the code freely. The only restriction is that you cannot repackage and resell it as a competing starter template or boilerplate.

SQLite or Postgres?

The starter ships on SQLite (WAL mode, with indexed hot paths) so you can run it locally with zero setup. Because data access goes through Drizzle ORM, the schema and queries port cleanly to Postgres or another supported database when you are ready to scale.

Does it support Stripe?

Yes. Subscription Checkout, the Customer Portal, and webhook-driven plan updates are all wired up across three tiers (Starter, Pro, Enterprise). Drop in your Stripe secret key and price IDs and billing works end to end.

Is there a license restriction?

It is MIT with a single non-compete clause: you may use, modify, and ship it in your own apps and commercial products, but you may not resell or redistribute it — in whole or substantial part — as a competing starter template, boilerplate, or scaffold.

Do I get updates?

Yes. Buyers receive updates as the starter evolves — bug fixes, dependency bumps, and new building blocks. You keep using whatever version you have shipped; pull in updates on your own schedule.

Stop reinventing the foundation.

Sign up in 30 seconds and start shipping the parts that actually matter.

Create your account