This monorepo contains the TanStack Application Builders (CTA - Create TanStack Application), a comprehensive tool for creating modern React and Solid applications with TanStack Router and TanStack Start.
# Create a new TanStack Router app
npx create-tsrouter-app@latest my-app
# Create a new TanStack Start app (SSR)
npx create-start-app@latest my-app
# Alternative CLI names (all create TanStack Router apps)
npx create-tanstack@latest my-app
npx create-tanstack-app@latest my-appcreate-tsrouter-app/
├── cli/ # CLI applications
│ ├── create-start-app/ # TanStack Start CLI
│ ├── create-tanstack/ # TanStack Router CLI (alias)
│ ├── create-tanstack-app/ # TanStack Router CLI (alias)
│ └── create-tsrouter-app/ # TanStack Router CLI (main)
├── packages/ # Core packages
│ ├── cta-cli/ # CLI interface
│ ├── cta-engine/ # Core engine
│ ├── cta-ui/ # Web UI components
│ └── cta-ui-base/ # Base UI components
├── frameworks/ # Framework implementations
│ ├── react-cra/ # React CRA framework
│ └── solid/ # Solid framework
└── examples/ # Example projects and starters
- Purpose: Main CLI interface for the application builder
- Key Dependencies:
@clack/prompts,commander,express,chalk - Scripts:
build,dev,test,test:watch,test:coverage
- Purpose: Core business logic and file generation engine
- Key Dependencies:
ejs,execa,memfs,prettier,zod - Features: Template processing, project generation, validation
- Purpose: Web interface for the application builder
- Key Dependencies:
react,tailwindcss,next-themes,sonner - Scripts:
build:ui,dev:ui(React dev server)
- Purpose: Creates TanStack Start applications (SSR)
- Features: Server-side rendering, React/Solid support, Vite build system
- Usage:
npx create-start-app@latest my-app
- Purpose: Creates TanStack Router applications (client-side routing)
- Features: File-based routing, TypeScript/JavaScript, React/Solid support
- Usage:
npx create-tsrouter-app@latest my-app
- Location:
frameworks/react-cra/ - Add-ons: Clerk, Shadcn, Neon, TanStack Query, tRPC, Form, Store, etc.
- Toolchains: Biome, ESLint + Prettier
- Examples: Blog starter, E-commerce starter, TanChat
- Location:
frameworks/solid/ - Add-ons: Solid UI, TanStack Query, Form, Store, etc.
- Toolchains: Biome, ESLint + Prettier
- Examples: TanChat
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Start development mode (watch all packages)
pnpm dev
# Run tests
pnpm test
# Clean node_modules
pnpm cleanNodeModules# Build with CLI (outside monorepo)
node cli/create-tsrouter-app/dist/index.js my-app
# Test with local add-ons
node cli/create-tsrouter-app/dist/index.js my-app --add-ons http://localhost:9080/add-on.json
# Test with local starters
node cli/create-tsrouter-app/dist/index.js my-app --starter http://localhost:9080/starter.json# Start API server
CTA_DISABLE_UI=true node cli/create-tsrouter-app/dist/index.js --ui
# Start React dev server
cd packages/cta-ui && pnpm dev:ui
# Run monorepo in watch mode
pnpm dev- Clerk: Authentication integration
- Shadcn: UI component library
- Neon: PostgreSQL database integration
- TanStack Query: Data fetching
- tRPC: Type-safe APIs
- Form: Form handling
- Store: State management
- Blog Starter: TanStack Router blog with file-based routing
- E-commerce Starter: AI-powered chat application
- Resume Starter: Professional resume template
- TanChat: AI chat application with Claude integration
The system uses EJS templates with these variables:
packageManager: npm, yarn, pnpm, bun, denoprojectName: Project nametypescript: TypeScript enabledtailwind: Tailwind CSS enabledfileRouter: File-based routingcodeRouter: Code-based routingaddOnEnabled: Enabled add-ons objectaddOns: Array of enabled add-onsroutes: Array of routes from add-ons
# Run all tests
pnpm test
# Test specific framework
cd frameworks/react-cra && pnpm test
# Test with coverage
pnpm test:coverage- Clone:
gh repo clone TanStack/create-tsrouter-app - Install:
pnpm install - Build:
pnpm build - Develop:
pnpm dev - Test:
pnpm test
- Monorepo: Uses pnpm workspaces and Nx for task orchestration
- Package Manager: Requires pnpm@9.15.5
- Node Version: Requires Node.js (see .nvmrc if available)
- Build System: TypeScript compilation, Vite for UI
- Testing: Vitest for unit tests, ESLint for linting
- Versioning: All packages share the same version (currently 0.16.5)
package.json: Root package configuration and workspace setuppnpm-workspace.yaml: Workspace configurationnx.json: Nx configuration for task orchestrationARCHITECTURE.md: Detailed architecture documentationCONTRIBUTING.md: Contribution guidelines
MIT Licensed - see LICENSE file for details