Case study · AI & automation

Wellness training platform: apps, CMS and AI coach

A subscription wellness platform with native mobile apps, a NestJS API, an admin CMS, AI voice and text coaching, and workflow automation.

Sector
Health & wellness subscriptions
Category
AI & automation
Maturity
Production-style multi-surface platform with deploy workflows; web app partly incomplete

At a glance

Who it's for
Subscribers, content admins, and marketing and operations teams.
Core stack
NestJS, Next.js, Swift and Kotlin, OpenAI
What sets it apart
A single platform spanning native apps, web checkout, admin CMS, AI coaching and automation, with AI content creation gated by human approval.

What it looks like in use

AI drafts new content, and a person approves it in the admin review queue before members see it.

Admin CMS: MCP Platform
Review AI-proposed changes
Review QueueMCP UsersAudit Log
Review Queue: filter by content type and status
New lesson: five-minute evening wind-downPending
Edit program description: focus basicsPending
New event: live breathing sessionApproved
Edit lesson title: morning resetRejected
New lesson: gentle stretch breakApproved
Edit event description: weekly live Q and APending
Edit program description: sleep basicsApproved
New event: monthly community callRejected
Proposed change: New lesson (Pending)
Five-minute evening wind-down
Proposed by the AI assistant, not live yetView Diff
RejectApprove
Illustrative screen sample data, not client data; the admin CMS shown is a real part of the product, while parts of the web app are still unfinished

From an AI draft to content members can use

  1. An editor asks the AI

    They ask the assistant to draft a new lesson, program text or event.

  2. The draft is held back

    Nothing goes live. The change waits in a queue, and deleting is not allowed.

  3. A person looks it over

    An admin opens the review queue and sees exactly what would change.

  4. They approve or reject

    Approve to publish the change, or reject it and nothing is touched.

  5. Members see the new content

    Once approved, the lesson shows up in the member apps.

The challenge

A subscription wellness business needs to ship structured programs, lessons, live events and a community to members on iOS, Android and the web, while selling through app stores and a web checkout.

Content teams need to publish and schedule material without developers. Marketing needs landing pages, funnels and lifecycle emails tied to subscription data. Members also expect personalised guidance: a conversational coach with memory of prior sessions, voice interaction, periodic progress reports and reminders, all governed by usage limits and moderation controls.

The solution

The platform has one shared backend with separate API surfaces for the member apps, the admin CMS and the web app. Native iOS and Android clients and a Next.js web app consume the member API. A React admin CMS manages programs, lessons, events, products, roles and AI settings.

AI features sit on top: streaming text coaching, a realtime voice agent, document context and member memory. An embedded MCP server lets an AI assistant draft CMS content, which a human approves in a review queue. Automation lives in n8n workflows and static marketing pages published to object storage.

For your technical teamhow it works under the hood

How an AI draft reaches live content

Approval flow for AI-drafted contentSequence diagram with five participants: AI assistant, MCP gateway, draft store, admin review queue in the CMS, and live content. The assistant searches and reads content through the gateway and gets results back. It then starts and updates a draft, which the gateway saves in the draft store. The assistant validates and submits the draft, and the gateway creates a pending proposal in the admin review queue. Only when an admin approves is the write applied to live content. The gateway has its own sign-in and an audit log, and blocks delete calls. Drafts are kept per assistant user and expire.AI assistantMCP gatewayDraft storeAdmin reviewqueue (CMS)Live content1. search and read content2. results3. start and update draft4. save answers5. validate, then submit6. proposal, status pending7. admin approvesAt the gatewayOwn sign-in and an audit log. Delete calls areblocked; archiving is used instead.Before approvalDrafts are kept per assistant user and expire.Live content is untouched until an admin approves.
Time runs downward. The assistant can read freely, but anything it writes becomes a pending proposal. Live content changes only after a person in the CMS approves it.

Key features

What the system does, as built in the codebase.

  • 01

    Program, lesson and event catalogue

    Tiered content, progress tracking, calendar links and live-session provisioning.

  • 02

    AI coach with chat and voice

    A streaming text coach, a realtime voice session and a hosted voice-agent gateway.

  • 03

    Member memory and document context

    Stored context that personalises coach answers.

  • 04

    Admin CMS

    A React back office for content, members, orders, subscriptions, roles and permissions, banners, FAQs and AI agents.

  • 05

    MCP content platform with approval queue

    AI assistant tools search, draft and propose content. Writes are held for admin approval and deletes are blocked.

  • 06

    Subscriptions and purchase funnels

    Store purchase verification, web checkout with Stripe webhooks, redeem codes and family plans.

  • 07

    Engagement automation

    Activity and event reminders, scheduled notifications through a job queue and periodic member reports.

  • 08

    Marketing pages and workflows

    Static funnels deployed to object storage and a large library of n8n automations.

How it fits together

Three client surfaces, one backend, and AI behind a human approval step.

  1. Mobile appsnative iOS and Android, in-app purchases
  2. Web appNext.js funnels, checkout, deep links
  3. Admin CMSReact back office
  4. NestJS APImember, admin, web and MCP surfaces
  5. Data and queuesSQL, document store, Redis workers
  6. AI servicesLLM coach, realtime voice, embeddings
  7. Automationn8n workflows, marketing pages, CRM sync
Member apps, the web app and the admin CMS all call one NestJS API. The API stores data in SQL and document databases and runs Redis workers. It also calls AI services for coaching and voice, and feeds automation workflows.
  • AI assistant proposals enter an approval queue in the CMS before publishing.
  • Stripe and store purchases update tier access.

Implementation notes

Engineering decisions worth knowing about.

  1. One codebase, partitioned by audience

    A NestJS backend splits member, admin, web and internal surfaces, with a module per feature.

  2. Mixed persistence

    Relational storage via TypeORM with dated migrations, a document store via Mongoose, and Redis-backed BullMQ workers for transcription, content mapping and notifications.

  3. Stripe webhook handling

    Raw-body signature verification, tier access grants, and affiliate attribution carried through checkout metadata.

  4. MCP gateway

    Its own authentication, audit log, draft expiry storage and reference-data tool, bridged to a desktop assistant over stdio.

  5. CRM and ops integrations

    Lifecycle sync of subscriptions to a CRM, Slack audit notifications and wearable data context.

  6. Feature flags and AI usage insights

    System settings and flags control rollout, and usage insights monitor it.

  7. Environment-specific deploys

    Container builds and GitHub Actions cover deploy, CI and security testing, with secrets sourced from a parameter store.

  8. Native in-app purchases

    iOS (Swift) and Android (Kotlin) clients complete purchases against a server-created order, and the backend updates the member's access from the result.

Technology stack

Taken from the project's dependency and config files.

Backend
  • NestJS 8
  • TypeScript
  • TypeORM
  • PostgreSQL
  • Mongoose
  • BullMQ
  • ioredis
  • Passport
Web
  • Next.js 15
  • React 18
  • Jest
CMS
  • React 17
  • Redux
  • Material UI
  • Webpack
Mobile
  • Swift (iOS and macOS)
  • Kotlin (Android)
AI
  • OpenAI
  • Anthropic
  • LangChain
  • ElevenLabs voice agent
  • Model Context Protocol
Payments
  • Stripe
  • In-app purchases
Cloud
  • AWS (S3, SQS, CloudFront signing)
  • Firebase
  • Auth0
  • Docker
Automation
  • n8n
  • HubSpot
  • Slack
  • Google Sheets
  • Supabase nodes
For your technical teamtechnology layers

Technology stack by layer

Technology stack layersLayered view from clients to services. Mobile: Swift and Kotlin. Web: Next.js, React and Jest. CMS: React, Redux, Material UI and Webpack. Backend: NestJS, TypeScript, TypeORM, PostgreSQL, Mongoose, BullMQ, ioredis and Passport. AI: OpenAI, Anthropic, LangChain, an ElevenLabs voice agent and the Model Context Protocol. Payments: Stripe and in-app purchases. Cloud: AWS, Firebase, Auth0 and Docker. Automation: n8n, HubSpot, Slack, Google Sheets and Supabase nodes.MobileiOS and Android appsSwift (iOS and macOS)Kotlin (Android)WebFunnels and checkoutNext.js 15React 18JestCMSAdmin back officeReact 17ReduxMaterial UIWebpackBackendAPI, data and queuesNestJS 8TypeScriptTypeORMPostgreSQLMongooseBullMQioredisPassportAICoach, voice, toolsOpenAIAnthropicLangChainElevenLabs voice agentModel Context ProtocolPaymentsSubscriptionsStripeIn-app purchasesCloudHosting and identityAWS (S3, SQS, CloudFront signing)FirebaseAuth0DockerAutomationWorkflows and syncn8nHubSpotSlackGoogle SheetsSupabase nodes
The three client layers at the top all call the one backend. AI, payments, cloud services and automation are the outside services the backend relies on.

Business value

What the system enables. No numbers are claimed.

  • Lets content teams publish and schedule programs and events without developer involvement.
  • Offers members personalised coaching through chat and voice, with guard rails on usage.
  • Connects purchases, access tiers and CRM so subscription state stays in sync.
  • Lets marketing launch new funnels and automations quickly from static pages and workflows.
  • Allows AI-drafted content while keeping a human approval step.

Need a system like this built?

Tell us what it needs to do and we will scope it with you on a call.

Discuss a build