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.
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.
From an AI draft to content members can use
An editor asks the AI
They ask the assistant to draft a new lesson, program text or event.
The draft is held back
Nothing goes live. The change waits in a queue, and deleting is not allowed.
A person looks it over
An admin opens the review queue and sees exactly what would change.
They approve or reject
Approve to publish the change, or reject it and nothing is touched.
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
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.
- Mobile appsnative iOS and Android, in-app purchases
- Web appNext.js funnels, checkout, deep links
- Admin CMSReact back office
- NestJS APImember, admin, web and MCP surfaces
- Data and queuesSQL, document store, Redis workers
- AI servicesLLM coach, realtime voice, embeddings
- Automationn8n workflows, marketing pages, CRM sync
- 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.
One codebase, partitioned by audience
A NestJS backend splits member, admin, web and internal surfaces, with a module per feature.
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.
Stripe webhook handling
Raw-body signature verification, tier access grants, and affiliate attribution carried through checkout metadata.
MCP gateway
Its own authentication, audit log, draft expiry storage and reference-data tool, bridged to a desktop assistant over stdio.
CRM and ops integrations
Lifecycle sync of subscriptions to a CRM, Slack audit notifications and wearable data context.
Feature flags and AI usage insights
System settings and flags control rollout, and usage insights monitor it.
Environment-specific deploys
Container builds and GitHub Actions cover deploy, CI and security testing, with secrets sourced from a parameter store.
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
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.