Lead Capture Forms

Every landing page can include a lead capture form. Submissions land in your dashboard and (optionally) trigger an email to you.

How submissions work

  1. Visitor fills the form and clicks Submit.
  2. Browser POSTs to /api/landing-pages/[id]/submit - natively, no JS required.
  3. Server validates required fields, stores the lead, and redirects to the page with ?submitted=1.
  4. Visitor sees the thank-you banner at the top.

Viewing leads

Submissions show up in two places:

  • Per-page: open any landing page from the dashboard and click the Leads button. Table of timestamp, email, form data, and country.
  • Unified submissions feed: Dashboard → Submissions shows every form submission you've ever received - floating-message forms and landing-page forms together, sorted by date. Landing-page rows carry a small Landing badge and link through to the public /p/[slug] URL.

Email notifications

In the editor's page metadata section, set a Notify email on lead. When configured, every new submission also sends a summary to that address.

Spam protection

  • Honeypot field - hidden "website" input. Bots fill it; humans don't. Filled submissions are silently discarded.
  • IP rate limiting - prevents a single origin from flooding the form.
  • Required-field validation - enforced server-side against the form's definition.

Field configuration

Forms support text, email, and tel fields. Keep it short - 2–3 fields is the sweet spot for conversion. The AI picks sensible defaults per template; you can edit the JSON in the editor if you need to add or remove fields.