A production-ready full-stack template built with TanStack Start, featuring authentication, organizations, tRPC, and everything you need to ship fast.
- TanStack Start - Full-stack React framework with SSR/SSG support
- TanStack Router - Type-safe file-based routing with built-in data loading
- TanStack Query - Powerful data fetching and caching
- TanStack Table - Headless table utilities
- TanStack Form - Type-safe form handling
- tRPC - End-to-end type-safe APIs without schemas or code generation
- Drizzle ORM - Type-safe SQL with automatic migrations
- PostgreSQL - Database via Supabase connection pooling
- Zod - Schema validation for runtime type safety
- Better Auth - Complete authentication solution
- Email/password authentication with verification
- Google OAuth integration
- Two-factor authentication (2FA)
- Organization/team management
- Session management
- Custom Design System - Refined component library with a cohesive design language built on top of shadcn/ui
- Tailwind CSS v4 - Utility-first CSS framework
- shadcn/ui - Accessible component primitives
- Radix UI - Unstyled, accessible components
- Lucide Icons - Beautiful icon set
- Sonner - Toast notifications
- cmdk - Command palette component
- Sentry - Error tracking and performance monitoring
- PostHog - Product analytics
- Vercel Analytics - Web analytics
- Resend - Transactional emails with React templates
- Biome - Fast linting and formatting
- Vitest - Unit and integration testing
- T3 Env - Type-safe environment variables
- TypeScript - Static type checking
- Email/password signup with email verification
- Google OAuth login
- Password reset flow
- Protected routes and middleware
- Session management
- Create and manage organizations
- Invite team members via email
- Role-based access control
- Organization switching
- Responsive sidebar navigation
- User account dropdown
- Settings pages (profile, teams, shortcuts)
- Command palette (Cmd+K)
- Customized shadcn/ui component library with a polished design language
- Dark/light/system theme support
- Loading states and progress indicators
- Form validation with error handling
- Toast notifications
- tRPC router setup with context
- Database queries with Drizzle
- Rate limiting with Upstash
- Error handling
- Password reset emails
- Team invitation emails
- Privacy policy template
- Terms of service template
- Node.js 18+
- pnpm (recommended) or npm
- PostgreSQL database (Supabase recommended)
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env
# Update .env with your valuesConfigure the following in your .env file:
DATABASE_URL- PostgreSQL connection stringSUPABASE_URL&SUPABASE_SERVICE_ROLE_KEY- Supabase credentialsBETTER_AUTH_SECRET- Auth secret (generate withopenssl rand -base64 32)VITE_GOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRET- Google OAuthRESEND_API_KEY- Email sendingSENTRY_AUTH_TOKEN- Error trackingVITE_PUBLIC_POSTHOG_KEY- Analytics
# Generate migrations
pnpm db:generate
# Push schema to database
pnpm db:push
# Open Drizzle Studio
pnpm db:studio# Start development server
pnpm devOpen http://localhost:3000 in your browser.
# Build for production
pnpm build
# Start production server
pnpm startsrc/
├── app/ # App-level configuration
├── components/ # React components
│ └── ui/ # shadcn/ui components
├── config/ # App configuration
├── hooks/ # Custom React hooks
├── integrations/ # Third-party integrations
│ ├── tanstack-query/ # Query client setup
│ └── trpc/ # tRPC router and client
├── layouts/ # Layout components
├── lib/ # Utilities and core logic
│ ├── auth/ # Authentication setup
│ ├── db/ # Database schema and queries
│ ├── email/ # Email templates
│ └── utils/ # Helper functions
├── routes/ # File-based routes
│ ├── dashboard/ # Dashboard pages
│ └── settings/ # Settings pages
└── styles/ # Global styles
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm test # Run tests
pnpm lint # Lint code
pnpm format # Format code
pnpm check # Run all checks
pnpm typecheck # Type check
pnpm db:generate # Generate migrations
pnpm db:push # Push schema to database
pnpm db:studio # Open Drizzle Studio# Add shadcn/ui components
pnpx shadcn@latest add button
pnpx shadcn@latest add cardThis template is optimized for deployment on Vercel. Simply connect your repository and deploy.
For other platforms, build the application and run the production server:
pnpm build
pnpm startMIT
