Back to blog

Shipping ds-start: What I Learned Building an AI-Native Starter

April 23, 2026

2 min read

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:

  1. /start-prd — Plan before you code
  2. /start-work — Execute from the plan
  3. /handoff — Save session state for continuity
  4. /start-review — Quality gates + code review
  5. /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.