Loop Health routes
This page is a filesystem inventory of the current page.tsx routes under apps/loop-health/src/app/. Route groups such as (public) and (authenticated) are Next.js layout segments; they organize code and shared shells, but they do not appear in the URL. The current tree contains 119 page routes on this branch, which is the practical “consumer surface map” for apps/loop-health and the consumer-app BFF work tracked in ADR-0064.
Route groups at a glance
| Group | Layout role | Routes |
|---|---|---|
(public) | Marketing chrome (PublicChrome), promo capture | 17 |
(marketing) | Site nav + footer, promo capture | 4 |
(enroll) | Chromeless membership funnel shell | 3 |
(authenticated) | LoopAppShell, auth overlays, cart | 89 |
| Ungrouped | Root-level layouts or pages outside a shared app shell | 6 |
(public)
/
├── sign-in
├── sign-up
├── brand
├── join
├── pricing
├── science
├── rx
├── goodbye
├── treatments
│ └── [slug]
├── coaches
│ └── [handle]
└── a/[handle]
├── (default)
├── gated
├── hybrid
└── ungated| Route | Purpose |
|---|---|
/ | Main marketing homepage with hero, product storytelling, pricing teaser, waitlist entry, and Loop Live highlights. |
/sign-in | WorkOS sign-in landing page that funnels the visitor into the auth handler. |
/sign-up | WorkOS sign-up landing page for new-member acquisition. |
/brand | Brand-story page covering positioning, mission, and product framing. |
/join | Membership value-prop page that pushes visitors toward sign-up or checkout. |
/pricing | Public membership pricing overview; useful as a browseable pricing surface even though checkout remains the source of truth. |
/science | Evidence and science explainer page for the public marketing site. |
/rx | Public prescription / clinical-pathway explainer page. |
/goodbye | Post-cancellation confirmation page with a reactivate CTA. |
/treatments | Public treatment catalog landing page. |
/treatments/[slug] | Public treatment detail page for one treatment slug. |
/coaches | Public coach directory with filtering and booking CTAs. |
/coaches/[handle] | Legacy coach profile URL that exists for compatibility and redirects to the canonical username profile. |
/a/[handle] | Default ambassador landing page for referral traffic. |
/a/[handle]/gated | Ambassador landing page that requires sign-in to reveal the full experience. |
/a/[handle]/hybrid | Ambassador landing page with a mix of public and gated content. |
/a/[handle]/ungated | Fully public ambassador landing page for open campaigns. |
(marketing)
/waitlist
/promo
├── (index)
└── [code]
/live| Route | Purpose |
|---|---|
/waitlist | Cohort waitlist landing page with signup form capture. |
/promo | Promo program explainer and entry point. |
/promo/[code] | Promo-code landing page that captures the code in cookies and shows the offer context. |
/live | Public Loop Live programming overview and cadence page. |
(enroll)
/intake
/checkout
/telehealth-consent| Route | Purpose |
|---|---|
/intake | Pre-pay membership clinical intake flow with per-step persistence. |
/checkout | Membership paywall with plan selection, add-ons, and Stripe payment collection before redirecting into the app. |
/telehealth-consent | Combined age, jurisdiction, and RUO acknowledgement page for enroll flows that need those gates. |
(authenticated) — home and navigation
/today
├── health
├── labs
│ ├── upload
│ ├── trends
│ ├── order
│ │ └── diy
│ └── [id]
└── biomarkers/[id]
/welcome
/search
/account
/alerts
/messages
/help
/support
/ask
/podcast| Route | Purpose |
|---|---|
/today | Lifecycle-aware member home that pulls together tasks, doses, insights, and community prompts. |
/today/health | Aggregated health dashboard for labs, biomarkers, and wearables. |
/today/labs/upload | Member upload page for lab PDFs and images. |
/today/labs/trends | Biomarker trend explorer. |
/today/labs/order | Preset Loop lab-panel ordering flow. |
/today/labs/order/diy | DIY lab-order flow for build-your-own panels. |
/today/labs/[id] | Detail page for a single lab result or order. |
/today/biomarkers/[id] | Single biomarker trend drill-in page. |
/welcome | Post-checkout onboarding flow for avatar, username, communities, and first-session setup. |
/search | Unified in-app search page. |
/account | Account hub for LoopBio SSO and account-level actions. |
/alerts | In-app notification inbox. |
/messages | Direct-message inbox backed by Stream. |
/help | Member FAQ/help-center surface backed by content. |
/support | Support contact and ticket submission page. |
/ask | Ask Loop conversational assistant surface. |
/podcast | Podcast feed surface inside the authenticated app. |
(authenticated) — you and settings
/you
├── edit
├── journal
├── notifications
├── wearables
├── saved
├── refer
├── progress
├── check-ins
│ └── [day]/submit
├── protocols
│ └── [id]
│ └── schedule
├── billing
│ └── redeem-gift
└── addresses
/settings
└── connections
/u/[username]| Route | Purpose |
|---|---|
/you | Member profile hub with protocols, activity, and community context. |
/you/edit | Edit profile metadata such as display name, bio, avatar, and public fields. |
/you/journal | Daily health-journal timeline. |
/you/notifications | Notification preference management page. |
/you/wearables | Wearable connection and management page. |
/you/saved | Saved or bookmarked community posts view. |
/you/refer | Referral dashboard with invite tracking. |
/you/progress | Progress view for adherence, biomarkers, and habit signals. |
/you/check-ins | Milestone check-in history page. |
/you/check-ins/[day]/submit | Submit a milestone check-in for a specific due day. |
/you/protocols | List of adopted protocols with reminder-management entry points. |
/you/protocols/[id] | Protocol detail view anchored around the adherence calendar. |
/you/protocols/[id]/schedule | Edit dosing schedule and reminder settings for one protocol. |
/you/billing | Subscription and payment-method management page. |
/you/billing/redeem-gift | Gift-membership redemption page. |
/you/addresses | Shipping-address management page. |
/settings | Settings index for privacy, comms, and related member settings. |
/settings/connections | OAuth grant and third-party connection management page. |
/u/[username] | Authenticated view of another member’s public profile, kept for URL compatibility. |
(authenticated) — protocols and compounds
/protocols
├── compare
└── [slug]
├── share
└── adopt
├── telehealth
└── complete
/compounds
└── [slug]
├── administer
├── reconstitute
└── reorder| Route | Purpose |
|---|---|
/protocols | Protocol catalog landing page. |
/protocols/compare | Side-by-side protocol comparison view. |
/protocols/[slug] | Protocol detail page with adoption CTA and schedule preferences. |
/protocols/[slug]/share | Share page for a specific protocol. |
/protocols/[slug]/adopt | Per-protocol adoption flow. |
/protocols/[slug]/adopt/telehealth | Telehealth handoff/status step for Rx-required protocol adoption. |
/protocols/[slug]/adopt/complete | Post-adoption confirmation page. |
/compounds | Research compounds catalog landing page. |
/compounds/[slug] | Single compound detail page. |
/compounds/[slug]/administer | Administration walkthrough for a compound. |
/compounds/[slug]/reconstitute | Reconstitution guide and calculator page. |
/compounds/[slug]/reorder | Reorder surface for a compound. |
(authenticated) — labs, shop, orders, and treatments
/labs
/shop
└── [slug]
/orders
├── [id]
└── reorder
/member-treatments
└── [id]| Route | Purpose |
|---|---|
/labs | Member lab center for preset panels, DIY entry points, and past orders. |
/shop | Product browse page with personalized recommendations. |
/shop/[slug] | Product or brand detail page with purchase and reorder hooks. |
/orders | Order history list. |
/orders/[id] | Single order detail and tracking page. |
/orders/reorder | Reorder flow seeded from a prior product or treatment. |
/member-treatments | Member’s active treatment list. |
/member-treatments/[id] | Detail page for one treatment. |
(authenticated) — booking and coaches
/book
├── schedule/[providerId]
├── intake/[providerId]
└── call/[callId]
/coach/[id]
├── book
└── office-hours
/office-hours| Route | Purpose |
|---|---|
/book | Provider picker and booking start page. |
/book/schedule/[providerId] | Cal.com scheduling handoff for a specific provider. |
/book/intake/[providerId] | Booking intake form for a specific provider/call. |
/book/call/[callId] | Rimo video-call handoff card and instructions page. |
/coach/[id] | Coach profile page with posts, lives, and booking entry points. |
/coach/[id]/book | In-app coach booking page. |
/coach/[id]/office-hours | Upcoming office-hours list scoped to one coach. |
/office-hours | Cross-coach office-hours landing page. |
(authenticated) — community and feed
/feed
└── [id]
/community
└── [slug]
├── members
└── [threadId]| Route | Purpose |
|---|---|
/feed | Main social feed with channel tabs such as for-you and following. |
/feed/[id] | Feed thread permalink page. |
/community | Community discovery hub. |
/community/[slug] | Single community home with feed, members, and live-related tabs. |
/community/[slug]/members | Redirect shim that deep-links into the members tab. |
/community/[slug]/[threadId] | Legacy community-thread permalink that redirects to the canonical feed thread page. |
(authenticated) — Loop Lives
/lives
├── next
├── upcoming
├── archive
└── [id]
├── watch
└── replay| Route | Purpose |
|---|---|
/lives | Loop Live library landing page. |
/lives/next | Redirect resolver for the next upcoming live session. |
/lives/upcoming | Upcoming live sessions view. |
/lives/archive | Replay archive view. |
/lives/[id] | Single live-session detail page. |
/lives/[id]/watch | Live player page for an in-progress session. |
/lives/[id]/replay | Replay player page for a completed session. |
(authenticated) — learn, gates, teams, and legacy aliases
/learn
├── [slug]
└── how-tos
/gates
├── age
├── jurisdiction
├── ruo
└── researcher
/teams
├── join
│ └── [code]
└── [id]
/enroll/intake| Route | Purpose |
|---|---|
/learn | Learn-hub landing page for educational content. |
/learn/[slug] | Single learn article page. |
/learn/how-tos | How-to guide landing page for operational/product walkthroughs. |
/gates/age | Age-verification gate page. |
/gates/jurisdiction | Jurisdiction-selection gate page. |
/gates/ruo | Research-use-only acknowledgement gate page. |
/gates/researcher | Researcher-credentials acknowledgement gate page. |
/teams | Teams landing page for list/create/join flows. |
/teams/join | Redirect entry point for join-code normalization. |
/teams/join/[code] | Team-invite acceptance page. |
/teams/[id] | Team detail page. |
/enroll/intake | Legacy alias that redirects to /intake. |
Ungrouped routes
/reactivate
/policies
└── [slug]
/oauth/consent
/bloodwork/[token]
/[username]| Route | Purpose |
|---|---|
/reactivate | Reactivation flow for lapsed members. |
/policies | Legal policies index. |
/policies/[slug] | Individual policy document page. |
/oauth/consent | OAuth authorization-consent screen for third-party apps. |
/bloodwork/[token] | Tokenized bloodwork-upload page that does not require a full member session. |
/[username] | Canonical public-profile shortlink for members and coaches. |
Redirects and compatibility bridges
These routes are still important to the app surface, but they mostly exist for URL stability, redirects, or external handoffs rather than as net-new product areas.
| Route | Behavior |
|---|---|
/enroll/intake | Server redirect to /intake for legacy deep links. |
/teams/join | Redirects to /teams/join/[code] or back to /teams. |
/community/[slug]/members | Redirects into the members tab for the canonical community page. |
/community/[slug]/[threadId] | Permanent redirect to /feed/[threadId]. |
/lives/next | Redirects to the next upcoming session or to /lives/upcoming. |
/coaches/[handle] | Legacy coach URL kept for compatibility with canonical profile routes. |
/u/[username] | Authenticated profile alias for compatibility with older links. |
/book/call/[callId] | Static handoff page for the external Rimo call flow. |
/book/schedule/[providerId] | Scheduling handoff page for the Cal.com integration. |
Notes for doc readers
/treatmentsis the public catalog, while/member-treatmentsis the authenticated treatment dashboard./intake,/protocols/[slug]/adopt, and/book/intake/[providerId]are three different intake contexts with different ownership and outcomes./lives,/lives/upcoming, and/lives/archiveshare a product area but serve distinct browse modes.- The ambassador variants under
/a/[handle]/*share one renderer and primarily express access-tier differences.