Create FasterCreate Faster

Modules

Modules are opt-in libraries that add functionality to an app — UI components, authentication, APIs, data fetching, and more. Each module is scoped to its supported stacks.

Modules are optional add-ons that extend an app with pre-configured libraries. When you select a module, create-faster adds the templates, dependencies, environment variables, and configuration files that the library needs.

Each module is scoped to specific stacks. For example, shadcn/ui is available for Next.js and TanStack Start, but not for Hono or Expo.

Available Modules

UI

ModuleStacksDescription
shadcn/uiNext.js, TanStack StartComponent library built on Radix UI and Tailwind CSS
Next ThemesNext.js, TanStack StartDark mode and theme switching
NativeWindExpoTailwind CSS for React Native

Content

ModuleStacksDescription
MDXNext.jsMarkdown with JSX components
PWANext.jsProgressive Web App with service worker

Auth

ModuleStacksDescription
Better AuthNext.jsAuthentication with ORM adapter, API routes, and session management

API

ModuleStacksDescription
tRPCNext.jsEnd-to-end typesafe API with TanStack Query integration

Data Fetching

ModuleStacksDescription
TanStack QueryNext.js, TanStack StartServer state management with caching and prefetching
TanStack DevtoolsNext.js, TanStack StartQuery debugging and inspection panel

Forms

ModuleStacksDescription
React Hook FormNext.js, TanStack StartPerformant form handling with validation
TanStack FormNext.js, TanStack StartType-safe form state management

Deploy

ModuleStacksDescription
AWS LambdaHonoLambda adapter for serverless deployment

How Modules Work

Modules are declared in META.libraries — each one specifies:

  • Supported stacks — which frameworks it works with
  • Dependencies — npm packages added to package.json
  • Templates — configuration files, setup code, and integration boilerplate
  • Environment variables.env.example entries for required secrets/config
  • Requirements — other modules or project addons needed (e.g., Better Auth requires an ORM)

In a turborepo, some modules create their own shared package (e.g., @repo/auth, @repo/api) so multiple apps can import from them.

CLI Usage

Modules are specified as part of the --app flag, after the stack name:

# Single app with modules
bunx create-faster myapp \
  --app myapp:nextjs:shadcn,better-auth,tanstack-query \
  --database postgres \
  --orm drizzle \
  --pm bun

In interactive mode, modules are presented as a grouped multi-select after stack selection.

On this page