From rapid-mvp
This skill provides the default 11ty (Eleventy) tech stack for rapid MVP development. Use when the user asks to "create a static site", "build a content site", "scaffold an 11ty project", "set up Eleventy", or when working in any project that uses 11ty with Bun. Also load when Claude is about to suggest templating, data handling, or styling approaches in an 11ty context — this skill defines the defaults.
npx claudepluginhub kjgarza/marketplace-claude --plugin rapid-mvpThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Default tech stack and patterns for Eleventy-based rapid MVPs. These are opinionated defaults — deviations require explicit discussion (see architecture-decisions skill).
| Layer | Technology | Version | Notes |
|---|---|---|---|
| Framework | Eleventy (11ty) | 3.x | Static site generator |
| Templating | Nunjucks | — | Primary template engine |
| Runtime | Bun | 1.1+ | Package manager AND runtime (not Node) |
| Validation | Zod | 4.x | Schema validation for data files |
| Client JS | Vanilla JavaScript | — | No React, no Vue, no framework |
| Language | JavaScript | — | ESM modules in scripts, no TypeScript in 11ty projects |
| Concern | Default |
|---|---|
| CSS framework | Tailwind CSS 4 via @tailwindcss/cli |
| Typography | @tailwindcss/typography for prose content |
| Theme | Shared tooling/theme.css with OKLCH @theme directive |
| Dark mode | Tailwind dark mode with [data-theme] selector |
| Build step | @tailwindcss/cli processes src/css/main.css → _site/css/main.css |
Never use CSS-in-JS. Never use PostCSS as a plugin — use @tailwindcss/cli directly.
11ty projects follow a strict data pipeline:
src/_data/ (e.g., recipes.json, products.json)src/schemas/ validate data on buildscripts/ transform validated data into derived data fileswindow.* for interactivityThis is critical. Every data change must go through:
Edit data → bun run validate → bun run generate → bun run build
The prebuild script in package.json should run validation automatically.
| Directory | Purpose |
|---|---|
src/_includes/layouts/ | Page layouts (base.njk, etc.) |
src/_includes/components/ | Reusable template partials |
src/_includes/macros/ | Nunjucks macros for repetitive patterns |
src/_data/ | Global data files (JSON) |
src/schemas/ | Zod validation schemas |
src/css/ | Tailwind CSS entry point (imports shared theme) |
src/js/ | Client-side vanilla JavaScript |
scripts/ | Build utilities (validate, generate, transform) |
11ty enforces data/format separation by convention:
src/_data/): JSON files containing content — this is where all content livessrc/_includes/): Nunjucks layouts, components, macros — these only define presentation_data/ filesThe .eleventy.js config should:
src/js, src/assets (NOT src/css — processed by Tailwind CLI)env global data (defaults to "development")formatMinutes, json, etc. as needed)src, output _site, includes _includes, data _dataDefault to GitHub Pages via GitHub Actions:
mainbun install → bun run validate → bun run build_site/ artifact@tailwindcss/cli for Tailwind builds_data/ manually — always generate via scripts_data/ filesFor complete file templates, configuration examples, and directory structures, read references/eleventy-patterns.md.