# Workomp

> An iOS workout motivation app, with a mascot that grows with every session you keep.

- Status: shipped (2026)
- Role: Concept, design and development
- Stack: React Native, Expo, TypeScript, Fastify, Prisma, PostgreSQL, SwiftUI
- App Store: https://apps.apple.com/app/workomp-compagnon-sportif/id6812890258
- Website: https://workomp.app
- Page: https://davidcalonne.fr/en/projects/workomp
- Author: David Calonne (https://davidcalonne.fr/en)

Workomp keeps you training with a virtual mascot: it grows with every session you keep, and shows it when you let it down. The app has been on the App Store since October 2026.

## What the app does

- **A mascot** that evolves through 10 stages, with fitness states, moods, colours and cosmetics.
- **A training plan**: workout days, calendar, sessions prepared in advance and confirmed on the day, stopwatch and rest timer.
- **More than 330 exercises**, with sets, weights, distances and records.
- **Progress**: XP, levels, streaks, weekly challenges and trophies.
- **iOS**: home screen and lock screen widgets, Apple Health, notifications.

## Under the hood

A monorepo with the Expo app (React Native, TypeScript), a Fastify and Prisma API on PostgreSQL, and native SwiftUI widgets. Game rules live in a pure module with 100% test coverage, and the app and API share zod contracts. The app works offline and in 5 languages.
