scaffold-nextjs
Scaffold Next.js
Scaffold a Next.js turborepo with full tooling, GitHub, and Vercel deployment.
Reference Files
| File | Read When |
|---|---|
references/app-setup.md |
Default: create-next-app flags, shadcn + Blode registry setup, Agentation, Ultracite commands and code patches |
references/turbo-configs.md |
Default: root package.json, turbo.json, .gitignore, knip.json, next.config.ts |
references/deploy-and-launch.md |
After Phase 6: GitHub setup, Vercel deployment, favicon, OG images, pre-launch checklist |
Scaffold Workflow
Copy this checklist to track progress:
Scaffold progress:
- [ ] Phase 1: Gather project info
- [ ] Phase 2: Create Next.js app
- [ ] Phase 3: Install Blode UI components
- [ ] Phase 4: Install Agentation
- [ ] Phase 5: Install Ultracite
- [ ] Phase 6: Convert to Turborepo
- [ ] Phase 7: GitHub and Vercel setup
- [ ] Phase 8: Pre-launch checklist
Phase 1: Gather project info
Collect from the user (ask only what was not provided):
| Variable | Example | Default | Used in |
|---|---|---|---|
{{name}} |
acme-web |
-- (required) | Root package.json, directory name, README |
{{description}} |
Marketing site for Acme |
-- (required) | App package.json, README |
{{repo}} |
acme-corp/acme-web |
— (required) | GitHub remote URL |
{{domain}} |
acme.com |
— (ask if not provided) | Vercel custom domain, metadataBase |
{{author}} |
Your Name |
— (required) | package.json author |
{{year}} |
2026 |
current year | LICENSE |
Phase 2: Create Next.js app
Load references/app-setup.md.
npx create-next-app@latest {{name}} --typescript --tailwind --app --no-src-dir --no-eslint --import-alias "@/*"
Follow the remaining setup in references/app-setup.md. Confirm the app runs with npm run dev.
Phase 3: Install Blode UI components
Load references/app-setup.md.
Initialize shadcn/ui and register the Blode UI component library from ui.blode.co as described in the reference. Always use blode-icons-react for icon imports (never lucide-react).
Phase 4: Install Agentation
Load references/app-setup.md.
Install the package and patch app/layout.tsx with the dev-only <Agentation /> component as described in the reference. Optionally add Google Analytics using @next/third-parties.
Phase 5: Install Ultracite
Load references/app-setup.md.
Remove the default biome config and initialize Ultracite as described in the reference.
Phase 6: Convert to Turborepo
Load references/turbo-configs.md.
- Create root directory structure and move the app into
apps/web/. - Generate root
package.json,turbo.json. - Generate
knip.json. - Generate root
.gitignore. - Ensure
apps/web/package.jsonhas these scripts:"lint": "oxlint .""lint:fix": "oxlint --fix .""format": "oxfmt --write .""format:check": "oxfmt .""check-types": "tsc --noEmit""test": "vitest run""test:watch": "vitest"
- Verify
apps/web/next.config.tshasreactCompiler: true. - Run
npm installfrom root. - Verify
npm run devworks from root (turbo runs apps/web).
Phase 7: GitHub and Vercel setup
Load references/deploy-and-launch.md.
Follow the GitHub and Vercel setup steps in the reference.
Phase 8: Pre-launch checklist
Load references/deploy-and-launch.md.
Generate a favicon package using RealFaviconGenerator, add OG images, then hand off to other skills.
Placeholder Reference
All templates use {{variable}} syntax. Do a final sweep to catch missed placeholders.
| Placeholder | Source |
|---|---|
{{name}} |
Project name (kebab-case) |
{{description}} |
One-line project description |
{{repo}} |
GitHub owner/repo |
{{domain}} |
Custom domain for Vercel |
{{author}} |
Author name |
{{year}} |
Current year |
Anti-patterns
- Do not use src/ directory -- create-next-app flag disables it
- Do not use ESLint -- Oxlint via Ultracite replaces it
- Do not call oxlint or oxfmt directly -- use
ultracite fixorultracite check - Do not configure git hooks manually -- Ultracite sets up lefthook automatically
- Do not put app dependencies in root package.json -- only devDependencies (turbo, ultracite)
- Do not skip the Blode registry setup step (see
references/app-setup.md) before adding Blode components - Do not use
lucide-reactin scaffolded UI code -- useblode-icons-react - Do not create apps/web manually -- create-next-app first, then move
Skill Handoffs
| When | Run |
|---|---|
| After deployment, optimise SEO | optimise-seo |
| Before launch, audit UI quality | ui-audit |
| Before launch, add motion and animation | ui-animation |
More from mblode/agent-skills
ui-animation
Creates, reviews, and debugs UI motion and animation implementations. Covers springs, gestures, drag interactions, clip-path reveals, easing, timing, and animation review. Use when designing, implementing, or reviewing motion, CSS transitions, keyframes, framer-motion, spring animations, asking "add animations to", "make this feel smooth", "review my animations", "should this animate", or "add a swipe gesture
4.3Kagent-skills-creator
Guides creation of best-practice agent skills following the open format specification. Covers frontmatter, directory structure, progressive disclosure, reference files, rules folders, degrees of freedom, content patterns, executable scripts, MCP tool references, evaluations, and cross-model testing. Use when creating a new skill, authoring SKILL.md, setting up a rules-based audit skill, structuring a skill bundle, writing scripts inside a skill, evaluating a skill, or asking "how to write a skill.
265ui-audit
Audits web UI quality across accessibility, interaction, forms, typography, navigation, layout, performance, motion, and microcopy. Use when reviewing or refining frontend UI before merge or release, asking "check my UI", "is this accessible", "polish this page", or when the user asks for a UI, UX, or accessibility audit.
209optimise-seo
Optimises SEO for Next.js App Router apps including sitemaps, meta tags, structured data, canonical URLs, Core Web Vitals, and programmatic SEO. Use when asked to improve SEO, add sitemap.xml, fix meta tags, add structured data, set canonical URLs, improve Core Web Vitals, audit SEO, or build SEO pages at scale. Performs no visual redesigns.
208ui-design
Defines visual systems, colour palettes, typography scales, and layout patterns for web UI. Produces design tokens and component styling for product dashboards (SaaS/admin/data-heavy) or marketing/brand landing pages. Use when choosing visual direction, designing a landing page, building a hero section, selecting colour palettes and fonts, establishing layout patterns, starting a new UI design system, theming a web application, or asking "make this look good", "make this look premium", "design the UI for", "full-bleed hero", or "pick a visual style".
190define-architecture
Generates folder structures, module contracts, middleware pipelines, and frontend/backend boundaries for TypeScript full-stack applications. Use when starting a project, setting up project structure, organizing a monorepo, configuring middleware, defining folder layout, designing backend modules, establishing team conventions, or asking "how should I structure this app", "design the folder structure", or "set up the architecture".
187