Production-ready backend domains, scaffolded as source code.
Backcap is a domain registry and CLI for TypeScript backends. Instead of installing opaque npm packages, you scaffold real source code — clean architecture, fully typed, ready to own and extend.
npx @backcap/cli init
npx @backcap/cli add authThat's it. You get a complete authentication module with entities, use cases, ports, DTOs, and an AI skill file — all wired into your project. You implement the adapters on the exposed ports.
Most backend starters give you a monolith to fork or a library to depend on. Backcap takes a different approach:
- Source code, not packages — Every domain lands in your
src/as plain TypeScript. No vendor lock-in, no black boxes. - Clean Architecture by default — Domain, Application, Contracts. Each layer has strict import rules enforced by convention.
- Framework-agnostic — Works with Express, Fastify, NestJS, Next.js, or any Node/Bun/Deno runtime. You implement adapters on the ports exposed by each domain.
- AI-native — Each domain ships with a SKILL.md file that gives your AI assistant full context on the architecture, file map, and rules.
20 production-ready domains, each following the same clean architecture:
| Domain | Description |
|---|---|
| auth | Registration, login, JWT tokens, password hashing |
| blog | Posts, drafts, publishing workflow |
| comments | Threaded comments with moderation |
| search | Full-text search with pluggable engines |
| tags | Tagging system with relationships |
| files | File upload, storage, metadata |
| forms | Dynamic form builder and submissions |
| notifications | Multi-channel notification dispatch |
| analytics | Event tracking and aggregation |
| audit-log | Immutable audit trail |
| billing | Payments, subscriptions, invoicing |
| cart | Shopping cart management |
| catalog | Product catalog and inventory |
| feature-flags | Feature toggles with targeting rules |
| media | Media asset management and processing |
| orders | Order processing and fulfillment |
| organizations | Multi-tenant organization management |
| queues | Job queues with retry and scheduling |
| rbac | Role-based access control |
| webhooks | Outbound webhook delivery and management |
Every domain follows the same 3-layer structure:
domains/auth/
domain/ # Entities, value objects, errors, events — zero external imports
application/ # Use cases, ports (interfaces), DTOs — depends only on domain
contracts/ # Public API: factory function + service interface — the only index.ts
shared/ # Local utilities (Result re-export, etc.)
Key principles:
Result<T, E>replaces exceptions for all expected failures- Ports define interfaces; you implement the adapters
- DI via constructor injection — a single
createXxxService(deps)factory wires everything - Domain has zero imports — pure TypeScript, no frameworks, no libraries
npx @backcap/cli init # Initialize a project — detects framework & package manager
npx @backcap/cli list # List all available domains
npx @backcap/cli add <name> # Scaffold a domain into your projectThe CLI handles conflict resolution, dependency installation, and skill file placement — all interactively.
Backcap domains ship with structured SKILL.md files designed for AI coding assistants. Load them to give your AI full architectural context:
Read skills/backcap-core/SKILL.md and skills/backcap-auth/SKILL.md,
then help me add a resetPassword use case.
The AI will know exactly which layer, which patterns, and which imports to use.
Skills are also available via skills.sh:
npx skills add faroke/backcap# 1. Initialize your project
npx @backcap/cli init
# 2. Add domains
npx @backcap/cli add auth
npx @backcap/cli add blog
# 3. Implement your adapters on the exposed ports and start buildingbackcap/
packages/
cli/ # @backcap/cli — the scaffolding tool
registry/ # Domain source code & build pipeline
shared/ # Shared types, schemas, Result monad
apps/
docs/ # Documentation site (faroke.github.io/backcap)
skills/ # AI skill files for skills.sh
Full documentation at faroke.github.io/backcap — guides, concepts, API reference, and a step-by-step tutorial for creating your own domains.
git clone https://github.com/faroke/backcap.git
cd backcap
pnpm install
pnpm build
pnpm testMIT