Skip to main content
Glama

Sales landing page

landing_page

Generate a ready-to-deploy, single-file sales page from brand and product details, with niche-based layout, media support, countdown, SEO tags, and deploy options.

Instructions

Generate a premium, ready-to-deploy sales page (one HTML file) built around what the user sells. Works from minimal input (brand + product): the copy is written from the facts given and never invents reviews, guarantees or prices. An art director picks the page structure from the niche: cinematic full-bleed scenes for cars, gadgets and fitness; a split showcase (sticky photos beside scrolling story) for fashion, home, food and services; a product stage (product spins and zooms with scroll, stickers pop) for shoes, beauty, jewellery and kids; editorial for courses, software and digital products. Motion is scroll-linked (pinned scenes, scrubbed zoom, horizontal galleries, text that fills as you scroll), not timed fades. Fonts, navigation, buttons and countdown style vary per brand (re-roll with variant). Media: pass the seller's own photos (images, productImage), a turntable video (videoUrl, scrubbed by scroll) or a 3D model (modelUrl, .glb, rotates with scroll and can be dragged). With no media, free mood photos are fetched automatically (autoImages). A holiday theme (black-friday, cyber-monday, christmas, diwali, hanukkah, halloween, thanksgiving, boxing-day, new-year, default) adds its palette and name; with layout "signature" and no product, the art-directed holiday scenes are used instead. Includes an honest countdown, sticky mobile CTA, SEO/Open Graph tags, Product/Offer structured data and photo credits. Deploy to Netlify Drop, Vercel, GitHub Pages or Cloudflare Pages.

Input Schema

NameRequiredDescriptionDefault
faqNo
brandYes
nicheNoOptional extra context about the business, in the user's words
offerNoe.g. "40% off everything"
priceNo
termsNo
themeNoHoliday accent
ctaUrlNoCheckout, WhatsApp (https://wa.me/...) or product link. If omitted the button links to "#"
imagesNoPhotos, best first. Use the seller's own product photos when possible
layoutNoDefault: director when the product is known; "signature" forces the holiday scene
ctaTextNo
effectsNofalse turns off particles and 3D motion
pageUrlNo
productNoWhat is on sale, in plain words: "sneakers", "ankara dresses", "used cars", "online course"
variantNoRe-roll fonts, nav, buttons and countdown style
currencyNo
deadlineNoISO 8601 with offset, e.g. 2026-11-30T23:59:00-05:00
featuresNo
headlineNo
imageAltNo
imageUrlNo
modelUrlNo3D model (.glb); rotates with scroll
productsNoItems on sale; shown as a product grid. With a WhatsApp ctaUrl each card opens a prefilled order chat
timeZoneNoIANA zone for the printed deadline, e.g. Africa/Lagos
videoUrlNoShort turntable/walkaround video (mp4); scroll scrubs through it
archetypeNoOverride the art director
eventNameNoEvent label when no theme fits, e.g. "Eid", "Mother's Day"
offerTypeNoHow it is bought; decides the verbs (shop, start your plan, enrol, book, get). Inferred when missing.
autoImagesNoFetch free mood photos when no media is given (default true)
brandColorNo
brandStyleNoThe brand's own look. It always wins over the event theme; the event only adds its label. Ask the seller for their colours and fonts (or read them from their site) rather than guessing.
outputPathNoLocal mode only: write the HTML here (.html)
displayNameNoShort name used in copy, e.g. "Brightly Premium". Never pass long internal product phrases as headings.
subheadlineNo
productImageNoProduct photo, ideally a cut-out PNG on transparent background
testimonialsNoReal customer quotes only, with permission
originalPriceNoOnly a price you actually charged recently
discountPercentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.6.0
    • addedInput schema / properties / brandStyle
      Added value: +{
      +  "description": "The brand's own look. It always wins over the event theme; the event only adds its label. Ask the seller for their colours and fonts (or read them from their site) rather than guessing.",
      +  "properties": {
      +    "fontBody": {
      +      "description": "Google Fonts family for text",
      +      "maxLength": 40,
      +      "type": "string"
      +    },
      +    "fontDisplay": {
      +      "description": "Google Fonts family for headings, e.g. \"Inter\"",
      +      "maxLength": 40,
      +      "type": "string"
      +    },
      +    "mode": {
      +      "enum": [
      +        "light",
      +        "dark"
      +      ],
      +      "type": "string"
      +    },
      +    "palette": {
      +      "properties": {
      +        "accent": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        },
      +        "accent2": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        },
      +        "bg": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        },
      +        "muted": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        },
      +        "surface": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        },
      +        "text": {
      +          "pattern": "^#[0-9a-fA-F]{6}$",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / displayName
      Added value: +{
      +  "description": "Short name used in copy, e.g. \"Brightly Premium\". Never pass long internal product phrases as headings.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / offerType
      Added value: +{
      +  "description": "How it is bought; decides the verbs (shop, start your plan, enrol, book, get). Inferred when missing.",
      +  "enum": [
      +    "physical",
      +    "subscription",
      +    "course",
      +    "service",
      +    "digital"
      +  ],
      +  "type": "string"
      +}
  2. First observedv0.3.0

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say write, non-destructive, open-world; the description goes far beyond that by disclosing the honesty constraints (never invents reviews, guarantees or prices), the media fallback behavior (autoImages fetches free mood photos), the scroll-linked motion model, generated SEO/Open Graph/structured data, and the concrete deploy targets for the output file. This is exactly the extra context an agent needs for a generative, network-touching tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and organized into identifiable blocks (structure, motion, media, theme, extras, deploy). It is still a dense wall of prose, and it repeats structured data verbatim — the full theme enum list and the fonts/nav/buttons/countdown re-roll are already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 38-parameter generative tool with nested objects and no output schema, the description covers the output (one HTML file), its deploy destinations, and the major behavioral guards. Its main remaining gap is the return shape — whether a path, HTML string or hosted URL comes back is only hinted at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 63% schema coverage across 38 params, the description earns credit for explaining the important ones: images/productImage/videoUrl/modelUrl media modes, autoImages fallback, theme + layout "signature" interaction, variant as a re-roll, archetype as an art-director override, and the niche-to-structure mapping. Several parameters (headline, price, terms, faq, features, currency, discountPercent) still carry no explanation anywhere, so it does not fully close the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and artifact: generate a ready-to-deploy sales page as a single HTML file built around what the user sells. An agent immediately knows what it produces. It never differentiates itself from the sibling publish_page, which handles deployment-like duties, so the boundary between creating and publishing is left ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage conditions are implied through branching rules (works from minimal brand+product input, pass media if you have it, autoImages fetches stock when not), but these are behavioral branches rather than when-to-use-this-vs-an-alternative guidance. Nothing tells the agent when to reach for content_kit, platform_specs or publish_page instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.