3.7 KiB
First-party module registry
This is the canonical roadmap for the first-party modules stanza ships. Each
entry maps to a registry/modules/<slot>-<id>/ directory. Update this file
when a module lands, gets renamed, or is dropped.
Legend: [x] added· [ ] planned
framework
- tanstack-start — TanStack Start on Vite (no Vinxi). Provides
web,react,ssr,node - next — Next.js 16 (App Router). Provides
web,react,ssr,rsc,node,edge - nuxt — Vue. Will require relaxing the React-implicit assumption in many peer modules (capability tag
vue) - svelte — SvelteKit. Capability
svelte - solid — SolidStart. Capability
solid
api
New slot. Optional layer between the framework and the database/services.
- trpc — tRPC v11; per-framework adapters (next, tanstack-start, nuxt, svelte, solid)
- orpc — oRPC
ai
New slot.
- vercel-ai-sdk —
aipackage + provider sub-recipes - tanstack-ai — TanStack AI
auth
- better-auth — headless, peers
orm: [drizzle, prisma],framework: [next, tanstack-start] - clerk — hosted UI, peers
framework: [next](TanStack Start adapter planned) - workos — WorkOS AuthKit
orm
- drizzle — Drizzle ORM 0.45, peers
db: [postgres, sqlite] - prisma — Prisma 7, peers
db: [postgres, sqlite]
db
- postgres —
postgresdriver 3.4.x - sqlite —
better-sqlite312.x
styling
- tailwind — Tailwind v4, adapters per framework
ui
New slot. Layered on top of styling; provides component primitives.
- shadcn-radix — classic shadcn/ui (Radix primitives)
- shadcn-base — shadcn on react-base-ui
payments
New slot.
- stripe — Checkout Sessions + webhooks
- polar — Polar SDK
New slot.
- resend — Resend SDK + React Email templates
tooling
New slot. Lint/format toolchain. Single-choice slot.
- eslint-prettier — ESLint + Prettier
- biome — Biome (lint + format)
- oxlint-oxfmt — Oxlint + oxfmt
testing
New slot. Multi-choice (unit + e2e are independent).
- vitest — unit + integration
- playwright — e2e
deploy
New slot.
- vercel —
vercel.json+ framework-specific output - cloudflare — Workers / Pages adapter per framework
- railway —
railway.toml+ Dockerfile - docker — generic
Dockerfile+ compose for self-host
monorepo
Currently hardcoded in bootstrapShell as Turborepo. Will become a slot if we ever add a Nx/Moonrepo alternative.
- turborepo — Turbo 2.x (current default; not yet a configurable slot)
packageManager
Not a slot — a top-level field in stanza.json (packageManager: "pnpm" | "bun" | "npm"). Wizard prompts; codemods only touch package.json, never lockfiles.
- pnpm (default)
- bun
- npm
- yarn — needs lockfile/workspace handling that differs from the others
Slot taxonomy changes required
The slots api, ai, ui, payments, email, tooling, testing, deploy don't exist in KNOWN_SLOTS yet. Adding them is a manifest-schema bump and a slotOrder update in packages/registry/src/resolver.ts. Plan the rollout so existing stanza.json files don't break — new slots are optional, so adding them is additive.
tooling and monorepo are single-choice within their slot; testing is multi-choice (a project can have both vitest and playwright). The current resolver assumes single-choice — testing will need an array-valued slot or two sub-slots (testing-unit, testing-e2e).