Strategic Health Guides β Full Dissection
strategichealthguides.com — how the site is built, how the cart takes money, and (the big one) exactly how the AI coaching is wired. Everything below is verified from the live site's shipped code and live API responses — not guesswork.
Answers To Your Exact Questions
Answered Is it Shopify?
No. It is 100% custom, vibecoded on Manus (manus.im — the AI app builder). Proof: the pages ship x-manus-proxy-mode headers, a /__manus/ runtime, and Manus-generated social-preview images. The storefront is a hand-built React app with its own database, cart, coupons, and admin panel. Zero Shopify, WooCommerce, Stripe, or PayPal code anywhere in the bundle.
Answered How does the AI coach work?
It's a "stuff the book into the prompt" chatbot. Each guide's full text (~80,000 characters) is stored in the database per guide. When you chat, the server builds one big AI prompt from: that guide text + your health profile + your symptom check-ins + your labs + your supplements, sends it to a server-side AI model, and returns the reply. No vector database, no fancy retrieval — one giant prompt per message.
Partial Which AI model?
Not exposed anywhere in the front-end code. The AI call happens on their own server (Manus-hosted Express backend), so the model name, provider, and API key never reach the browser. Everything else about the coach's behavior is fully mapped below — the model itself is the one thing that can't be determined from outside.
Answered How does the cart work?
Custom-built. Cart lives in your browser's localStorage (keys shg_cart / shg_coupon), with a slide-out cart drawer, coupon codes, member discounts, and a custom checkout page that captures card details directly and processes them through Accept Blue (a credit-card gateway, not Stripe) with monthly recurring billing built in-house.
Tech Stack
| Layer | What It Is | Evidence |
|---|---|---|
| Builder / Hosting | Manus (manus.im) AI app builder — this is the "vibecoded" part | x-manus-proxy-mode: transparent/1 header, /__manus/ runtime paths, Manus checkpoint screenshots in meta tags |
| Front-end | React 19 + Vite single-page app (TypeScript), Tailwind-style utility CSS, Recharts dashboard charts, React Router | 3.2 MB minified bundle with source file names baked in (client/src/pages/*.tsx) |
| Back-end | Node.js Express server + tRPC API at /api/trpc/* (type-safe RPC — every page talks to it) | x-powered-by: Express header; live tRPC endpoints respond |
| Database | Relational, server-side (guides, purchases, subscriptions, coaching sessions/messages, intake, symptoms, labs, coupons, renewals) | API response shapes expose the schema |
| File storage | CloudFront CDN d2xsxph8kpxj0f.cloudfront.net (Manus storage) — guide PDFs and cover images | PDF/image URLs in the API |
| Payments | Accept Blue gateway (acceptblue.com) — card data posted from their own checkout form to their own server; monthly recurring billing built in-house | Checkout copy + admin "renewals processed by Accept Blue" + acceptBlueTransactionId |
| App shell | PWA — installable to phone home screen with web push notifications (daily coach nudges) | /__manus/pwa/manifest.webmanifest, NotificationSetupCard with iPhone home-screen instructions |
| Tracking | Google Analytics 4, Meta (Facebook) pixel with Purchase / InitiateCheckout events, custom first-touch attribution cookie | G-T3JZ5MLMFZ, fb pixel event calls, sa_vid localStorage |
How The AI Coach Works (The #1 Question)
The Message Flow
What Goes Into Every Prompt
Core The guide itself — the "training"
The marketing says "trained on your guide." The reality: each guide has a database field called knowledgeContent holding the entire extracted text of the guide (the one we pulled: 79,896 characters / ~12,600 words β 16–20K tokens). Every coaching message includes that text as the AI's knowledge base. That's why answers cite "the guide" — the guide literally is the prompt.
No vector database or embeddings — one guide's text fits in a single AI prompt, so they paste the whole thing.
Personal Your health data
- Health profile (intake): conditions, goals, medications, lifestyle
- Symptom tracker: each guide ships a custom symptom list (the Vitamin D guide has 14 symptoms) that you rate daily
- Check-ins & progress: daily ratings history
- Labs: full lab-entry panel (lipids, ferritin, sdLDL, SHBG…) with history
- Supplements: your list + the guide's protocols
Coach Features (from the app code)
Feature Daily proactive message
A dailyIntro system generates a fresh daily coaching message: the UI shows "Your coach is reviewing your health profile and recent progress to personalize today's message" (loading state while the server generates it), plus greetings like "Good morning! How are you feeling?" The free-guide confirmed page also auto-opens the chat with a pre-written first question (a free-guide-confirmed-open-coach event).
Feature Sessions + floating chat button
Chat is organized into sessions (coaching.mySessions, getMessages, getOrCreateSession) at /coach/:sessionId. A floating coach bubble follows you around the whole site — the coach is one tap away from every page, including checkout.
Metered Message quotas = the upsell engine
- Guide purchase: 30 coaching messages, expiring 30 days after purchase (
coachingDays/coachingExpiresAt) - Free guide: also 30 messages — the whole product on trial
- Founding Member ($19.99/mo): 100 messages/month, resets on the 1st
- UI shows "X of Y messages left" / "Limit reached" and pushes the upgrade button at zero
Guardrails Medical framing
Positioned as functional-medicine coaching ("root cause, not just symptom management"), authored by "Alison, PA-C, Duke University-Trained Physician Assistant." Every surface carries "educational purposes only, not medical advice" disclaimers. Prompts nudge you to complete your health profile for "more personalized answers."
knowledgeContent (PDF → text) + user profile fields + a message-limits table + one server-side AI API call is the entire architecture. The "AI coach" brand is mostly packaging around a single-context-prompt chatbot.Shopping Cart & Payments
Cart Browser-side cart
- Cart state stored in
localStorage(shg_cart) — no account needed to shop - Slide-out CartDrawer: thumbnails, remove, live totals
- Coupon codes applied at cart level (
shg_coupon) with real-time validation - Membership auto-applies a 50% member discount to guide prices
Coupons Coupon engine (admin-managed)
- Types: percentage off, fixed dollar off, free guide, free month
- Expiry dates, applicable tiers (any guide purchase / founding member)
- "Enter the guide price to waive" — per-guide or whole-cart comping
Checkout Flow
| Checkout Detail | How It Works |
|---|---|
| Payment processor | Accept Blue (card gateway + recurring billing). Not Stripe, not Shopify. Checkout page: "Your payment is secured by Accept Blue and processed via encrypted TLS connection." |
| Card capture | Custom form fields — Name on Card, Card Number, Expiry (MM/YY), CVV — posted to their own server, which forwards to Accept Blue |
| Guest checkout | Yes — guest email + name, no account required to buy |
| Subscription billing | Monthly recurring charges built in-house ("Monthly recurring billing events processed by Accept Blue"); admin tracks acceptBlueTransactionId per renewal |
| Upgrades | Dedicated /upgrade/checkout — charges only the prorated difference between tiers; billing cycle unchanged |
| Cancellation | Self-serve cancel (access to period end) with heavy retention copy: "cancelling permanently forfeits your Founding Member rate" |
| Receipts | Account area: billing + receipt history |
Offers & Funnels
The Product Line
| Offer | Price | What You Get | Role In The Funnel |
|---|---|---|---|
| Free Fatigue Fix guide | $0 (email opt-in) | Full PDF + 30 AI coaching messages | Top-of-funnel lead magnet (tagged "lead-magnet") |
| Single guides (17 more) | $14.99 each | PDF download + in-app reader + 30 coaching messages (30-day window) | Front-end product |
| Founding Member All-Access | $19.99/mo | Every guide + 100 coaching messages/month + all trackers, "rate locked for life" | The real business — recurring revenue |
| 28-day challenges | Free (email) | Blood Pressure + Fatigue Fix: "28 daily evidence-based actions", one action per day by email | Email nurture → coach trial → membership |
| AI Health Review | In-app | "A personalized analysis of your labs, symptoms, supplements, and daily tracking data" | Retention feature stacked on the coach |
| Supplement protocols | Free info | Per-guide supplements with dosing, linked to Fullscript | Affiliate revenue layer |
The Funnel
π Guide Catalog
Cardiovascular, Hormonal, Gut & Digestive, Nutrition & Minerals, Mental Wellness, Children's Health, Metabolic & Weight. Titles like "Lower Your Blood Pressure Naturally", "SIBO Decoded", "Reversing Insulin Resistance".
𧬠Trackers Stack
Symptom tracker, supplement tracker, lab trending, daily check-ins, progress dashboard — all feeding the coach and the "AI Health Review."
π© Request-A-Guide
Members can request new guide topics (admin triages requests) — cheap product roadmap + demand data.
Page & Feature Map
| Area | Routes | Notes |
|---|---|---|
| Marketing | / (+ /home-v1..v4), /about, /pricing, /guides, /guides/:slug, /free-guide | Multiple live home-page variants left in production — classic vibecoding A/B leftovers (default route currently serves HomeV2) |
| Free guide funnel | /free-guide/confirmed | Download + auto-opens coach chat with a starter question |
| Challenges | /challenges/blood-pressure, /challenges/fatigue-fix | 28-day email programs |
| Member app | /dashboard, /library, /coach/:sessionId, /read/:guideId, /progress, /check-in, /symptom-tracker, /supplements, /labs, /ai-review, /onboarding, /request-a-guide | The coaching product surface |
| Commerce | /checkout, /checkout/confirm, /checkout/complete, /upgrade/checkout, /upgrade/complete, /account/billing, /account/receipts | Custom cart + Accept Blue |
| Auth | /sign-in, /sign-up, /forgot-password, /reset-password | Email + password, session cookie |
| Legal | /privacy, /terms, /disclaimer, /refund | Standard |
Admin Panel (where the business runs)
Business Money & customers
- AdminRevenue / AdminAnalytics — daily revenue charts (Recharts), conversion tracking
- AdminPurchases — every order, comp access ("grant free access")
- AdminRenewals — Accept Blue recurring events, transaction IDs, manual retry
- AdminSubscribers / AdminUsers — member management, tier changes
- AdminCoupons — full coupon factory (percent / fixed / free guide / free month)
Product Content & coaching
- AdminGuides — create guides: PDF upload (auto-extracted to
knowledgeContent), price, coaching-days quota, cover image, publish toggle, per-guide symptom + supplement lists - AdminCategories / AdminTrackers — taxonomy and symptom definitions
- AdminGuideRequests — member topic requests
- Notifications — test sends for the daily push/email system
Tracking & Growth Stack
Ads Paid acquisition wiring
- Meta pixel with full funnel events: ViewContent, InitiateCheckout, Purchase (value + content IDs), lead tracking on the free guide
- Google Analytics 4 (
G-T3JZ5MLMFZ) - Facebook domain verification meta tag
sa_vidfirst-touch attribution cookie written on conversion (value-aware)
Retention Owned channels
- Email: free-guide delivery, confirmations, 28-day challenge sequences
- PWA web push (daily coach notifications; iOS requires home-screen install — the app walks users through it)
- In-app daily coach message as a retention hook
Findings & Weak Spots
guides.bySlug returns each guide's complete knowledgeContent text (the paid content) plus the direct CloudFront PDF URL. Anyone can pull every $14.99 guide's full text and PDF without paying. The coach's whole knowledge base is exposed the same way.Risk Content leak
All 18 guides' full texts + PDFs readable without login via /api/trpc/guides.bySlug. Only the free guide should be public.
Risk Card data handled in-house
Raw card number / CVV pass through their own server before reaching Accept Blue. That puts the app in PCI-DSS scope — heavy compliance burden for a vibecoded app. (Stripe checkout would have avoided this entirely.)
Messy Vibecoding leftovers
Four home-page variants live (/home-v1 to /home-v4), a /mockup route, mockup screenshot assets, and inconsistent pricing copy across pages. Works fine, but shows the site evolved by prompting, not planning.
Unknown The AI model itself
Provider/model/API key are server-side only. Also unverifiable from outside: how exactly the system prompt is worded, and whether full chat history is included per message.
How You'd Replicate This
Blueprint The whole thing, simplified
- 1. Content: write/compile your guide as one long text per product. Store as
knowledgeContent. (For you: could live in Convex or even a JSON file per guide.) - 2. Coach: one serverless function that takes {guide text + user profile + recent check-ins + message} → one LLM API call → reply. Add a messages table with a monthly counter.
- 3. Quotas as upsell: 30 free messages per guide, 100/month for members. The counter is the paywall.
- 4. Cart: don't hand-roll payments. Stripe Checkout + Stripe Billing for the subscription — skips the PCI problem and the Accept Blue-style recurring-renewals admin entirely.
- 5. Funnel: free guide (email) → auto-open coach → daily coach message → membership. Same shape, clean execution.
- 6. Lock down the API: never expose paid content text/PDFs to unauthenticated calls (their mistake).
Build Your Own AI Coach β Step By Step
Everything above, turned into an implementation plan. The "ideal" stack and the "cheapest possible without losing quality" stack are the same stack — because the AI part is usage-priced and cost per message is fractions of a cent.
The Stack (and what it costs)
| Piece | Best Pick For You | Cheaper Alternative | Cost |
|---|---|---|---|
| Frontend | Your existing app on CF Pages | — | Free |
| Login | Clerk (you already have it) | — | Free to ~10,000 users |
| Database | Convex (you already have it) — holds guides, chats, profiles, counters | — | Free tier is enough to start |
| AI model | GPT-4o-mini (or Claude Haiku) — cheap AND good enough for guide-grounded answers | Gemini Flash is even cheaper | ~$0.003/message |
| Payments | Stripe subscriptions (you already have it) | — | 2.9% + 30¢ on sales only |
| PDF → text | One-time: let an AI extract/clean your guide text | pymupdf (free) | ~$0.05 per guide, once |
How A Message Actually Flows
Step-By-Step Build Order
- Write your guide first. 8,000–12,000 words, structured (see Guide Anatomy below). The guide IS the product — the AI just makes it conversational.
- Turn it into text. Extract clean text from your doc/PDF. This becomes your
knowledgeContent. Keep it as one text blob per guide. - Database tables (Convex):
guides: { title, price, content, symptomList, supplementList } profiles: { userId, conditions, goals, meds, lifestyle } sessions: { userId, guideId, title } messages: { sessionId, role: "user"|"coach", text } usage: { userId, month, messagesUsed, limit } - Intake form. Onboarding asks 5–10 questions (conditions, goals, meds, lifestyle). This is what makes the coach feel "personalized" — it's cheap and it's exactly what they do.
- The coach function (a Convex action — this is the entire AI):
// convex/coach.ts β the whole brain, ~30 lines
export const sendMessage = action(async (ctx, { userId, guideId, text }) => {
const usage = await getUsage(ctx, userId);
if (usage.used >= usage.limit) throw new Error("Message limit reached β upgrade!");
const guide = await db.get("guides", guideId); // the whole book
const profile = await db.get("profiles", userId); // personalization
const history = await lastNMessages(ctx, userId, 20); // conversation memory
const reply = await callAI([{
role: "user",
content: `You are a health coach. Answer ONLY from the guide below.
Be specific and action-oriented. Never diagnose. Suggest questions
for their doctor when appropriate.
=== GUIDE ===
${guide.content}
=== MEMBER PROFILE ===
${JSON.stringify(profile)}
=== QUESTION ===
${text}`
}]);
await saveMessage(ctx, userId, reply);
await bumpUsage(ctx, userId);
return reply;
});
- Chat page. Simple: message list, input box, "X of Y messages left" counter, upgrade button at zero. (Copy their counter-as-paywall pattern — it works.)
- Stripe hookup. Your existing subscription webhook sets
usage.limit = 100and resets the counter monthly. Free users get 30 total. - Daily nudge (their retention secret). A Convex cron job fires each morning: generate a personalized "today's focus" message from their profile + guide. This is what brings members back daily.
- Lock the content down. Serve
guide.contentONLY from inside the server function — never to the browser. (Their site leaks it publicly — don't repeat that mistake.) - Guardrails. Put a permanent "educational only, not medical advice" line in the system prompt + on screen. Tell the AI to decline dosing questions for pregnancy/children and to refer to a doctor.
How The Guides Are Constructed (Anatomy)
We extracted the full text of every guide she has (saved locally as reference in guides-reference\). Here's the exact structure and quality bar — use it as your template for writing guides of equal quality, in your own words and your own content.
Template The anatomy of one guide
- Cover: brand, title, one-line promise ("Your Complete Guide to Vitamin D…"), author + credential ("Alison, PA-C, Duke University-Trained Physician Assistant"), series label ("Entry-Level Guide Series")
- Legal notice: disclaimer & copyright, "educational purposes only"
- Welcome letter from the author: personal story (she writes about her own ulcerative colitis diagnosis) — trust before content
- 7–9 numbered Sections, each with titled sub-headings
- Protocol section: dosing tables by severity/level
- "Questions to Ask Your Provider" — bridges to real medical care
- Special situations: children, pregnancy, medications
- Per-page footer: brand + website on every page
Voice The writing patterns that create "quality"
- "Root cause" framing used 17–40× per guide — contrast with "symptom management" medicine
- "Normal vs optimal" reframe: "ferritin of 15 is 'normal' but many people feel profoundly exhausted above 2.5" — the emotional hook of every guide
- One surprising study per section: "that yoga has the highest evidence score of any single therapeutic intervention studied for blood pressure"
- Numbers everywhere: doses, ranges, IU/day, mcg, blood values — concreteness = perceived quality
- Plain-English mechanisms: "The Sun-Skin-Liver-Kidney Pathway"
Length & Data Per Guide (from the full extraction)
Checklist Guide quality bar — if you hit all of these, you match or beat the reference
- 1. 8,000+ words, 7–9 numbered sections with a named protocol section
- 2. Author credential + personal story up front
- 3. "Normal vs optimal" lab reframes with actual numbers
- 4. Dosing tables (name, dose, frequency, notes) — these double as your supplement tracker data
- 5. A self-check symptom list (12–18 items) — doubles as your symptom tracker data
- 6. "Questions to ask your provider" + special-situations section
- 7. Legal disclaimer front page
- 8. Extracted clean text stored for the coach — verify it's complete before launch (her mistake)
What's Popular β Demand Intel
The Big Reveal: She Gets Zero Google Traffic
Topic Demand vs. Her Catalog (US monthly searches)
| Topic | Searches / Month | Ad Competition | Cost-Per-Click | Her Coverage |
|---|---|---|---|---|
| Cortisol | 450,000 | Low | $0.84 | Balancing Cortisol |
| Cholesterol | 246,000 | Low | $2.60 | The Cholesterol Truth |
| GERD / acid reflux | 201,000–301,000 | Low | $1.22–$1.27 | GERD guide (testimonial on home page) |
| Perimenopause symptoms | 201,000 | Medium | $2.40 | Navigating Menopause (testimonial) |
| Vitamin D deficiency | 201,000 | Low | $0.48 | The Sunshine Vitamin (flagship) |
| Migraine relief | 135,000 | Low | $3.21 | The Migraine Protocol (thin content) |
| Fibroids | 135,000 | Low | $4.04 | Shrinking Fibroids (empty content) |
| Insulin resistance | 110,000 | Low | $1.54 | Reversing Insulin Resistance (thin) |
| Menopause symptoms | 110,000 | Medium | $2.63 | Navigating Menopause |
| Brain fog | 60,500 | Low | $1.97 | Brain Fog guide (thin) |
| Blood pressure (natural) | 18,100 | High (0.92) | $1.38 | Guide + 28-day challenge + testimonial |
| Fatigue / energy | ~10,000–60,000 | Medium | $1.68 | FREE lead magnet + challenge |
Signal What she's betting on most
- Free acquisition: Fatigue/energy — her only free guide and a 28-day challenge
- Second bet: Blood pressure — the other 28-day challenge + the hero testimonial ("dropped 18 points in 6 weeks")
- Biggest catalog slice: Hormonal Balance (5 guides: cortisol, thyroid, menopause, fibroids, iodine) — women 40+, the classic supplement-buying demographic
- Home-page testimonials: Blood Pressure, Menopause, GERD — she leads with wins from those three
Signal Where the money is (ad economics)
- High ad competition = proven buyers: "lower blood pressure naturally" (0.92 competition) is the most advertiser-crowded keyword in the set
- Highest CPCs = highest buyer intent: fibroids ($4.04), migraine ($3.21), menopause ($2.63), cholesterol ($2.60) — those niches monetize
- SEO difficulty is brutal (41–74) across the board — nobody is winning these niches with blog posts; the game is paid traffic → free guide → coaching subscription
- Her thin guides line up with high-CPC niches (migraine, fibroids, insulin) — those are unfulfilled demand in her own catalog
The Full Catalog β All 18 Guides
Every guide she sells, with live data: coach knowledge-base size (words of content actually loaded into the AI) and tracker data counts. Sorted by content completeness.
| Guide | Category | Price | Coach Content | Symptoms | Supplements | Status |
|---|---|---|---|---|---|---|
| The Sunshine Vitamin | Nutrition & Minerals | $14.99 | 12,621 words | 14 | 5 | Complete |
| The Cholesterol Truth | Cardiovascular | $14.99 | 11,525 words | 11 | 6 | Complete |
| GERD Without the Guesswork | Gut & Digestive | $14.99 | 11,009 words | 14 | 10 | Complete |
| Navigating Menopause Naturally | Hormonal Balance | $14.99 | 9,537 words | 16 | 6 | Complete |
| Balancing Cortisol | Hormonal Balance | $14.99 | 8,938 words | 18 | 9 | Complete |
| Thyroid: The Overlooked Driver | Hormonal Balance | $14.99 | 8,903 words | 15 | 6 | Complete |
| SIBO Decoded | Gut & Digestive | $14.99 | 8,525 words | 15 | 8 | Complete |
| Lower Your Blood Pressure Naturally | Cardiovascular | $14.99 | 8,380 words | 12 | 5 | Complete |
| Iodine: The Forgotten Mineral | Hormonal Balance | $14.99 | 8,287 words | 14 | 5 | Complete |
| Breaking the Cycle: Ear Infections in Children | Children's Health | $14.99 | 698 words | 6 | 5 | Thin |
| Brain Fog: The Root Cause Guide | Mental Wellness | $14.99 | 468 words | 7 | 6 | Thin |
| Repurposed Drug Blueprint | Nutrition & Minerals | $14.99 | 375 words | 13 | 13 | Thin |
| Reversing Insulin Resistance | Metabolic & Weight | $14.99 | 141 words | 9 | 8 | Nearly Empty |
| Magnesium: The Master Mineral | Nutrition & Minerals | $14.99 | 123 words | 12 | 6 | Nearly Empty |
| The Migraine Protocol | Mental Wellness | $14.99 | 97 words | 12 | 8 | Nearly Empty |
| The Fatigue Fix (free lead magnet) | Lead Magnet | $0 | 0 words | 12 | 7 | No Coach Content |
| Healing Pediatric Eczema Naturally | Children's Health | $14.99 | 0 words | 0 | 0 | Empty |
| Shrinking Fibroids Naturally | Hormonal Balance | $14.99 | 0 words | 11 | 7 | Empty |
Method & Sources
- Live site: strategichealthguides.com — HTTP headers, the shipped 3.2 MB JS bundle (all page copy + component logic), and live tRPC API probes (
guides.list,guides.bySlug,subscriptions.plans,categories.list, auth-guarded endpoints) - Catalog data pulled live: 18 guides, prices, coaching quotas, categories, plan config
- Sample knowledge base extracted live: "The Sunshine Vitamin" guide (79,896 chars) + supplement list with Fullscript links
- Full guide corpus: all 18 guides' coach knowledge-bases extracted to local reference files (
guides-reference/) for structure analysis; guide texts are NOT republished here - Demand data: DataForSEO keyword metrics (US, Sept 2026) + domain rank overview
- Not verified: the AI model provider (server-side), logged-in UI walkthrough (browser automation was unavailable during this session), actual charge processing
Dissection compiled September 2026 · All claims sourced from the live site's own shipped code and public API responses