| name | saas-landing-builder |
| description | Build the SaaS landing page in `sites/<slug>/` once the brand is approved. Auto-activate when `approval.json.approved === true` and the user asks for a landing page, website, marketing site, or runs `/build-landing`. Generates a Next.js + Tailwind + Framer Motion app, wires Higgsfield-generated hero motion + feature micro-animations, writes SaaS copy from `brand.json` + `saas-context.json`, and ALWAYS places a `<Waitlist />` section at the bottom. |
SaaS Landing Builder
You are Step 4 โ the final step. You ship a runnable Next.js landing page that converts visitors into waitlist signups.
Preconditions (hard)
Before doing anything else, verify:
brands/<slug>/approval.json.approved === true โ if not, defer to saas-brand-approval.
brand.json, saas-context.json, brand-guidelines.md all exist.
mcp__higgsfield__* tools are reachable โ if not, stop and report.
Output
The exact file tree is specified in templates/landing/STRUCTURE.md. Generate every file fresh โ there is no source code to copy. STRUCTURE.md is a spec, not a template.
Build procedure
1. Scaffold
Generate the file tree fresh under sites/<slug>/ following templates/landing/STRUCTURE.md:
- Create directories listed in the spec.
- Write each file using brand-aware content (palette โ
tailwind.config.ts, fonts โ app/layout.tsx, copy โ copy-writer).
package.json.name = <slug>-landing. Dependencies per STRUCTURE.md.
There are no source files to copy. Every file is authored by you, per-brand.
2. Generate Higgsfield motion assets
Call mcp__higgsfield__generate_video for each:
- Hero loop โ 6โ10s ambient loop matching brand mood. Will be used as
<video autoplay muted loop playsinline> background.
- Animated logo reveal โ short reveal of the primary logo (from
approval.primaryLogo). Used in the nav on first scroll.
- 3 feature micro-loops โ one per Feature card. Small, 3โ5s each, looping cleanly.
Save MP4s under sites/<slug>/public/motion/. See animation-rules.md for prompt patterns and constraints.
3. Copy generation
For every text string on the page, draw from brand.json + saas-context.json. Use copy-rules.md.
Delegate to agents/copy-writer.md for full-page copy in one pass โ it keeps voice consistent.
4. Section assembly
Follow section-recipes.md for the exact section order and what each must contain:
- Nav โ logo + single CTA scrolling to
#waitlist
- Hero โ headline, sub, primary CTA, Higgsfield hero loop
- Problem / Promise โ 1 sentence each
- How it works โ 3 steps with small animated illustrations
- Features โ 3โ6 cards with scroll-triggered reveals + feature micro-loops
- Social proof โ logos / testimonials slot (or "coming soon")
- Pricing teaser โ "Founding pricing at launch โ join waitlist"
- FAQ โ 4โ6 SaaS-relevant questions
- Waitlist โ bottom, mandatory
- Footer โ minimal: brand + waitlist nudge + year
5. Wire the waitlist backend
Delegate adapter choice + wiring to saas-waitlist-backend. Default: local JSON file (no external deps). If SUPABASE_URL + SUPABASE_ANON_KEY exist in env, use Supabase.
6. Smoke check
After scaffolding:
bun install (or npm install)
bun run build โ must compile cleanly
- Print to chat:
cd sites/<slug> && bun dev to run
End-of-step message
"Landing page ready at sites/<slug>/. Run cd sites/<slug> && bun dev and open http://localhost:3000. Waitlist posts to: {backend}. Higgsfield motion assets live under public/motion/."
Hard rules
- Waitlist at the bottom, always.
<Waitlist /> is the second-to-last child of <main>, with <Footer /> after it. Removing it is a defect.
- Hero motion via Higgsfield. If you can't generate one, the hero gets a static fallback BUT you must surface the issue to the user.
prefers-reduced-motion honored. Every animated component checks useReducedMotion() from Framer Motion and serves still alternatives.
- No lorem ipsum. All copy from
brand.json + saas-context.json. Sections with no source data say "TBD โ content slot" explicitly, not filler.
- Tailwind tokens from
brand-guidelines.md. Map the palette into tailwind.config.ts theme.extend.colors.
- Type pairing from
brand-guidelines.md. Load via next/font in app/layout.tsx.
Delegation
- Heavy build (multiple file writes, Higgsfield calls, install) โ
agents/landing-builder.md.
- Copy writing pass โ
agents/copy-writer.md.
Related