Conceptsloop-health routes

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

GroupLayout roleRoutes
(public)Marketing chrome (PublicChrome), promo capture17
(marketing)Site nav + footer, promo capture4
(enroll)Chromeless membership funnel shell3
(authenticated)LoopAppShell, auth overlays, cart89
UngroupedRoot-level layouts or pages outside a shared app shell6

(public)

/
├── sign-in
├── sign-up
├── brand
├── join
├── pricing
├── science
├── rx
├── goodbye
├── treatments
│   └── [slug]
├── coaches
│   └── [handle]
└── a/[handle]
    ├── (default)
    ├── gated
    ├── hybrid
    └── ungated
RoutePurpose
/Main marketing homepage with hero, product storytelling, pricing teaser, waitlist entry, and Loop Live highlights.
/sign-inWorkOS sign-in landing page that funnels the visitor into the auth handler.
/sign-upWorkOS sign-up landing page for new-member acquisition.
/brandBrand-story page covering positioning, mission, and product framing.
/joinMembership value-prop page that pushes visitors toward sign-up or checkout.
/pricingPublic membership pricing overview; useful as a browseable pricing surface even though checkout remains the source of truth.
/scienceEvidence and science explainer page for the public marketing site.
/rxPublic prescription / clinical-pathway explainer page.
/goodbyePost-cancellation confirmation page with a reactivate CTA.
/treatmentsPublic treatment catalog landing page.
/treatments/[slug]Public treatment detail page for one treatment slug.
/coachesPublic 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]/gatedAmbassador landing page that requires sign-in to reveal the full experience.
/a/[handle]/hybridAmbassador landing page with a mix of public and gated content.
/a/[handle]/ungatedFully public ambassador landing page for open campaigns.

(marketing)

/waitlist
/promo
├── (index)
└── [code]
/live
RoutePurpose
/waitlistCohort waitlist landing page with signup form capture.
/promoPromo program explainer and entry point.
/promo/[code]Promo-code landing page that captures the code in cookies and shows the offer context.
/livePublic Loop Live programming overview and cadence page.

(enroll)

/intake
/checkout
/telehealth-consent
RoutePurpose
/intakePre-pay membership clinical intake flow with per-step persistence.
/checkoutMembership paywall with plan selection, add-ons, and Stripe payment collection before redirecting into the app.
/telehealth-consentCombined 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
RoutePurpose
/todayLifecycle-aware member home that pulls together tasks, doses, insights, and community prompts.
/today/healthAggregated health dashboard for labs, biomarkers, and wearables.
/today/labs/uploadMember upload page for lab PDFs and images.
/today/labs/trendsBiomarker trend explorer.
/today/labs/orderPreset Loop lab-panel ordering flow.
/today/labs/order/diyDIY 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.
/welcomePost-checkout onboarding flow for avatar, username, communities, and first-session setup.
/searchUnified in-app search page.
/accountAccount hub for LoopBio SSO and account-level actions.
/alertsIn-app notification inbox.
/messagesDirect-message inbox backed by Stream.
/helpMember FAQ/help-center surface backed by content.
/supportSupport contact and ticket submission page.
/askAsk Loop conversational assistant surface.
/podcastPodcast 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]
RoutePurpose
/youMember profile hub with protocols, activity, and community context.
/you/editEdit profile metadata such as display name, bio, avatar, and public fields.
/you/journalDaily health-journal timeline.
/you/notificationsNotification preference management page.
/you/wearablesWearable connection and management page.
/you/savedSaved or bookmarked community posts view.
/you/referReferral dashboard with invite tracking.
/you/progressProgress view for adherence, biomarkers, and habit signals.
/you/check-insMilestone check-in history page.
/you/check-ins/[day]/submitSubmit a milestone check-in for a specific due day.
/you/protocolsList of adopted protocols with reminder-management entry points.
/you/protocols/[id]Protocol detail view anchored around the adherence calendar.
/you/protocols/[id]/scheduleEdit dosing schedule and reminder settings for one protocol.
/you/billingSubscription and payment-method management page.
/you/billing/redeem-giftGift-membership redemption page.
/you/addressesShipping-address management page.
/settingsSettings index for privacy, comms, and related member settings.
/settings/connectionsOAuth 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
RoutePurpose
/protocolsProtocol catalog landing page.
/protocols/compareSide-by-side protocol comparison view.
/protocols/[slug]Protocol detail page with adoption CTA and schedule preferences.
/protocols/[slug]/shareShare page for a specific protocol.
/protocols/[slug]/adoptPer-protocol adoption flow.
/protocols/[slug]/adopt/telehealthTelehealth handoff/status step for Rx-required protocol adoption.
/protocols/[slug]/adopt/completePost-adoption confirmation page.
/compoundsResearch compounds catalog landing page.
/compounds/[slug]Single compound detail page.
/compounds/[slug]/administerAdministration walkthrough for a compound.
/compounds/[slug]/reconstituteReconstitution guide and calculator page.
/compounds/[slug]/reorderReorder surface for a compound.

(authenticated) — labs, shop, orders, and treatments

/labs

/shop
└── [slug]

/orders
├── [id]
└── reorder

/member-treatments
└── [id]
RoutePurpose
/labsMember lab center for preset panels, DIY entry points, and past orders.
/shopProduct browse page with personalized recommendations.
/shop/[slug]Product or brand detail page with purchase and reorder hooks.
/ordersOrder history list.
/orders/[id]Single order detail and tracking page.
/orders/reorderReorder flow seeded from a prior product or treatment.
/member-treatmentsMember’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
RoutePurpose
/bookProvider 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]/bookIn-app coach booking page.
/coach/[id]/office-hoursUpcoming office-hours list scoped to one coach.
/office-hoursCross-coach office-hours landing page.

(authenticated) — community and feed

/feed
└── [id]

/community
└── [slug]
    ├── members
    └── [threadId]
RoutePurpose
/feedMain social feed with channel tabs such as for-you and following.
/feed/[id]Feed thread permalink page.
/communityCommunity discovery hub.
/community/[slug]Single community home with feed, members, and live-related tabs.
/community/[slug]/membersRedirect 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
RoutePurpose
/livesLoop Live library landing page.
/lives/nextRedirect resolver for the next upcoming live session.
/lives/upcomingUpcoming live sessions view.
/lives/archiveReplay archive view.
/lives/[id]Single live-session detail page.
/lives/[id]/watchLive player page for an in-progress session.
/lives/[id]/replayReplay 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
RoutePurpose
/learnLearn-hub landing page for educational content.
/learn/[slug]Single learn article page.
/learn/how-tosHow-to guide landing page for operational/product walkthroughs.
/gates/ageAge-verification gate page.
/gates/jurisdictionJurisdiction-selection gate page.
/gates/ruoResearch-use-only acknowledgement gate page.
/gates/researcherResearcher-credentials acknowledgement gate page.
/teamsTeams landing page for list/create/join flows.
/teams/joinRedirect entry point for join-code normalization.
/teams/join/[code]Team-invite acceptance page.
/teams/[id]Team detail page.
/enroll/intakeLegacy alias that redirects to /intake.

Ungrouped routes

/reactivate
/policies
└── [slug]
/oauth/consent
/bloodwork/[token]
/[username]
RoutePurpose
/reactivateReactivation flow for lapsed members.
/policiesLegal policies index.
/policies/[slug]Individual policy document page.
/oauth/consentOAuth 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.

RouteBehavior
/enroll/intakeServer redirect to /intake for legacy deep links.
/teams/joinRedirects to /teams/join/[code] or back to /teams.
/community/[slug]/membersRedirects into the members tab for the canonical community page.
/community/[slug]/[threadId]Permanent redirect to /feed/[threadId].
/lives/nextRedirects 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

  • /treatments is the public catalog, while /member-treatments is 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/archive share a product area but serve distinct browse modes.
  • The ambassador variants under /a/[handle]/* share one renderer and primarily express access-tier differences.