Feature Modules

Feature Modules

The generator physically removes unselected modules and their routes, schema, translations, packages, and docs. Check nextdevtpl.generated.json in a generated project to see its effective module set.

Module catalog

Module IDProduct capabilityMain dependencies
authEmail/password, OAuth, sessions, and auth pagesmail, shared
dashboardAuthenticated workspace shellshared
marketingHome, pricing, legal pages, and built-in docspayment, shared
settingsProfile, avatar, billing, credits, and account settingscredits, payment, storage, subscription
adminUser, role, credit, and support managementsupport, shared
supportCustomer tickets, threads, and admin handlingcredits
paymentShared checkout, subscription, and webhook flowsubscription
subscriptionPlan state and subscription UINone
creditsDouble-entry ledger, FIFO spending, and expirypayment
storagePresigned uploads and image proxyingNone
mailAuthentication and product mail entry pointsNone
blogLocalized MDX blogmarketing
pseoProgrammatic SEO index and detail pagesmarketing
analyticsTyped, consent-aware product telemetry and optional provider captureNone
operationsAdmin metrics dashboard, revenue health, AI usage, snapshots, and alertsadmin, payment
sharedTheme, locale, providers, and shared UINone

Dependencies are recursive. Selecting support, for example, also brings in credits, payments, subscriptions, mail, auth, and shared modules. The generated manifest is always the final record.

Select and verify

pnpm dlx create-nextdevtpl@latest my-app \
  --preset custom \
  --modules auth,dashboard,marketing,blog \
  --payment stripe \
  --mail resend \
  --rate-limit upstash

After generation:

pnpm lint
pnpm typecheck
pnpm test:run
pnpm build

Add product code

Place a new module's UI, actions, hooks, and manifest under src/features/<id>. Product modules should depend on the stable core and src/services, without reaching into another feature's internal files. Keep tables in a separate schema group and declare navigation and translation namespaces in the module manifest.

The operations module adds /admin/operations and protected snapshot and alert cron routes. It requires a payment adapter because revenue health is calculated from server-side payment events. Choose an alert adapter with --alerts noop|email|webhook; choose telemetry capture with --analytics noop|logger|posthog|ga4|umami|none.

The generator creates new projects; it does not yet install or uninstall a module inside an existing customized project.

On this page