- Product schema should express landing-page marketing logic first; editor, renderer, zod validation, and templates should adapt to the product model.
- Schema may model visual attraction content such as pain points, result cases, galleries, proof metrics, and lead magnets when they serve consultation or lead capture.
- Visual attraction fields must describe marketing material and proof, not renderer CSS, layout classes, spacing, animation, or low-code styling knobs.
- Every landing page must have a
primaryConversion. primaryConversionmust point to a real lead path throughdestination: URL, phone, email, or form.primaryConversion.channelandprimaryConversion.destination.typemust describe the same lead path.- Do not model primary conversion as a loose optional
url. - If any CTA or
primaryConversion.destination.typeisform, the page must include the matching singleleadForm. - A page should have at most one
leadForm. - Lead forms must collect at least one reachable contact field:
phone,email,whatsapp, ortelegram. namemay be collected, butnamealone is not a valid lead.- Extra form fields should be lightweight qualification fields, such as service type, budget range, target country, appointment preference, or inquiry details.
- Attribution means identifying which CTA, form, or channel produced the lead.
- Analytics events for generated landing pages must stay lead-generation oriented, not purchase or checkout oriented.
- Do not require a fixed market or visitor region in the schema.
localemay be optional and should fall back to English when runtime detection is unavailable.- Generic contact URLs should be modeled as lead-oriented consultation links only, and must not point to purchase, checkout, cart, order, subscription, refund, or payment pages.
- The footer must include at least one compliance link or inline policy entry.
- Footer privacy and terms text is also the source for the page's
/privacyand/termssubpages; keep it substantive prose, not a placeholder title. - Company info is account-level (
company_profiles), not page content:footer.companyProfileIdholds a reference and the renderer receives an already-composed line. Do not add company name, address, or licence fields to the page schema. - Renderer components must not read company info from the draft or query the database; page routes resolve it and pass it in.
- See
docs/landing-page-compliance.mdfor the full footer compliance model and its traceability to platform policy. - Trust and compliance structures should support reviews, trust badges, authority story, FAQ, assurance, privacy policy, and disclaimers.
- Result proof, before/after, health, beauty, finance, or other high-risk claims should support disclaimers and avoid guaranteed outcomes.
- Assurance content must avoid transaction semantics such as refund guarantees or payment protection unless product scope explicitly changes.