DEMONSTRATION · prerendered by Strategy Solutions from NextTherapist's live public directory data
the engagement · how we deliver

From invisible to inevitable.

A prerender layer that makes you legible to Google and AI in two weeks — then the public site that owns organic and AI demand. Built entirely in front of your product. Your Flutter app, your API, your AWS pipeline: untouched.

How it sits in your stack
🤖 Crawler / AI bot

Gets server-rendered HTML

Built live from your public therapist API — real profiles, schema, meta. The content search engines and ChatGPT can finally read. → rendered

Cloudflare edge layer
Ours. One route. Detects the requester and decides — in front of your app, deploying nothing to your repos.
🧑 Human visitor

Gets your live app

Passed straight through to your Flutter app on CloudFront. Same speed, same UX, zero change. → untouched

Two integration points, total: your read-only therapist API (already public) and a DNS change window. Rollback = delete one route.

Phase 1

Visibility

NextTherapist becomes legible to Google and AI search — without touching your app.
≈ 2 weeks from access
  1. Baseline & instrumentation. Verify Google Search Console + Bing Webmaster, submit the first sitemap, snapshot GA4, and lock the ~20 search + AI queries we'll be graded on. needs: Search Console + GA4 access
  2. Prerender edge layer. A Cloudflare Worker in front of the app hostname. Crawlers — Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, facebookexternalhit — get cached, server-rendered HTML built from your public API (real content, not a JS shell). Humans pass straight through to Flutter. Edge-cached with scheduled refresh. needs: DNS at Cloudflare · zero code changes for your team
  3. Meta & social remediation. Real <title>, description, OpenGraph and Twitter cards per public route — injected by the same layer.
  4. Root-domain fix. Stop nexttherapist.com / www 301-ing crawlers into the app; serve a real, crawlable landing surface (interim now, Next.js in Phase 2).
  5. Machine-readability. Organization + WebSite JSON-LD, llms.txt, robots.txt, sitemap — so both Google and AI fetchers can parse and cite you.
Exit criteria — measurable, not vibes: any fetcher receives real HTML · GSC indexed-count climbing off zero · NextTherapist cited in ChatGPT / Google AI answers on the agreed seed queries within 30 days.
Phase 2

The public layer

Own organic and AI demand — the inventory-backed pages that rank and convert.
≈ 8 weeks from the Phase 1 gate
  1. Next.js site at the root. WordPress stays as a headless content backend — your existing content workflow is unchanged.
  2. SSR therapist profiles at your existing /therapist/[slug] — Person + ProfilePage + MedicalBusiness schema, incrementally cached ~1–6h (availability changes hourly), public fields only. This is the single read-only integration with your team — and it already exists.
  3. Then the programmatic grid — deliberately in this order, because templated pages shipped before real inventory trigger Google's scaled-content penalty:
    • /therapists/[state] — up to 50 state pages, each rendering live therapists
    • /therapists/[state]/[city] — the 30 cities you actually have inventory in today (SLC, Lehi, Draper, Bountiful, St. George…)
    • /[specialty] & /[specialty]/[state] — driven by your 16 specialization + 41 modality enums × states with inventory
    • every page = live therapist cards + FAQ schema — inventory-backed, never thin
  4. Conversion & comparison pages — "Psychology Today alternative," "switch from PT in 15 minutes," public pricing — the high-intent queries you're invisible on today.
  5. Authority content under Stephanie's byline — E-E-A-T for a your-money-your-life category Google scrutinizes hardest — with entity-linked schema and IndexNow.
  6. Standing measurement — a live GSC/GA4 dashboard plus a monthly AI-citation panel.
The scale it unlocks, from your own taxonomy: 68 profile pages + ~30 city pages + 16 specialties × 41 modalities × states-with-inventory = hundreds of inventory-backed pages that don't exist today.
Phase 3

Growth engine

Compounding owned-channel growth.
ongoing retainer
  1. Content cadence under clinical authorship, expanding the specialty/city grid as inventory grows.
  2. App-store optimization + paid spend rebalanced against owned-channel data (your GA4 shows 78% paid social at ~2s engagement today — there's margin to reclaim).
  3. Therapist-referral ops — turning ranked pages into provider sign-ups, the supply side of the marketplace.
Division of labor — the entire inter-team surface
You own

Your product

  • The Flutter app
  • The API + data
  • Booking & payments
  • Your AWS pipeline

Nothing changes.

We own

The visibility layer

  • The edge prerender layer
  • The Next.js public site
  • Schema + SEO/AI infra
  • Content + measurement

Strategy Solutions.

Touchpoints

Two, total

  • Your read-only /therapists/* API — already public
  • DNS change windows

That's the whole surface area.

What we need to start — in dependency order
GitHub view ✓ Search Console + GA4 DNS (domain-manager) confirm prod API host WordPress admin Google Ads + Meta (read)

Why this is safe to say yes to

Every phase is additive and reversible. The edge layer is a single route — remove it and you're exactly where you started. We never deploy to your repos, never touch booking, and never hold a production credential beyond read-only. The first two weeks prove visibility on queries we agree on up front — you see the result before you commit to Phase 2.