Usage

Templates

Templates are reusable presets of integrations. They capture configuration, not code.

Use a Template

sh
tanstack create my-app --template https://example.com/template.json
tanstack create my-app --template ./local-template.json

Create a Template

sh
# 1. Create project with desired integrations
tanstack create my-preset --integrations clerk,drizzle,sentry

# 2. Initialize template
cd my-preset
tanstack template init

# 3. Edit template-info.json, then compile
tanstack template compile

# 4. Use or distribute template.json
tanstack create new-app --template ./template.json

Template Schema

template-info.json:

json
{
  "id": "my-saas",
  "name": "SaaS Starter",
  "description": "Auth, database, monitoring",
  "framework": "react",
  "mode": "file-router",
  "typescript": true,
  "tailwind": true,
  "integrations": ["clerk", "drizzle", "sentry"],
  "integrationOptions": {
    "drizzle": { "database": "postgres" }
  }
}
FieldRequiredDescription
idYesUnique identifier
nameYesDisplay name
descriptionYesBrief description
frameworkYesreact
modeYesfile-router or code-router
typescriptYesEnable TypeScript
tailwindYesInclude Tailwind
integrationsYesIntegration IDs
integrationOptionsNoPer-integration config
bannerNoImage URL for UI

Template vs Integration

TemplateIntegration
Contains codeNoYes
Adds filesNoYes
Configuration presetYesNo