Modules
Browse ds-start modules — complete functional blocks you can bolt onto any Next.js app.
Modules in ds-start are functional blocks: end-to-end capabilities (UI + server + env/schema + conventions) that compose with the foundation. They build on libraries like shadcn/ui and Better Auth — they are not raw component packs.
See Philosophy for the block bar, preset model, and what “done” means for new modules. Reference pattern: forms and email.
Available Modules
Data & Auth
| Module | Description | Prerequisites |
|---|---|---|
| Prisma | Prisma 6 ORM with PostgreSQL | None |
| Drizzle | Drizzle ORM with PostgreSQL | None (mutually exclusive with Prisma) |
| Better Auth | Email/password + OAuth authentication | Prisma or Drizzle |
| Clerk | Managed authentication with pre-built UI | None |
| Stripe | Subscription billing and payments | Auth or Clerk |
Features
| Module | Description | Prerequisites |
|---|---|---|
| Transactional email with Resend | None | |
| File Uploads | S3-compatible file uploads | None |
| Zustand | Client state management | None |
| Forms | JSON-driven form renderer | None |
DevOps
| Module | Description | Prerequisites |
|---|---|---|
| GitHub Workflows | CI pipeline with GitHub Actions | None |
| Vercel Deploy | CD pipeline for Vercel | GitHub Workflows |
Adding Modules
Select modules through the interactive wizard when running npx ds-start init, or specify them with flags:
npx ds-start init my-app --prisma --auth --stripeUse --base to scaffold the foundation without any modules, then add them later:
npx ds-start add email
npx ds-start add formsPresets are curated, verified combinations of blocks. Prefer presets when you want a known-good starting set; use add when composing onto an existing app.