--- name: micro-landing-builder description: 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. --- # Micro Landing Builder Create config-driven NextJS landing pages for startups. ## Concept Each landing page is a standalone NextJS app where: - Content is defined in `app.json` config file - UI comes from `@agenticindiedev/ui` - Deploy independently to any domain via Vercel ## Prerequisites You need a published landing UI components package. The skill expects: - Package name (default: `@agenticindiedev/ui`) - Components: Hero, Features, Pricing, FAQ, CTA, Testimonials, Stats, EmailCapture, Header, Footer ## Usage ```bash # Show help python3 ~/.claude/skills/micro-landing-builder/scripts/scaffold.py --help # Create a new landing python3 ~/.claude/skills/micro-landing-builder/scripts/scaffold.py \ --slug mystartup \ --name "My Startup" \ --domain "mystartup.com" \ --concept "AI-powered analytics" # With custom UI package python3 ~/.claude/skills/micro-landing-builder/scripts/scaffold.py \ --slug mystartup \ --name "My Startup" \ --ui-package "@myorg/landing-kit" # Allow outside current directory python3 ~/.claude/skills/micro-landing-builder/scripts/scaffold.py \ --root ~/www/landings \ --slug mystartup \ --allow-outside ``` ## Generated Structure ``` 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 ``` ## app.json Config The landing is entirely driven by `app.json`. See `references/config-schema.md` for full schema. ```json { "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 } } ] } ``` ## Section Types - `hero` - Main hero with headline, CTA buttons - `stats` - Key metrics/numbers - `features` - Feature grid with icons - `pricing` - Pricing plans - `testimonials` - Customer quotes - `faq` - Accordion FAQ - `cta` - Call to action with email capture ## Batch Creation Create multiple landing pages from a template or CSV/JSON file: ```bash # From CSV file python3 ~/.claude/skills/micro-landing-builder/scripts/batch_create.py \ --root ~/www/landings \ --csv projects.csv \ --allow-outside # From JSON file python3 ~/.claude/skills/micro-landing-builder/scripts/batch_create.py \ --root ~/www/landings \ --json projects.json \ --allow-outside # Clone from existing template python3 ~/.claude/skills/micro-landing-builder/scripts/batch_create.py \ --root ~/www/landings \ --template ~/www/landings/template-landing \ --json projects.json \ --allow-outside ``` ### CSV Format ```csv slug,name,domain,concept project1,Project One,project1.com,AI-powered analytics project2,Project Two,project2.com,Cloud infrastructure ``` ### JSON Format ```json [ { "slug": "project1", "name": "Project One", "domain": "project1.com", "concept": "AI-powered analytics" }, { "slug": "project2", "name": "Project Two", "domain": "project2.com", "concept": "Cloud infrastructure" } ] ``` ## Deployment ### Single Project ```bash cd mystartup vercel ``` ### Batch Deployment with Domains Deploy multiple projects to Vercel with custom domains: ```bash # Deploy with domain mapping python3 ~/.claude/skills/micro-landing-builder/scripts/deploy_vercel.py \ ~/www/landings/project1 \ ~/www/landings/project2 \ --domains-json domains.json \ --prod \ --yes # Single domain python3 ~/.claude/skills/micro-landing-builder/scripts/deploy_vercel.py \ ~/www/landings/project1 \ --domain project1.com \ --prod \ --yes ``` ### Domain Mapping JSON ```json { "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. ## Workflow ### Single Landing Page 1. Run scaffold to create landing structure 2. Edit `app.json` with your content 3. Add images to `public/` 4. Deploy with `vercel` or use `deploy_vercel.py` ### Multiple Landing Pages 1. Create CSV/JSON file with project definitions 2. Run `batch_create.py` to generate all landing pages 3. Customize each `app.json` as needed 4. Run `deploy_vercel.py` to deploy all with domains ## Customization To add custom sections or override components: 1. Add component to `app/components/` 2. Import in `app/page.tsx` 3. Add to section renderer ## References - `references/config-schema.md` - Full JSON schema - `references/sections-reference.md` - Section types and props