From seldonframe
Builds a marketing landing page for a SeldonFrame workspace, replacing the default chatbot-only preview page with a premium, archetype-correct design.
How this skill is triggered — by the user, by Claude, or both
Slash command
/seldonframe:landing-page-creationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are building a marketing landing page for a SeldonFrame workspace.
You are building a marketing landing page for a SeldonFrame workspace.
The workspace already exists (created by create_workspace_from_url),
already has a CRM, booking page, intake form, and AI chatbot. Today its
public surface is a chatbot-only preview page. The operator has asked
you to replace that with a full marketing landing.
SeldonFrame's pitch is "ops stack first, marketing optional." The operator already has the ops stack live. A landing page is opt-in — some clients have great existing sites and only need the chatbot+CRM bolted on; others have outdated sites and want SF to render a new one.
When you build a landing page, the operator is in the second bucket. Your job is to produce a page that's better than what their client currently has — premium, niche-specific, archetype-correct.
Call get_workspace_state(workspace_id) to load:
aesthetic_archetype (one of 7: bold-urgency,
clinical-trust, cinematic-aspirational, editorial-warm,
technical-restrained, soft-residential, brutalist)If aesthetic_archetype is null (pre-v1.54 workspace), pick one
yourself from the vertical + business description, then proceed.
If the user has installed claude-code/frontend-design/SKILL.md (the
Anthropic frontend-design plugin), read it for Tailwind / Framer Motion
patterns and component composition guidance. It pairs with this skill:
frontend-design gives you the HOW (components, motion, layout); this
skill gives you the WHAT (which SF blocks, what order, what voice).
If google-labs-code/design.md is available, optionally invoke it for
design-language generation. It produces a design.md you can fold into
the block prompts as additional constraints.
Pick from available blocks. The default sequence for most service businesses:
hero — primary headline + CTA + supporting visualservicesGrid — what they do (cards, pricing optional)projectGallery — visual proof of worktestimonials — social prooffaq — top objections answeredemergencyStrip — only for bold-urgency archetypescta — closing call-to-action| archetype | adjustments |
|---|---|
bold-urgency | add emergencyStrip after hero; skip testimonials if reviews < 50; add stickyMobileCTA for one-thumb booking |
clinical-trust | add benefits block listing credentials; lengthen faq with insurance/financing questions; consider process block |
cinematic-aspirational | lead with projectGallery immediately after hero; soften faq to "what to expect" tone |
editorial-warm | longer whoitsfor / process blocks; more whitespace; skip emergencyStrip |
technical-restrained | structured features block with bullet metrics; precise pricing; skip stickyMobileCTA |
soft-residential | warm benefits block; visible serviceArea (zip codes covered); friendly cta |
brutalist | minimal block count (hero + servicesGrid + cta); raw layouts, no soft easing |
For each block in the sequence:
a. Call get_block_skill(block_name) — returns the block's SKILL.md
with its prop schema, voice rules, validators, and worked examples.
b. Generate props following the SKILL.md AND the archetype voice
(leanInto / avoid lists from the archetype registry — accessed
via the v1.54 theme.aestheticArchetype value).
c. Call persist_block(workspace_id, block_name, prompt, props) —
v1.54's server enforcement WILL override your template and
variant fields if they don't match the archetype's defaults. This
is intentional — trust the server-side enforcement. Don't second-
guess archetype defaults.
d. Note validator warnings in the response. If a validator flagged
headline_quantified, no_throat_clearing, or similar, FIX YOUR
PROPS AND CALL persist_block AGAIN. Don't ship past validators —
they catch the patterns operators have explicitly told us look bad.
After all blocks land:
a. Call get_workspace_snapshot(workspace_id) to confirm the landing
page rendered (landing_pages.sections now has hero / services /
etc instead of the original chatbot-preview).
b. Report the public URL back to the operator with a brief summary of what you placed and which archetype voice you used.
c. Offer concrete next steps:
get_workspace_state. You need the archetype, soul,
and theme. Guessing wastes round-trips when the server overrides
your picks anyway.cinematic-aura | viktor-light | velorah-editorial | nexora-light | securify-bold | stellar-tabs-white. Picking anything else gets
overridden server-side. Bold-urgency archetypes intentionally use
empty template (the legacy variant renderer).integrations.twilio.configured is false, don't promise SMS in
copy. If Stripe isn't connected, don't say "pay deposit online."persist_block
call REPLACES that block type — order is determined at first persist.
If you change your mind on order, call update_landing_content with
the full new sequence.Operator: "build a landing page for ignitify in bold-urgency style"
get_workspace_state(ws-1) → archetype: bold-urgency, vertical: hvac,
business_name: Ignitify Cooling, services: [AC Repair, AC Install,
Furnace Repair, Maintenance], reviews: 13, emergency_service: true
Block sequence: hero → emergencyStrip → servicesGrid → faq → cta (skip testimonials since reviews < 50; add emergencyStrip per bold-urgency rule; add stickyMobileCTA)
get_block_skill("hero") → load voice rules (Hormozi-style,
quantified, urgent), prop schema (headline / subhead / ctaPrimary /
background_image_query / variant / template)
Generate hero props:
{
"headline": "Same-Day AC & Furnace Repair Across El Paso",
"subhead": "Ignitify Cooling — BBB-accredited, SuperPros 2024 Gold technicians who fix it right the first time. Honest pricing, financing available.",
"ctaPrimary": { "label": "Get Service Today", "href": "/book" },
"ctaSecondary": { "label": "Free Estimate", "href": "/intake" },
"background_image_query": "hvac technician outdoor",
"variant": "split-screen-50-50"
}
(Server will override variant to "split-screen-50-50" anyway since archetype is bold-urgency — your pick happens to match.)
persist_block(ws-1, "hero", "...", props) → returns ok + no
warnings → continue to emergencyStrip
Repeat steps 3-5 for each subsequent block.
get_workspace_snapshot(ws-1) → confirm 5 sections rendered.
Report:
Landing page is live at https://ignitify-cooling.app.seldonframe.com. Rendered in bold-urgency voice with 5 sections: hero, emergency strip, services grid, FAQ, closing CTA. Hero uses split-screen-50-50 layout with service-truck imagery. Want to tweak anything?
Skip emergencyStrip. Lead with credentials in the hero subhead. Use
nexora-light template (archetype default). Lengthen FAQ with insurance
[Full prop JSON for each block omitted for brevity — follow the same pattern as the bold-urgency example with the clinical-trust voice: calm, authoritative, precise.]
Lead with projectGallery immediately after hero. Hero uses
cinematic-aura template (archetype default) with a Pexels video
background. Soften FAQ to "what to expect" / "is it painful" tone.
[Full prop JSON for each block omitted for brevity — follow the same pattern with the cinematic-aspirational voice: sensory, restorative, intentional.]
list_brain_patterns(workspace_id) to see what's worked for similar
verticals. If brain patterns exist for "vertical=plumbing"
(e.g., "service-truck hero photos performed best"), fold them into
your block generation.persist_block returns warnings,
fix props and call again. Don't ship past validators.npx claudepluginhub seldonframe/seldonframeGuides phased design of landing pages and marketing websites: discovery questions on goals/audience/brand, written brief, then layouts for conversion. Activates on 'design a landing page' requests.
Use when asked to design a landing page, marketing website, or any web presence intended to convert or inform. Examples: "design a landing page for X", "create a marketing site", "we need a homepage", "design our website", "build a page for our launch".
Generates high-converting Next.js/React landing pages with Tailwind CSS, using PAS/AIDA/BAB copy frameworks and section variants (Heroes, Features, Pricing). Focuses on Core Web Vitals and SEO.