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
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
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.
The BSLT Standard
Start from a thin canonical starter in the monorepo. Auth, billing, jobs, and contracts are pre-wired; you keep shipping business logic.
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
The BSLT Standard
MVP Fast + Scale LaterA complete foundation with 5,000+ tests, thin starter defaults, and provider-swappable infrastructure behind clear boundaries.
- Clear Platform vs App split
- Canonical starter app as source of truth
- Idempotent jobs + webhook guardrail design
- Railway-first deploy path with runbooks
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.
Hexagonal Core
Business logic isolated from infrastructure. Swap S3 for local storage without touching your domain code.
Optimistic Data Engine
Offline-first mutation queue. UI updates instantly; sync, retry, and conflict resolution handled automatically.
mutate()
IndexedDB
→ 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.
Complete Auth System
Password, Magic Link, and OAuth (Apple, GitHub, Google). JWT rotation, lockout protection, and audit logging built-in.
Billing Integration
Production-ready Stripe and PayPal. Webhooks, subscription management, and an admin billing dashboard included.
Durable Job Queue
PostgreSQL-backed job queue with retries, scheduled jobs, and an admin monitoring dashboard. No Redis or external services required.
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.
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.
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.
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.
Free & Open Source
Not ready to commit? Start with the community edition.
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.