Experience
WeightTrainer
App, coach portal and AI coach for a 90-day programme
- Role
- Full-stack developer
- Period
- Since Aug 2025
- Platforms
- iOS, Android, web
- Team
- Two developers
WeightTrainer is a weight-loss programme that participants follow at their local gym. They use an app for iOS and Android, and their coaches follow them in a web portal. Since August 2025, Joel has worked at KlubbSverige as one of two developers who plan, build and deploy the whole platform.


About WeightTrainer

WeightTrainer is owned by KlubbSverige, a network in the gym and fitness industry, and is offered as the WT-90 and WT-Senior programmes. The nutrition products in the programme come from the sister brand Anew. The app is available in four languages.
The starting point
The app and the coach portal were built two to three years ago, and their dependencies had aged. Participants and coaches use both every day, so the modernisation had to happen in a product that’s live.
Joel’s role
Joel and a colleague share technical responsibility, from planning to production. They plan with the company’s leadership, write the issues in Linear, build, review each other’s code on larger changes and ship to the App Store and Google Play themselves. The team works in sprints.
Built by Joel
- The support system
- The coach portal rebuild
- The form builder in the portal
- Support inside the app and the coach support form
- Saga’s tool for messaging the coach
Joel’s main focus, with the colleague
- The app rebuild to version 2.0
- Saga Actions
Shared responsibility
- Architecture and API
- Deployment on AWS
- In-app purchases and push notifications
- Releases to the App Store and Google Play
The iOS and Android app
Version 2.0, rebuilt from the ground up
Released in January 2026. Old Expo dependencies were replaced with Expo SDK 55 and React Native 0.83, the code got a new structure and the app a new design, made with a designer.
Purchases, push and support
Purchases and subscriptions through StoreKit and Google Play Billing, verified in the backend. Push notifications and support inside the app.
Connected to health data and scales
Steps from Apple Health and Health Connect. Measurements from Bluetooth scales go to the coach automatically.
Shipped continuously
23 App Store versions in 2026, from 2.0 in January to 2.5 in October.
Saga, the AI coach
Answers in real time
Saga runs on a model from OpenAI. Through tool calls she reads the participant’s meals, weight, mood and the thread with their personal coach.
Meal ideas in the app
When a participant asks for lunch ideas, Saga shows a carousel of meals that fit their phase of the programme. Joel helped introduce the feature, Saga Actions.
Messages the coach
If a participant writes that they’re ill and will miss the session, Saga can tell the coach on their behalf. Joel built that tool.
Summaries for coaches
In the portal, coaches use Saga for analysis and summaries of their participants.
A Saga of their own for coaches
Coaches have Saga as a coaching assistant: quick coaching tips, meal ideas for participants, short workouts and help motivating someone who has stalled.

The coach portal


Rebuilt on Next.js 16
In August 2026 Joel moved the portal from a Next.js version two to three years old to Next.js 16.
New components, new design
The home-built components were replaced with shadcn/ui, so the portal looks as modern as the app.
Forms with versions
Joel built the form builder: drafts save automatically, versions are published and the copy is translated from Swedish into four languages.
One API for app and portal
The portal and the app share the same Fastify API and the same sign-in through AWS Cognito.
The support system

Built by Joel
An in-house ticketing system inspired by Zendesk, built with Next.js, shadcn/ui, Tailwind CSS and Supabase.
Four brands, one inbox
Email to WeightTrainer, Anew, Xtrabutiken and KlubbSverige is fetched every 30 seconds and becomes tickets. Participants write from the app and coaches through a form in the portal.
Tickets you can follow
Status, priority, assignment, views, the customer’s earlier tickets and translation.
In daily use
Used since spring 2026 by marketing, sales, the COO, the marketing manager and the developers. More than 2,700 tickets so far.
The technology
- React Native
- Expo SDK 55
- TypeScript
- Next.js 16
- shadcn/ui
- Tailwind CSS
- Fastify
- PostgreSQL
- AWS
- Docker
- GitHub Actions
- Supabase
- OpenAI
- The app and the portal share a Fastify API with PostgreSQL on AWS RDS and sign-in through Cognito.
- Every backend change is built as a Docker image and deployed on AWS ECS/Fargate and EC2.
- Changes go from their own branch to development and then main, with GitHub Actions.
- Purchases are verified in the backend, not just in the app.
Collaboration and delivery
Work is planned in sprints. Joel and the colleague align with leadership, write issues in Linear and take them all the way to production. The app’s new design was made together with a designer. When something breaks in the app, the developers answer in the support system themselves.
Outcome
- Version 2.0 of the app, live on the App Store and Google Play since January 2026.
- 23 App Store versions in 2026, from 2.0 to 2.5.
- The coach portal on Next.js 16 since August 2026.
- The support system in use since spring 2026, with more than 2,700 tickets from four brands.
- Saga answers in real time and can open the participant’s plan and check-ins.
Related services
It’s the same work Vindictive does on client projects: apps in React Native, platforms in Next.js and responsibility from planning to production.
Building a product?
Tell us what you’re building and who it’s for. We’ll come back with questions, then a proposal.







