Static HTML with local font assets. Six navigable page designs, responsive layouts, inline diagrams and self-hosted fonts, keyboard-accessible interactions, and a waitlist connected to Netlify Forms. No build tools are needed; submissions require the deployed Netlify site and an internet connection.
Marketing: what this tests
Audience: families whose older loved one has just lost or broken dentures, and who are facing multiple dental-office visits. Hypothesis: bringing replacement care to the patient is compelling enough to earn a waitlist sign-up.
- Lead benefit: fewer trips and less coordination. Specialist support builds confidence. A spare and saved scan are secondary benefits.
- One conversion: a qualified waitlist sign-up. Every Get started and acquisition CTA routes to the same form, which explains small-group onboarding before inviting visitors to join the waitlist. The recent-loss and recent-breakage selections identify the initial target segment.
- Primary measure: actual successful submissions by target-segment visitors ÷ relevant unique visitors. Inspect funnel drop-off and locations. Exclude integration-test submissions and spam from conversion reporting.
- Copy to test later: “At-home denture replacement” versus “Replace dentures with fewer office trips.” Change one variable at a time.
- Unconfirmed: working brand, timing, pricing, actual home-fitting coverage, visit count, eligibility, and turnaround. No fabricated reviews, customer counts, clinician names, or guarantees are included.
Page map
| Route | Job | Main action |
|---|
#/home | Recognize the problem and introduce the proposed service. | Get started → onboarding form |
#/how-it-works | Explain clinical starting points and the four planned steps. | Get started → onboarding form |
#/for-families | Explain who the service is for, visit locations and team composition. | Get started → onboarding form |
#/faq | Answer availability, fitting, cost, and timing questions. | Get started → onboarding form |
#/waitlist | Capture demand and region with a short form. | Submit details → confirmation |
#/privacy | Explain waitlist data collection and use. | Return to form |
Engineering: Netlify Forms
The static waitlist form is registered by Netlify at deploy time. The submitWaitlist function sends URL-encoded form data to the site root and checks the HTTP response before showing confirmation.
- Stored fields:
firstName, email, location, situation, consent, consentVersion, source, utm_source, utm_medium, utm_campaign, utm_content, submittedAt. Netlify’s server-generated submission timestamp is the authoritative receipt time; submittedAt is supplied by the browser. - Spam protection: Netlify’s spam filtering and the hidden
bot-field honeypot. Review both verified and spam submissions in Netlify Forms. - Success and errors: confirmation follows a successful HTTP response. Offline, failed, and timed-out requests preserve entered values and allow retry. Spam-filtered requests can receive a successful response without appearing in verified submissions.
- Analytics hook:
denturescan:analytics CustomEvents include waitlist_submit, waitlist_success, and waitlist_error, with mode: live. These events contain UI metadata only, never form values or campaign text. - Campaign attribution: only
utm_source, utm_medium, utm_campaign, utm_content are submitted, capped at 150 characters each. Form entries are not persisted in browser storage. - Operations: manage waitlist records, spam review, retention, and removal requests in the project’s Netlify Forms dashboard. Capturing a signup does not send an automatic welcome email or deduplicate repeated signups.
Design system
Paper · #FAF9F5Forest · #254C40Sage · #E7EADFLime · #E6EDBCClay · #A34C32
DM Serif Display for headlines; DM Sans for reading and controls. Both are self-hosted in assets/fonts with their licenses. System-font fallbacks, visible focus states, reduced-motion support, and mobile layouts are included.
Clinical promise to confirm
A lost denture without suitable records requires a new-denture process. A broken denture may be repairable. An exact replica and a one-visit replacement are not universal claims. The proposed 24-hour target is production and dispatch for eligible repeat orders, still to be validated; arrival and fitting are separate.
Visuals and copy
The site uses service diagrams and SVG icons, with no photography or portraits. Copy describes the service, the intended patient and the next action directly.