Landing Copy
Intelligent landing-page copywriting microservice that feeds the Imperium 'landing' mode: generate a conversion-oriented hero (headline + subhead + CTA), turn raw product features into benefit-led...
landing-copy
Intelligent landing-page copywriting microservice. Every tool returns a structured JSON block that the Imperium landing mode (@leumas/ui DynamicPage) can render directly.
Each tool has a deterministic template/heuristic core built on proven copy formulas (outcome headlines, feature→benefit rewriting, objection-based FAQ) that runs fully offline. The generative tools (hero, benefits, faq, ctaSection) additionally have an optional LLM path that polishes wording and silently falls back to the template — results tagged { mode: 'heuristic' | 'llm' }.
Tools
| Tool | Args | Returns block |
|---|---|---|
hero | { product, audience?, outcome?, tone?, cta?, options? } | { headline, subhead, cta, secondaryCta } |
benefits | { features:[...], audience?, tone?, options? } | { bullets:[{ feature, headline, body }] } |
faq | { product, audience?, options:{ count } } | { items:[{ q, a }] } |
testimonialPrompts | { product?, options:{ count } } | { prompts:[...], tip } |
featureGrid | { features:[...] } | { columns, cells:[{ icon, title, description }] } |
socialProof | { proof:{ stats, logos, rating, reviews, customers } } | { headline, items, logos } |
ctaSection | { product, outcome?, cta?, tone?, options? } | { headline, support, primaryCta, secondaryCta } |
Tones: bold, friendly, professional, playful, minimal, luxury. Features accept plain strings or { name, detail } objects.
Example
import pack from './index.js';
await pack.adapters.hero({ product: 'Shipfast', audience: 'indie founders', outcome: 'ship in half the time', tone: 'bold' });
// → { mode, block:'hero', headline, subhead, cta, secondaryCta }
pack.adapters.benefits({ features: ['Real-time sync', 'End-to-end encryption'], audience: 'teams' });
// → { block:'benefits', bullets:[{ feature, headline:'Get results in seconds…', body }] }
pack.adapters.socialProof({ proof: { customers: '12,000', rating: 4.8, reviews: 900, logos: ['Acme','Globex'] } });
// → { headline:'Trusted by 12,000 customers including Acme, Globex.', items:[…], logos:[…] }
DRY boundaries
- Not
seo(meta tags / SERP), nota-templates(generic string templating), **not
press-release** (PR structure). This pack writes conversion-oriented landing copy blocks.
- Self-contained: the only cross-file import is
../_shared/llm.jsfor the optional AI path.