Skip Repetitive Stack Setup (Database, Auth, UI) and Start Coding Immediately
Source: Dev.to
The Problem
Last week I started a new Next.js project. Needed the usual stack:
- drizzle for database
- better‑auth for authentication
- shadcn for UI
- TanStack Query for data fetching
Here’s what happened:
- Install drizzle, create schema, configure client
- Install better‑auth, create user/session/account tables
- Wire better‑auth to drizzle schema
- Install shadcn, set up
components.json - Configure theme provider
- Set up TanStack Query with proper providers
- Debug TypeScript paths for 20 minutes
- Realize I forgot to add auth tables to schema
- 90 minutes later: finally working
I’ve done this exact integration 6 times in 4 months. Same stack. Same debugging. Same wasted time.
The Solution I Built
create-faster generates projects with your chosen stack already integrated:
bunx create-faster
Interactive Mode
Pick your stack:
- Framework: Next.js, Expo, Hono, TanStack Start
- Database: Postgres, MySQL
- ORM: Drizzle, Prisma (with auto‑generated auth tables)
- UI: shadcn, nativewind, theme support, and more
- Features: Better Auth, TanStack Query/Form, MDX, PWA, etc.
- Package manager: bun, pnpm, npm
Non‑Interactive Mode
Same setup every time:
bunx create-faster myapp \
--app myapp:nextjs:shadcn,better-auth,tanstack-query \
--database postgres \
--orm drizzle \
--git --pm bun
Multi‑App Monorepos
Web + mobile sharing a database:
bunx create-faster mysaas \
--app web:nextjs:shadcn,better-auth \
--app mobile:expo:nativewind \
--database postgres \
--orm drizzle \
--git --pm bun
Auto‑creates a Turborepo. Both apps use the shared db package, and auth tables are already in the drizzle schema.
What It Actually Generates
Not just files – working integrations.
drizzle + better‑auth
- User, session, and account tables in the drizzle schema
- Database client configured
- Auth config pointing to drizzle
- Type‑safe queries ready to use
shadcn + next‑themes
- shadcn installed with
components.jsonconfigured - Theme provider in app layout
- Dark‑mode toggle component ready
- Tailwind configured
TanStack Query + Next.js
- Query client configured
- Provider in app layout
- Devtools ready if selected
- Example query hooks
For Monorepos
- Turborepo with proper pipeline
- Shared
dbpackage used by all apps - TypeScript paths configured
- Single install command
The Reproducibility Feature
After generation, get the exact command to recreate it:
create-faster mysaas \
--app web:nextjs:shadcn,better-auth \
--app mobile:expo:nativewind \
--database postgres \
--orm drizzle \
--git --pm bun
Save it. Run it later. Same integrated stack every time.
Why I Built This
I kept rebuilding the same integrations:
- drizzle schema with better‑auth tables
- shadcn with theme provider
- TanStack Query wired into Next.js
- Turborepo for web + mobile
Each time: ~90 minutes of the same work, and slightly different setups leading to bugs later.
Now: one command. Consistent, working stack every time.
What’s Next
Currently supports
- Frameworks: Next.js, Expo, Hono, TanStack Start
- Databases: Postgres, MySQL with drizzle or Prisma
- Popular modules: shadcn, better‑auth, TanStack Query/Form, and more
- Monorepo: Auto Turborepo for multi‑app projects
Roadmap
- More frameworks (Remix, Astro)
- More integrations (tRPC, i18n, Stripe)
- Template examples (dashboards, dApp, SaaS)
- Saved presets
Try It
bunx create-faster
- GitHub:
- Docs:
- npm:
MIT licensed. PRs welcome.
Discussion
What stack integrations are you tired of rebuilding? What would make this more useful?