npx skills add ...
npx skills add shipshitdev/skills --skill landing-page-vercel
Scaffolds a production-ready static landing page with working email capture form, analytics, and responsive design. Activates on "create landing page", "build a landing page", "launch page for product", or similar requests. Optionally deploys to Vercel on explicit request.
npx skills add shipshitdev/skills --skill landing-page-vercel
Create a static landing page with:
Inputs:
Outputs:
Creates/Modifies:
External Side Effects:
Confirmation Required:
Delegates To:
project-init-orchestrator / npx @shipshitdev/v0 for full Shipshit.dev product repos
frontend-design for custom visual design
deployment-composer or deploy-app for deployment
Structure: Semantic HTML5 + Modern CSS + Vanilla JS
Form: Working email capture (Formspree or custom endpoint)
Analytics: Plausible/Fathom ready
Design: Responsive, accessible, performant
Deploy: One-click Vercel deployment
This skill generates working landing pages, not empty templates:
Ask the user for product details, then extract and confirm: product name, tagline, hero headline/subheadline/CTA, 3-5 features with descriptions, CTA type (Waitlist/Sign Up/Demo Request/Contact), and social proof preference (Testimonials/Logos/Stats/None). See references/full-guide.md (§ PRD Brief Intake Template) for the confirmation message format.
Generate complete landing page content across these sections:
Choose an email capture option:
Verify before handoff:
Generates index.html, styles.css, script.js, data.json, vercel.json, and an assets/ directory. See references/full-guide.md (§ Generated Structure) for the full file tree.
Form submission handles loading/success/error states via fetch against the form's action URL; content lives in data.json (hero, features, faq) so copy edits never touch markup. See references/full-guide.md (§ Form Handling (JavaScript), § Data Structure (data.json)) for the full implementations.
Formspree (Recommended): create a free account at formspree.io, create a form, and replace YOUR_FORM_ID in the HTML with the generated form ID.
Custom Endpoint: post { email } as JSON to a self-hosted API and handle the response. See references/full-guide.md (§ Option 2: Custom Endpoint) for the full snippet.
Add one script tag to the page head: Plausible (data-domain + plausible.io/js/script.js) for privacy-friendly analytics, or Fathom (cdn.usefathom.com/script.js + data-site). See references/full-guide.md (§ Analytics Setup) for both tags.
vercel.json maps all static assets through @vercel/static, routes everything to index.html, and sets baseline security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection). See references/full-guide.md (§ Vercel Configuration (vercel.json)) for the full config.
Theme tokens (--color-primary, --color-bg, --font-sans, --spacing-*, --max-width) drive the whole stylesheet — see references/full-guide.md (§ CSS Variables) for the full :root block.
scripts/scaffold.py - Generation script (templates are inline)references/full-guide.md - Full PRD template, generated file tree, form/analytics/deploy config dumps, and CSS variable setcd my-landing-page
bunx vercel # Deploy (no global install needed)
bunx vercel --prod # Production deploy