A sane way to start your next Tanstack Start app
- ✅ The latest Tanstack Start with react and first-class Tanstack Query support.
- ✅ Tailwind CSS 4 and shadcn/ui preinstalled.
- ✅ Better-Auth authentication with GitHub OAuth provider
- ✅ Drizzle ORM configured for Cloudflare D1.
- ✅ Valibot for type-safe enforcement.
- ✅ Type-aware linting with shared Eslint 9 configs
- ✅ Supercharged Prettier (with
@prettier/plugin-oxc) for consistent code style - ✅ Bun package manager and test runner
- ✅ Rolldown-powered Vite, with React (OXC)
- ✅ Automatic CI with Github Actions
- ✅ Pre-configured for Cloudflare Workers deployment
To get started, simply clone the repository and run bun run setup:
- Clone the project or use the template
npx gitpick startkit-dev/startkit my-app
cd my-app- Run the setup script
bun run setupThis script (located in ./bin/setup) will install the dependencies, set up your local .env file, and migrate the database.
Start the development server:
bun devRun all quality checks (formatting, linting, and type checking):
bun run checkAuto-fix formatting and linting issues:
bun run fixIndividual commands:
bun run format # Format code with Prettier
bun run format:check # Check formatting without fixing
bun run lint # Lint code with ESLint
bun run lint:fix # Auto-fix linting issues
bun run typecheck # Run TypeScript type checking
bun test # Run the test suiteThis project uses Drizzle ORM configured for Cloudflare D1 by default, but can be swapped to any database of your choosing.
bun run db:generate # Generate database schema migrations
bun run db:migrate # Apply database migrations (locally)
bun run db:reset # Reset database (clean + migrate)
bun run db:studio # Open Drizzle Studio GUITo create a new D1 database in production, run:
bun wrangler d1 create "startkit-db"Authentication is handled by Better-Auth with:
- GitHub OAuth provider pre-configured
- User, session, account, and verification tables
- Drizzle adapter integration
- Type-safe environment configuration
Build for production:
bun run buildThis project is pre-configured for automatic deployment to Cloudflare Workers with unique preview URLs for each pull request.
📖 See detailed deployment guide →
bun run clean # Clean cache directories
bun run nuke # Clean everything including node_modules
bun run outdated # Check for package updates interactively