bundles/frontend/skills/micro-landing-builder/SKILL.md
Scaffolds, clones, and deploys config-driven NextJS landing pages that use a shared UI components package. Use when creating single or multiple startup landing pages with email capture, analytics, and modern design. Supports batch creation from templates or CSV/JSON files and Vercel deployment with custom domains. Each landing is a standalone NextJS app driven by an app.json config file.
npx skillsauth add shipshitdev/library micro-landing-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create config-driven NextJS landing pages for startups.
Inputs:
Outputs:
app.json config filesCreates/Modifies:
External Side Effects:
Confirmation Required:
Delegates To:
landing-page-vercel for single static landing pagesproject-init-orchestrator / npx @shipshitdev/v0 for full product reposdeployment-composer or deploy for Vercel deploymentEach landing page is a standalone NextJS app where:
app.json config file@agenticindiedev/uiYou need a published landing UI components package. The skill expects:
@agenticindiedev/ui)# Show help
python3 scripts/scaffold.py --help
# Create a new landing
python3 scripts/scaffold.py \
--slug mystartup \
--name "My Startup" \
--domain "mystartup.com" \
--concept "AI-powered analytics"
# With custom UI package
python3 scripts/scaffold.py \
--slug mystartup \
--name "My Startup" \
--ui-package "@myorg/landing-kit"
# Allow outside current directory
python3 scripts/scaffold.py \
--root ~/www/landings \
--slug mystartup \
--allow-outside
mystartup/
├── app.json # All content/config here
├── package.json # Depends on UI package
├── next.config.ts
├── tailwind.config.ts
├── tsconfig.json
├── vercel.json # Vercel deployment config
├── public/
│ └── (images go here)
└── app/
├── layout.tsx
├── page.tsx # Renders sections from app.json
└── globals.css
The landing is entirely driven by app.json. See references/config-schema.md for full schema.
{
"name": "My Startup",
"slug": "mystartup",
"domain": "mystartup.com",
"meta": {
"title": "My Startup - Tagline",
"description": "SEO description"
},
"theme": {
"primary": "#6366f1",
"accent": "#f59e0b"
},
"analytics": {
"plausible": "mystartup.com"
},
"sections": [
{ "type": "hero", "headline": "...", "subheadline": "..." },
{ "type": "features", "items": [...] },
{ "type": "pricing", "plans": [...] },
{ "type": "faq", "items": [...] },
{ "type": "cta", "emailCapture": { "enabled": true } }
]
}
hero - Main hero with headline, CTA buttonsstats - Key metrics/numbersfeatures - Feature grid with iconspricing - Pricing planstestimonials - Customer quotesfaq - Accordion FAQcta - Call to action with email captureCreate multiple landing pages from a template or CSV/JSON file:
# From CSV file
python3 scripts/batch_create.py \
--root ~/www/landings \
--csv projects.csv \
--allow-outside
# From JSON file
python3 scripts/batch_create.py \
--root ~/www/landings \
--json projects.json \
--allow-outside
# Clone from existing template
python3 scripts/batch_create.py \
--root ~/www/landings \
--template ~/www/landings/template-landing \
--json projects.json \
--allow-outside
slug,name,domain,concept
project1,Project One,project1.com,AI-powered analytics
project2,Project Two,project2.com,Cloud infrastructure
[
{
"slug": "project1",
"name": "Project One",
"domain": "project1.com",
"concept": "AI-powered analytics"
},
{
"slug": "project2",
"name": "Project Two",
"domain": "project2.com",
"concept": "Cloud infrastructure"
}
]
Before running vercel, confirm .vercel/project.json exists in the landing directory. If it does not exist, stop and ask the user to run vercel link manually — do not run it unattended.
cd mystartup
vercel
Deploy multiple projects to Vercel with custom domains:
# Deploy with domain mapping
python3 scripts/deploy_vercel.py \
~/www/landings/project1 \
~/www/landings/project2 \
--domains-json domains.json \
--prod \
--yes
# Single domain
python3 scripts/deploy_vercel.py \
~/www/landings/project1 \
--domain project1.com \
--prod \
--yes
{
"project1": "project1.com",
"project2": "project2.com"
}
Note: Domains must be configured in your DNS before adding to Vercel. Vercel will provide DNS records to add.
app.json with your contentpublic/vercel or use deploy_vercel.pybatch_create.py to generate all landing pagesapp.json as neededdeploy_vercel.py to deploy all with domainsTo add custom sections or override components:
app/components/app/page.tsxreferences/config-schema.md - Full JSON schemareferences/sections-reference.md - Section types and propsdevelopment
TypeScript refactoring and modernization guidelines from a principal specialist perspective. This skill should be used when refactoring, reviewing, or modernizing TypeScript code to ensure type safety, compiler performance, and idiomatic patterns. Triggers on tasks involving TypeScript type architecture, narrowing, generics, error handling, or migration to modern TypeScript features.
tools
Resolves TypeScript and JavaScript problems across type-level programming, performance, monorepo management, migration, and modern tooling. Invoke when diagnosing "type instantiation excessively deep" errors, migrating JS to TS, configuring strict tsconfig, debugging module resolution, or choosing between Biome/ESLint/Turborepo/Nx.
tools
Turborepo monorepo build system guidance. Triggers on: `turbo.json`, task pipelines, `dependsOn`, caching, remote cache, the `turbo` CLI, `--filter`, `--affected`, CI optimization, environment variables, internal packages, monorepo structure, and package boundaries. Use when the user configures tasks or workflows, creates packages, sets up a monorepo, shares code between apps, runs changed packages, debugs cache behavior, or works in an `apps/` plus `packages/` workspace.
tools
Provides Tailwind CSS v4 performance optimization and best practices guidelines. Triggers when writing, reviewing, or refactoring Tailwind CSS v4 code; when working with Tailwind configuration, @theme directive, utility classes, responsive design, dark mode, container queries, or CSS generation optimization.