| name | documenting-blueprint |
| description | Use when documenting blueprints in create-faster MDX docs - covers pre-composed starter projects with composition, architecture, application code, CLI usage, and extra dependencies |
Documenting Blueprint
Overview
Document what create-faster generates for each blueprint. Focus on the composition, architecture, and application code — not on teaching each library.
Core principle: Document the COMPOSITION and what APPLICATION CODE is included. For individual libraries in the composition, link to their standalone module/stack pages.
When to Use
Use when:
- Adding a new blueprint documentation page
- Updating existing blueprint docs after template changes
- Documenting newly created blueprints
Do NOT use for:
- Stack documentation (use
documenting-stack skill)
- Module documentation (use
documenting-module skill)
- Creating blueprints (use
adding-blueprints skill)
- Database/ORM documentation (use
documenting-stack skill)
Architecture Context
Where things live:
- Blueprint metadata:
META.blueprints[name] in apps/cli/src/__meta__.ts
- Blueprint templates:
apps/cli/apps/cli/templates/blueprints/{name}/
- Composition stacks:
META.stacks[stackName]
- Composition libraries:
META.libraries[libName]
- Composition project addons:
META.project.{category}.options[name]
- Documentation pages:
apps/www/content/docs/blueprints/{category}/{name}.mdx
Key concepts:
context.apps[] — what stacks and libraries are pre-selected
context.project — what project addons are pre-selected (database, orm, deployment)
packageJson — extra dependencies ONLY for the blueprint (not from composition)
envs — extra env vars ONLY for the blueprint (not from composition)
- Blueprint templates override structural templates with the same destination path
Package.json is programmatic. Composition dependencies come from META stacks/libraries/addons. Blueprint packageJson only declares EXTRA dependencies.
Env vars are programmatic. Composition envs come from META libraries/addons. Blueprint envs only declares EXTRA env vars.
Structure Template
---
title: Blueprint Name
description: One-line description of the starter project (from META.blueprints[name].hint)
---
## Presentation
Brief description of the complete starter project (2-3 sentences). What does the user get?
## Composition
**Apps:**
- `appName` — Stack ([→ docs](/docs/stacks/stackname)) + modules ([→ module](/docs/modules/category/name), ...)
**Project addons:**
- Database: [→ PostgreSQL](/docs/database/postgresql)
- ORM: [→ Drizzle](/docs/orm/drizzle)
- Deployment: [→ SST](/docs/deployment/sst) (if applicable)
## Architecture
File tree of the blueprint-specific application code (only what the blueprint ADDS beyond structural templates):
\`\`\`
src/
├── app/
│ ├── page.tsx # Description
│ └── (section)/
│ ├── layout.tsx # Description
│ └── page.tsx # Description
├── components/
│ └── component.tsx # Description
└── lib/
└── util.ts # Description
\`\`\`
For multi-app blueprints (turborepo), show per-app structure.
## What's included
Describe the key application features the blueprint provides. Keep it factual — what pages exist, what functionality they have. Use subsections if the blueprint has multiple significant features.
Code examples ONLY for blueprint-specific patterns (e.g., custom auth integration, special middleware). Do NOT show code for standard library setup — link to module docs instead.
## Extra dependencies
Only if `META.blueprints[name].packageJson` exists:
\`\`\`
package version purpose
recharts ^2.15.0 Dashboard charts
\`\`\`
## Environment variables
Only if `META.blueprints[name].envs` exists:
- `VAR_NAME` - Purpose (scope: app/root/pkg)
## CLI usage
\`\`\`bash
bunx create-faster myproject --blueprint {name} --linter biome --git --pm bun
\`\`\`
Documentation Workflow
Step 1: Analyze META for Blueprint Metadata
CRITICAL: META is the source of truth for composition, dependencies, and env vars.
grep -A 40 "'{blueprintname}'" apps/cli/src/__meta__.ts
grep -A 20 "context:" apps/cli/src/__meta__.ts | grep -A 15 "'{blueprintname}'"
grep -A 10 "packageJson:" apps/cli/src/__meta__.ts | grep -A 8 "'{blueprintname}'"
grep -A 10 "envs:" apps/cli/src/__meta__.ts | grep -A 8 "'{blueprintname}'"
Step 2: Analyze Blueprint Template Files
find apps/cli/templates/blueprints/{blueprintname}/ -name "*.hbs" | sort
grep -l '^---' apps/cli/templates/blueprints/{blueprintname}/**/*.hbs
ls apps/cli/templates/blueprints/{blueprintname}/**/*.*.hbs
grep 'only:' apps/cli/templates/blueprints/{blueprintname}/**/*.hbs
Document EXACTLY what files the blueprint adds. Cross-reference every claim with actual template files.
Step 3: Identify Overrides vs Additions
For each blueprint template file, determine:
- Override — replaces a structural template (same destination path as a stack/library template)
- Addition — new file not present in structural templates
Only document the blueprint-specific files. Don't document structural templates that pass through unchanged.
Step 4: Structure Document
Frontmatter (YAML):
title: Blueprint display name (from META.blueprints[name].label)
description: From META.blueprints[name].hint
CRITICAL - Don't add # Title:
Title in frontmatter already renders as H1. Adding # Title creates duplicate.
Document structure:
## Presentation — what the user gets (complete starter project description)
## Composition — stacks, libraries, project addons with links to their doc pages
## Architecture — file tree of blueprint-specific files
## What's included — application features and key code patterns
## Extra dependencies — only blueprint-specific extras from META
## Environment variables — only blueprint-specific extras from META
## CLI usage — example command
Step 5: Focus on Blueprint-Specific Content
DO document:
- The complete starter project description (what you get)
- Full composition with links to individual stack/module/addon pages
- Blueprint template files (verified in
apps/cli/templates/blueprints/{name}/)
- Application features (pages, layouts, components, routes)
- Key code patterns unique to the blueprint (custom auth flows, special middleware)
- Extra dependencies from
META.blueprints[name].packageJson
- Extra env vars from
META.blueprints[name].envs
- Multi-app architecture (for turborepo blueprints)
- CI/CD workflows (if included in blueprint templates)
DON'T document:
- How individual libraries work (link to module docs)
- How the stack works (link to stack docs)
- How the ORM/database works (link to their docs)
- Standard library setup code (shadcn components, tRPC init, etc.)
- Dependencies that come from the composition (they're in the library/stack META)
- Env vars that come from the composition (they're in the library/addon META)
- Structural template files that pass through unchanged
Step 6: Verify Every Claim
MANDATORY verification before publishing:
grep -A 30 "'{blueprintname}'" apps/cli/src/__meta__.ts
find apps/cli/templates/blueprints/{blueprintname}/ -name "*.hbs" | sort
grep -A 10 "packageJson:" apps/cli/src/__meta__.ts | grep -A 8 "'{blueprintname}'"
grep -A 10 "envs:" apps/cli/src/__meta__.ts | grep -A 8 "'{blueprintname}'"
grep -A 15 "context:" apps/cli/src/__meta__.ts | grep -A 10 "'{blueprintname}'"
Every composition element, file reference, dependency, and env var MUST be verified against the codebase.
Fumadocs Page Placement
Blueprint pages live under apps/www/content/docs/blueprints/{category}/:
content/docs/blueprints/
├── meta.json # Root folder config listing categories
├── business/
│ ├── meta.json # { "title": "Business" }
│ └── dashboard.mdx
├── web3/
│ ├── meta.json # { "title": "Web3" }
│ ├── dapp-privy.mdx
│ └── dapp-rainbowkit.mdx
└── aws/
├── meta.json # { "title": "AWS" }
├── lambda-sst.mdx
└── lambda-terraform-aws.mdx
Each category is a subdirectory with its own meta.json (like modules). The root meta.json lists categories:
{
"title": "Blueprints",
"pages": ["business", "web3", "aws"]
}
The root docs meta.json loads the blueprints folder:
"---BLUEPRINTS---",
"...blueprints"
RED FLAGS - You're Documenting Wrong
STOP if you write:
# Blueprint Name title (title in frontmatter already renders as H1)
- How to use shadcn/better-auth/drizzle (link to their module docs)
- Standard library setup code (that's module documentation, not blueprint)
- Composition dependencies listed as "blueprint dependencies" (only extras go in blueprint docs)
- Composition envs listed as "blueprint env vars" (only extras go in blueprint docs)
- Missing composition section (REQUIRED — it's the blueprint's defining characteristic)
- No links to individual stack/module/addon pages
Common Mistakes
| Mistake | Fix |
|---|
| Explaining library features | Link to module docs, focus on blueprint application code |
| Listing composition deps as extras | Only META.blueprints[name].packageJson goes in extra deps |
| Listing composition envs as extras | Only META.blueprints[name].envs goes in extra env vars |
| Missing composition section | REQUIRED: list all stacks, libraries, project addons with links |
| No file tree | Show blueprint-specific files with tree structure |
| Documenting structural templates | Only document what the BLUEPRINT adds/overrides |
| Missing CLI usage | Show --blueprint {name} example command |
| Unverified template files | Check apps/cli/templates/blueprints/{name}/ |
| Missing multi-app architecture | Turborepo blueprints need per-app structure |
Rationalization Table
| Excuse | Reality |
|---|
| "Need to explain what shadcn does" | Module docs exist. Link to them. |
| "Should show tRPC setup" | Module docs cover that. Blueprint docs cover application code. |
| "All dependencies should be listed" | Only blueprint-specific extras. Composition deps are in their own META entries. |
| "Should explain how better-auth works" | Link to /docs/modules/auth/better-auth. Focus on blueprint-specific auth patterns. |
| "The file tree should show everything" | Only blueprint-specific files. Structural templates are documented elsewhere. |
| "I saw this dependency in the generated output" | Verify it's in META.blueprints[name].packageJson, not coming from composition. |
| "Users need the full picture" | Composition links + blueprint specifics IS the full picture. Don't duplicate. |
Template Checklist
Frontmatter:
Document:
Verification (MANDATORY):