bundles/frontend/skills/micro-landing-builder/SKILL.md
Scaffold, clone, and deploy config-driven NextJS landing pages that use a shared UI components package. Use this skill 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 automatic 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"
}
]
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 propstesting
Use this skill when users need to validate a launch plan, assess MVP scope, or determine if they're ready to execute. Activates for "validate my plan," "am I ready to launch," "is my scope too big," or when assessing action readiness.
testing
Use this skill when users are stuck on a decision, overthinking, experiencing analysis paralysis, or need to ship faster. Activates for "should I wait," "I can't decide," "I'm overthinking," or when speed is critical and perfectionism is the enemy.
development
Use this skill when users need to make early hires, build their founding team, determine compensation/equity, decide who to hire first, or scale from founders to first employees. Activates for "who should I hire first," "early hiring," "equity for employees," or team building questions.
data-ai
Use this skill when users need to remove customer friction, improve customer success, handle objections, design guarantees, or eliminate obstacles between customers and results. Activates for customer success issues, objection handling, or "customers can't get results" problems.