Outcome
Minutes-not-days lead-to-owner routing with clean, deduped records and no exposed write credentials in the browser.
A conversion-focused lead capture page where a Next.js Server Action validates and rate-limits submissions, writes to Supabase via the service-role client only on the server, and gates spam with Turnstile — collecting just enough context to route the lead without scaring people off.
Verified HMX-owned system
Two-Step Lead Intake Page uses a web app route, data, and conversion layer for Full-Stack Websites. A conversion-focused lead capture page where a Next.js Server Action validates and rate-limits submissions, writes to Supabase via the service-role... The architecture connects a 2-step form that, next, supabase, and lead capture with an explicit control path.
Outcome
Minutes-not-days lead-to-owner routing with clean, deduped records and no exposed write credentials in the browser.
Main risk
Bots or replayed submissions flood the table, or a validation gap lets malformed data through.
Prevention
Server-side Turnstile verification plus Zod schema validation and KV rate limiting before any DB write.
Fallback
If Turnstile or KV is unavailable, fall back to in-memory limiting and queue suspect rows for manual review.
System architecture
A conversion-focused lead capture page where a Next.js Server Action validates and rate-limits submissions, writes to Supabase via the service-role...
Submit through a Server Action that validates with Zod and verifies a Cloudflare Turnstile token server-side
Next.js Server Actions supports the route, form, or data boundary for Two-Step Lead Intake Page so public UX and backend state stay connected.
Insert into the Supabase leads table using the server-only service-role client, never an anon browser write
If Turnstile or KV is unavailable, fall back to in-memory limiting and queue suspect rows for manual review.
Minutes-not-days lead-to-owner routing with clean, deduped records and no exposed write credentials in the browser.
4-7 days
A conversion-focused lead capture page where a Next.js Server Action validates and rate-limits submissions, writes to Supabase via the service-role client only on the server, and gates spam with Turnstile — collecting just enough context to route the lead without scaring people off.
Tools
Data flow
Controls and fallbacks
Full-stack websites for service businesses and operators: route architecture, service pages, lead capture, metadata, proof boundaries, blog/database paths, analytics, and deployment checks.
Route map
Clear service routes
Lead capture
Lead capture that saves context
Public metadata
SEO and schema on public pages
Launch QA
Analytics events tied to CTAs