Skip to content
Skillv1.0.0

micro-landing-builder

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

by shipshitdev(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from shipshitdev/skills (skills/micro-landing-builder/SKILL.md). Install upstream with npx skills add shipshitdev/skills --skill micro-landing-builder. Copyright stays with the author.

Micro Landing Builder

Create config-driven NextJS landing pages for startups.

Contract

Inputs:

  • One or more landing definitions: slug, name, domain, concept, and config
  • Destination root
  • Optional shared UI package and domain mapping

Outputs:

  • Generated landing app directories
  • app.json config files
  • Deployment plan or deployed URLs when deploy is explicitly requested

Creates/Modifies:

  • Local landing app directories
  • Vercel config files
  • Does not deploy production by default

External Side Effects:

  • May deploy to Vercel and attach custom domains only after explicit deploy request

Confirmation Required:

  • Before batch creation outside the current workspace
  • Before production deploys
  • Before attaching custom domains
  • Before overwriting an existing landing directory

Delegates To:

  • Recommend landing-page-vercel for single static landing pages
  • project-init-orchestrator / npx @shipshitdev/v0 for full product repos
  • deployment-composer or deploy for Vercel deployment

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

# 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

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.

{
  "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:

# 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

CSV Format

slug,name,domain,concept
project1,Project One,project1.com,AI-powered analytics
project2,Project Two,project2.com,Cloud infrastructure

JSON Format

[
  {
    "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

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

Batch Deployment with Domains

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

Domain Mapping 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

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/shipshitdev-skills-micro-landing-builder/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

shipshitdev-skills-micro-landing-builder.ocm.jsonjson
{
  "ocm": "1",
  "id": "shipshitdev-skills-micro-landing-builder",
  "kind": "skill",
  "name": "micro-landing-builder",
  "description": "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.",
  "publisher": "shipshitdev",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "data_analysis"
    ],
    "tags": [
      "skill-md",
      "landing-page",
      "nextjs",
      "vercel",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "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."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/shipshitdev/skills",
      "path": "skills/micro-landing-builder/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/shipshitdev/skills/blob/HEAD/skills/micro-landing-builder/SKILL.md",
      "key": "shipshitdev/skills/skills/micro-landing-builder/SKILL.md"
    }
  },
  "instructions": "# Micro Landing Builder\n\nCreate config-driven NextJS landing pages for startups.\n\n## Contract\n\nInputs:\n\n- One or more landing definitions: slug, name, domain, concept, and config\n- Destination root\n- Optional shared UI package and domain mapping\n\nOutputs:\n\n- Generated landing app directories\n- `app.json` config files\n- Deployment plan or deployed URLs when deploy is explicitly requested\n\nCreates/Modifies:\n\n- Local landing app directories\n- Vercel config files\n- Does not deploy production by default\n\nExternal Side Effects:\n\n- May deploy to Vercel and attach custom domains only after explicit de",
  "cost": {
    "context_tokens": 1470
  }
}

Fetch it by URL: GET /api/v1/registry/shipshitdev-skills-micro-landing-builder/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.

micro-landing-builder - Skill - OpenSmartRoute