BuildGuide 06 / 12

Modules and presets

Choose capabilities and understand their boundaries.

01

Available now

  • marketing preset: SEO, consent-gated analytics, contact email, local typed content, and legal-page starters
  • accounts module: verified email/password authentication, recovery, profile, sessions, export, and deletion foundations
02

Marketing modules

  • seo owns metadata support, sitemap, robots, and not-found behavior.
  • analytics owns the consent component, browser event adapter, and NEXT_PUBLIC_POSTHOG_KEY.
  • email owns the contact routes, email adapter, test journey, and provider environment values.
  • cms owns local typed page content and the features route.
  • legal owns product-editable privacy and terms starters.
03

Accounts

Accounts requires email and adds Better Auth, account routes, four database tables, migrations, browser tests, and BETTER_AUTH_SECRET. Production secrets must be unique and at least 32 characters.

The current account operations are foundations: export is synchronous and deletion is immediate after email confirmation. Staff controls, audit events, retention policy, and distributed rate-limit storage remain roadmap work.

04

Reserved presets

Personal SaaS, team SaaS, API product, marketplace, membership, and internal-tool names exist in the schema but are not complete presets. The roadmap and verification fixtures are the source of truth.

05

Authoring a module

Add a typed recipe in packages/generator/src/registry.ts and product files under modules/<id>/files. Declare every copied file plus routes, tables, environment names, permissions, events, dependencies, conflicts, suspension behavior, and removal strategy.

Database modules must include a checked-in Drizzle migration, snapshot, journal entry, and schema export. Add a real fixture journey and run pnpm verify with Docker.