Vindictive Studios

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

  • WeightTrainer on the App Store: the app for the programme
  • WeightTrainer on the App Store: follow your progress day by day
  • WeightTrainer on the App Store: tips throughout the programme
  • 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

  • Saga in the app with suggested questions
  • Saga suggesting what the participant could start with today
  • The Today view in the app with advice from Saga
  • A day in the programme with Saga’s explanation and the day’s meals
  • 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.

Saga as a coaching assistant, with suggested questions and an answer to a coach

The coach portal

The sign-in page of the coach portal
The form builder in the coach portal, with versions and copy in five languages
  • 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

A ticket in the support system, with status, assignment and the customer’s earlier tickets
  • 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.