Saltar al contenido principal
Back to archive
Health and longevityNext.js 16GoHighLevelnext-intl

Primary care, longevity and recovery under medical supervision: a bilingual site, booking connected to the CRM and a content factory that respects the evidence.

How I solved it

Fenix Medical Center combines primary care, longevity and recovery under medical supervision. The brief: a bilingual site, a CRM and a content factory.

System architecture

Under the hood.

The system's real parts and how they talk: pick a path or open a component.

Fenix Medical Center · Site, CRM and compliance boundary

The whole system

13 components, 13 connections and 3 guided paths.

Open a component to see what it receives, where it sends and which paths include it.

Components

  • Visitor — Bilingual site ES / EN
  • Next.js 16 site — next-intl · 40 pages
  • Cinematic engine — Pre-rendered video + CSS
  • Contact form — Lead without health data
  • 3-step booking — Day → time → details
  • Vercel WAF — 5 requests / 10 min per IP
  • POST /api/lead — Fail-closed switch
  • Strict validation — 7 fields · no free text
  • ghl.ts — GHL REST API
  • Meta Conversions API — No personal data
  • GHL Inbound Webhook — Lead intake
  • Website Intake workflow — Contact → tags → opportunity
  • Website Leads pipeline — New → Scheduled · 6 fields

Connections

  • Visitor → Next.js 16 site: HTTPS
  • Next.js 16 site → Cinematic engine
  • Next.js 16 site → Contact form
  • Next.js 16 site → 3-step booking
  • Contact form → Vercel WAF: POST
  • Vercel WAF → POST /api/lead
  • POST /api/lead → Strict validation
  • Strict validation → GHL Inbound Webhook: 7 fields
  • GHL Inbound Webhook → Website Intake workflow
  • Website Intake workflow → Website Leads pipeline: New
  • 3-step booking → ghl.ts: Slots
  • ghl.ts → Website Leads pipeline: Booking
  • Next.js 16 site → Meta Conversions API

Guided paths

Lead capture
The form goes through the WAF (5 requests per 10 min per IP) and the fail-closed switch; only 7 fields, no free text, reach GHL.
3-step booking
Booking checks free slots in GHL, records the contact and creates the appointment, which moves to Scheduled in the pipeline.
Compliance boundary
Health data stays out: 7 fields with no free text, no pixel on treatment pages and a Conversions API without personal data.
Read the case as text

01 · The challenge

Communicate medical therapies without promising more than the evidence supports, and turn visits into appointments without exposing health data.

02 · Constraints

  • Every medical claim with permitted and prohibited wording.
  • Health data kept out of the form and out of advertising.
  • Hispanic patients: a bilingual site and clear prices.

03 · Decisions

  1. 01A registry of 109 claims with permitted and prohibited wording.
  2. 02A 7-field form with no free text and a fail-closed switch into GoHighLevel.
  3. 03A 3-step booking against the CRM's real calendar.
  4. 04A base of 1,096 public medical videos to write scripts with keyword search.

04 · Outcome

A 40-page site in two languages, with booking connected to the CRM and a content factory that never overpromises.

Want something like this for your business?

Next project

L&B Elite Wash & Detail

On-site mobile detailing with a 4-van fleet: dynamic vehicle quoter across 88 services, deterministic load balancing and a database-less CRM.