I just published ds-start to npm. It's an opinionated CLI that scaffolds Next.js projects with strict TypeScript, shadcn/ui, type-safe API routes, environment validation, and built-in agentic coding workflows.
This post is about why I built it, what I learned, and what's next.
The Problem
Every new project starts the same way: scaffold Next.js, configure ESLint, add Prettier, set up Husky, install shadcn, wire up a theme toggle, add environment validation, create API route patterns, configure TypeScript strict mode... two hours of boilerplate before writing a single line of business logic.
I've done this enough times that the setup phase felt like a tax on starting new ideas.
What ds-start Does
npx ds-start my-app --prisma --auth --github-workflows
One command gives you:
- Next.js 16 with App Router and Turbopack
- TypeScript strict mode — no
any, no escape hatches - shadcn/ui with Tailwind CSS 4
- next-ts-api for end-to-end type-safe API routes
- varlock for schema-driven environment validation
- Husky + lint-staged pre-commit hooks
- Composable extras — Prisma, Better Auth, Clerk, GitHub Actions, Vercel Deploy
The Agentic Part
The thing I'm most excited about is the built-in agentic workflow. Every project ships with skills that guide your AI coding assistant:
/start-prd— Plan before you code/start-work— Execute from the plan/handoff— Save session state for continuity/start-review— Quality gates + code review/start-pr— Commit and create a PR
This isn't about replacing developers. It's about giving your AI assistant enough context to be genuinely useful — understanding your conventions, running your quality gates, and following a structured workflow instead of generating random code.
What I'd Do Differently
Start with fewer extras. I shipped six composable extras (Prisma, Better Auth, Clerk, GitHub Workflows, Vercel Deploy, dev-tooling). Each one multiplies the test matrix. I should have started with the base template and added extras one at a time.
Test templates as real apps. The verification scripts that run bun run build && bun run lint && bun run typecheck on scaffolded projects caught more bugs than unit tests ever would. I wish I'd set those up from day one.
What's Next
The portfolio you're reading this on was scaffolded with ds-start. Dogfooding is the best QA.
Next up: more extras, better docs, and maybe a create-t3-app-style interactive wizard. If you try it, let me know what breaks.