Storefront templates
Tagada ships ready-made Rx storefront templates (Plugin SDK apps). They look and sell very differently, but they are facades over the same funnel skeleton and the same Rx building blocks: change the facade, keep the orchestration, the tracking, and the clinical flow. Templates differ only in the order and weight of the first three boxes (Landing / Quiz / Catalog) and in art direction. Checkout → Thank-you/intake → Portal are identical everywhere — that’s the LegitScript-validated, FTC-sensitive core, and it never moves.The catalog
oakwell, kura, and sanara are anonymized reskins of the multi-vertical
template — same structure, different branding — used for demos and as forks
for new affiliate brands. oakwell.tgdcare.com is parked (“Coming soon”)
until remounted; use tgdcare.com as the live catalog
demo. Cobalt and Arbor were built from a competitive audit of the DTC
telehealth market (structures and vocabulary, never brands or assets).Three orchestration patterns, same boxes
How a template maps onto the bricks
This is the load-bearing table: each funnel step of every template calls the same brick the same way. A headless rebuild of any template is exactly these calls, self-orchestrated.
Publishing a template installs this same Funnel v2 on the merchant
instance. Every telehealth template (catalog + reskins) must serve these
paths — that is the compatibility contract with
ensureRxStorefrontFunnel:
The plugin matcher is
.* (catch-all), so the six boxes are the same site,
not six mounts. The remappable pages carry feature contracts (checkout
session from checkoutToken, order from context) so the funnel engine can
rewire them per variant without touching template code.
Decoupling in practice: the medical intake never moves. Whatever the
sales path — quiz-first, catalog-first, plan-first, or a headless funnel on
your own infrastructure — the
product → medical questionnaire pair is
resolved after payment on the thank-you step. That’s why the top of the
funnel is completely free to vary.Compliance rules baked into every template
- The marketing quiz contains no medical questions — no PHI before the card hold. The medical intake is network-authored and post-hold.
- Prescription disclaimer wherever money changes hands: authorizing or subscribing does not guarantee a prescription; the hold is voided if the clinician doesn’t prescribe.
- Honest pricing: displayed monthly price = billed price; billing cadence explicit at checkout.
- Safety information reachable from every product surface.
- Self-service cancellation in the patient portal.
- No platform branding patient-side — the affiliate brand (or the marketplace brand) is the only name a patient ever sees.
Launching from the CRM
Merchants don’t deploy templates by hand: the CRM storefront wizard (Tagada Rx → Storefront) lists this catalog. The merchant picks a template, uploads a logo, sets brand name/colors and a subdomain, and publishing auto-deploys the chosen template and installs a Funnel v2 onbrand.tgdcare.com — catalog remap, payment flow, domain mount, and
the six-step canvas (landing → marketing quiz → checkout → offer →
thank-you → portal) so each page is visible in the CRM funnel builder.
Republishing with a different template swaps the facade in place: same
subdomain, same funnel, same cases. The plugin stays mounted as a
catch-all; the Funnel v2 graph is the operator view, not a second site.
The wizard also offers a build-your-own path for merchants who prefer
the Headless SDK — with the constraint
that the build is still hosted on the Tagada subdomain (LegitScript).
Forking a template
Templates live in the monorepo undertemplates/v2/telehealth-*. To create
a new brand: fork the closest archetype, patch config/default.config.json
(branding, verticals, products, paymentFlowId), adjust the theme CSS
variables, and deploy with the standard plugin pipeline (deploy →
instantiate → mount on the brand’s domain). In affiliate mode, each brand is
one plugin instance on its own subdomain — same code, different config.
See With the Plugin SDK for the
integration contract inside a template.