The SaaS Engine for Serious Engineers.

We built the hard parts once so you can ship MVP fast and scale later without a rewrite. Start with the thin default lane, then opt into advanced providers only when needed. Deploy a Hexagonal backend, React web app, and Native Electron Desktop from one monorepo on Day 1.

npx create-bslt-app
Lane A vs. Reinventing
Hand-Rolled Setup
Waiting...
BSLT
Ready

Built for

  • Solo founders and small teams shipping SaaS products
  • Devs who can build features but hate rebuilding auth/billing/jobs
  • Apps that need background jobs, webhooks, and audit logs
  • Teams who want web + desktop from one codebase

Not for

  • No-code-only teams that cannot own TypeScript code
  • Teams committed to fully-managed dependencies everywhere
  • Non-technical founders looking for no-code solutions
  • Marketing sites or content-only products

Built With

Strict Type Safety
Modern UI Framework
Reliable Database
Payment Webhooks
Utility-First CSS
Container Ready
Cloud Deployment
Fast Dev Server
Terraform IaC
FFmpeg Engine
Strict Type Safety
Modern UI Framework
Reliable Database
Payment Webhooks
Utility-First CSS
Container Ready
Cloud Deployment
Fast Dev Server
Terraform IaC
FFmpeg Engine

The Infrastructure Gap

Most startups lose months in setup drift. BSLT gives you a default MVP lane now and a scale lane later in the same monorepo.

DIY Approach

Assemble infra from scratch, chase doc drift, and debug webhooks/jobs while product work stalls.

One Monorepo.
Two Product Lanes.

Lane A is the default: ship MVP fast with one workflow, one env template, and one deploy path. Lane B is opt-in: add deeper providers, infra modules, and platform controls when scale actually demands it.

The SaaS Trap

"The Wrapper"

Fast to start, but costs and constraints can grow. Consider the tradeoffs as you scale.

  • Tied to specific vendors
  • Unpredictable pricing spikes
  • Data exists in black boxes
  • Harder to migrate as you scale

The DIY Slog

"Refactoring Hell"

You ship quickly, then pay the rewrite tax because the starter was never designed to scale.

  • Fast start, slow rewrite cycle
  • Feature work blocked by infra debt
  • Docs and scripts drift apart
  • Reliability work postponed until production
5,300+ Unit & E2E Tests Colocated tests for every module. Designed to catch issues early.
14+ Infra Modules Pre-built adapters for Cache, Storage, PubSub, and Queues.
100% JSDoc Coverage Rich IDE hover-docs for every function. Zero guessing.

14 Production Modules.
Day One.

Auth, Billing, Media, Search, Admin, Desktop - production modules with explicit extension boundaries. Start thin, then turn on platform depth as needed.

14 Production Modules
1,200+ Source Files
5,300+ Tests
apps/server
6 modules
packages/core
4 modules
packages/ui
50+ components
apps/desktop
IPC bridge
* Modular architecture. Delete what you don't need.

Hexagonal Core

Business logic isolated from infrastructure. Swap S3 for local storage without touching your domain code.

server/
modules/
domain logic
infra/
adapters (swappable)

Optimistic Data Engine

Offline-first mutation queue. UI updates instantly; sync, retry, and conflict resolution handled automatically.

Client mutate()
Queue IndexedDB
Sync → Server

Works offline. Syncs when online.

Web + Desktop

90% code reuse. Ship a PWA and a signed Electron .dmg/.exe from a single React codebase.

React Web App
Vite + React 19, lazy routes
Electron Desktop
Native file system, tray, notifications
Shared Core
90% code reuse across platforms

Complete Auth System

Password, Magic Link, and OAuth (Apple, GitHub, Google). JWT rotation, lockout protection, and audit logging built-in.

Password + Magic Link
Email verification, password reset
OAuth Providers
Apple, GitHub, Google
Security Hardened
JWT rotation, lockout, audit logs

Billing Integration

Production-ready Stripe and PayPal. Webhooks, subscription management, and an admin billing dashboard included.

infrastructure/billing/stripe-provider.ts
infrastructure/billing/paypal-provider.ts
modules/billing/webhooks/

Durable Job Queue

PostgreSQL-backed job queue with retries, scheduled jobs, and an admin monitoring dashboard. No Redis or external services required.

infrastructure/jobs/
postgresStore.ts
queueServer.ts
scheduled/loginCleanup.ts

Full Admin Panel.
Day One.

Don't write SQL queries to ban users or check job statuses. BSLT ships with a production-ready operations dashboard.

Security Audit

View failed login attempts, potential attacks, and banned IPs in real-time.

SecurityEventsPage.tsx

Job Monitor

See your Postgres Job Queue health. Retry failed emails or processing tasks with one click.

JobMonitorPage.tsx

User Management

Impersonate users, manage subscriptions, and handle support without touching the database.

UserListPage.tsx

Built for the
Growing Team.

Usually, velocity drops as headcount grows. BSLT breaks that law. Our architecture uses Contract-Driven Development and Automated Governance to let frontend and backend teams work in parallel without collisions.

Frontend Dev
packages/contracts Zod Schema
Backend Dev

Parallel Velocity

Stop saying "Is the API ready yet?" Define the interface in packages/contracts first. The Backend team builds the implementation. The Frontend team builds the UI using mocked types. Zero blocking dependencies.

Pass No Circular Dependencies
Pass Strict Boundary Checks
Block Direct DB Access in UI

Automated Governance

You can't review every PR. BSLT's tooling/ scripts enforce architectural boundaries automatically. Strict rules like "UI cannot import Database code" are checked at compile time. The architecture protects itself.

useVirtualScroll()

@param itemHeight - Fixed height of row
@returns { scrollTop, visibleItems }

👆

Instant Onboarding

100% JSDoc coverage and collocated tests (file.ts + file.test.ts) mean the code explains itself. A new hire can understand the business logic of modules/billing by reading the spec, not by pestering the founder.

Full Source Access.
No Hidden Dependencies.

We use focused internal libraries instead of heavy frameworks. You can read, modify, and extend every line of code.

The 1kb Router

Zero dependencies. Standard History API under the hood. Our 150-line router in packages/ui/router uses the standard History API—and if you prefer react-router, swap it in 20 minutes.

Native Postgres Queue

No Redis required. We implemented a transactional job queue directly in Postgres (infrastructure/jobs). Zero infrastructure overhead for background tasks.

Built-in Auth

Native JWT implementation with Rotation, Reuse Detection, and Family Tracking. Use it standalone, or integrate with Auth0/Clerk if you prefer managed auth.

Headless UI System

23+ Custom Hooks like useVirtualScroll and useOptimizedMemo. A complete component library using CSS Variables for zero-runtime overhead.

Engineering Standards,
Not Shortcuts.

Every line reviewed. Every edge case tested. Every type enforced.

Strict Type Safety

End-to-end TypeScript with zero any escapes. API changes break at compile time.

Zod Validation

Runtime schema validation at every boundary. Invalid data never touches your business logic.

Strict ESLint

200+ rules enforced. No eslint-disable, no @ts-ignore. Clean code by default.

5,000+ Tests

Comprehensive unit, integration, and E2E coverage across all modules.

The "Day 1" Spec Sheet

Most starter kits skip these. We didn't.

  • Complete Auth: Password, Magic Link, OAuth (Apple, GitHub, Google).
  • Billing Ready: Stripe + PayPal providers with webhook handlers.
  • Job Queue: PostgreSQL-backed durable queue with scheduled jobs.
  • Admin Dashboard: User management, billing, jobs, security events.
  • Realtime: WebSocket PubSub with subscription management.
  • Email System: SMTP provider with templating engine.
  • Push Notifications: Web Push via FCM with subscription management.
  • Media Pipeline: FFmpeg, image optimization, secure streaming.
  • Search Engine: SQL full-text + Elasticsearch provider swap.
  • Rate Limiting: Token bucket with endpoint-specific presets.
  • Security Hardened: JWT rotation, account lockout, audit logs.
  • Infra as Code: Terraform for DigitalOcean + GCP, Docker, Caddy.
  • CI/CD Pipelines: GitHub Actions for deploy, rollback, security scans.
  • Type-Safe IPC: Secured Electron bridge (electron/ipc).

Zero-Config Component Catalog

Storybook is heavy. We built a native Component Catalog at /demo that lives inside your app. Document your UI components in the same environment they run in. Zero setup.

Self-Healing Config

Stop fighting tsconfig.json paths. Our tooling/sync scripts automatically generate path aliases and references whenever you create a new package.

The Repository Pattern

We don't leak SQL queries into your API routes. All data access is abstracted in packages/db/repositories. Clean, testable, and refactor-proof.

2026 Standard

Architecture
Read by Agents.

We optimized the file structure for LLMs. Includes .claude/CLAUDE.md context files, Architecture Decision Records, and rigorous typing.

Your AI agent (Cursor/Windsurf/Claude Code) won't get lost. It knows exactly where to put code because we documented the map.

You

Agent

Free & Open Source

Not ready to commit? Start with the community edition.

View on GitHub

The community edition gives you the thin monorepo starter path. Upgrade when you need advanced modules, enterprise controls, and deeper platform tooling.

Questions?

What tech stack does BSLT use?

TypeScript everywhere: React + Vite for the frontend, Fastify for the API, PostgreSQL with Drizzle ORM, and Docker for local development. All wired together in a Turborepo monorepo.

Can I use this for client projects?

Yes! Your license allows unlimited projects for yourself or your clients. You can use it for client work, but you cannot resell BSLT itself as a competing starter product.

How do updates work?

Starter gets 6 months of updates. Pro gets lifetime updates. Updates are delivered via a private GitHub repo you get access to after purchase.

Is there a refund policy?

All purchases are final and non-refundable. We recommend reviewing the documentation and GitHub repo before purchasing to ensure BSLT is right for your needs.