Scaffold Presets

Framework-specific project scaffolding presets for rapid development.

Bootspring provides framework-specific presets that generate complete, production-ready project structures. Each preset includes best practices, common patterns, and plugin integration.

Available Presets#

PresetDescriptionBest For
nextjsNext.js 15 + App Router + TypeScript + Tailwind + shadcn/uiFull-stack web apps
reactReact 19 + Vite + TypeScript + TailwindSPAs, dashboards
nodeExpress/Fastify + TypeScript + ZodAPIs, microservices
fullstackNext.js + Prisma + NextAuth + full stackComplete applications

Using Presets#

Basic Usage#

bootspring seed scaffold --preset=nextjs

Dry Run Preview#

Preview what will be created without writing files:

bootspring seed scaffold --preset=nextjs --dry-run

Example output:

Scaffold Plan: Framework: nextjs Language: typescript UI: shadcn Styling: tailwind Directories to create: + app/ + app/(auth)/ + app/api/ + components/ + components/ui/ + lib/ + hooks/ + types/ + public/ ... and 8 more Files to create: + app/layout.tsx + app/page.tsx + app/globals.css + components/ui/button.tsx + lib/utils.ts + package.json + tsconfig.json + tailwind.config.ts + next.config.js ... and 18 more Dry run - no files created

Preset Details#

Next.js Preset#

bootspring seed scaffold --preset=nextjs

Creates:

your-project/ ├── app/ │ ├── (auth)/ │ │ ├── sign-in/ │ │ └── sign-up/ │ ├── (dashboard)/ │ │ └── dashboard/ │ ├── api/ │ ├── layout.tsx │ ├── page.tsx │ └── globals.css ├── components/ │ ├── ui/ │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── input.tsx │ │ └── ... │ └── layout/ │ ├── header.tsx │ ├── footer.tsx │ └── sidebar.tsx ├── lib/ │ └── utils.ts ├── hooks/ ├── types/ ├── public/ ├── package.json ├── tsconfig.json ├── tailwind.config.ts ├── next.config.js └── .env.example

Includes:

  • App Router setup
  • TypeScript configuration
  • Tailwind CSS with shadcn/ui
  • Authentication routes
  • Dashboard layout
  • API route structure

React Preset#

bootspring seed scaffold --preset=react

Creates:

your-project/ ├── src/ │ ├── components/ │ ├── hooks/ │ ├── lib/ │ ├── pages/ │ ├── App.tsx │ ├── main.tsx │ └── index.css ├── public/ ├── package.json ├── tsconfig.json ├── vite.config.ts └── tailwind.config.ts

Includes:

  • Vite build system
  • React Router setup
  • TypeScript configuration
  • Tailwind CSS
  • Component structure

Node Preset#

bootspring seed scaffold --preset=node

Creates:

your-project/ ├── src/ │ ├── routes/ │ │ ├── index.ts │ │ ├── auth.ts │ │ └── users.ts │ ├── middleware/ │ │ ├── auth.ts │ │ └── validation.ts │ ├── lib/ │ │ ├── db.ts │ │ └── utils.ts │ ├── types/ │ └── index.ts ├── tests/ ├── package.json ├── tsconfig.json └── .env.example

Includes:

  • Express or Fastify setup
  • Route structure
  • Middleware patterns
  • Zod validation
  • Error handling

Fullstack Preset#

bootspring seed scaffold --preset=fullstack

Creates:

your-project/ ├── app/ │ ├── (auth)/ │ ├── (dashboard)/ │ ├── api/ │ │ ├── auth/ │ │ ├── users/ │ │ └── webhooks/ │ ├── layout.tsx │ └── page.tsx ├── components/ ├── lib/ │ ├── db.ts │ ├── auth.ts │ ├── stripe.ts │ └── utils.ts ├── prisma/ │ └── schema.prisma ├── package.json └── ...

Includes:

  • Everything from nextjs preset
  • Prisma database setup
  • NextAuth configuration
  • Stripe integration (if enabled)
  • API route handlers
  • Server actions

Plugin Integration#

Presets automatically include files based on your enabled plugins:

Auth Plugin#

Clerk:

├── middleware.ts ├── app/(auth)/sign-in/[[...sign-in]]/page.tsx ├── app/(auth)/sign-up/[[...sign-up]]/page.tsx └── lib/auth.ts

NextAuth:

├── app/api/auth/[...nextauth]/route.ts ├── lib/auth.ts └── types/next-auth.d.ts

Payments Plugin#

Stripe:

├── app/api/webhooks/stripe/route.ts ├── lib/stripe.ts └── config/products.ts

Database Plugin#

Prisma:

├── prisma/schema.prisma ├── lib/db.ts └── .env (DATABASE_URL)

Testing Plugin#

Vitest:

├── vitest.config.ts ├── tests/ │ ├── setup.ts │ └── example.test.ts └── package.json (test scripts)

Customizing Output#

From SEED.md#

If you have a SEED.md, scaffold reads configuration from it:

# Uses tech stack from SEED.md bootspring seed scaffold

From Config#

Use bootspring.config.js:

bootspring seed scaffold --from-config

Specific Components#

Scaffold specific parts:

1# Just API routes 2bootspring seed scaffold --component=api 3 4# Just components 5bootspring seed scaffold --component=ui 6 7# Just auth 8bootspring seed scaffold --component=auth

Post-Scaffold Steps#

After scaffolding:

1. Install Dependencies#

npm install # or pnpm install

2. Set Up Environment#

cp .env.example .env.local # Edit .env.local with your values

3. Initialize Database (if using Prisma)#

npx prisma db push

4. Start Development#

npm run dev

Tips#

Review Before Scaffolding#

Always use --dry-run first:

bootspring seed scaffold --preset=nextjs --dry-run

Don't Overwrite Existing Files#

Scaffold skips existing files by default. Use with confidence in existing projects:

# Safe - won't overwrite existing files bootspring seed scaffold --preset=nextjs

Customize After Scaffolding#

Presets provide a starting point. Customize after scaffolding:

  1. Adjust component styles
  2. Modify API routes
  3. Add your business logic
  4. Configure providers