Case study — 2026
Yskorr.
You train.
Yskorr keeps up.
The WOD is on the whiteboard. Yskorr reads it, starts the right timer and keeps every session, week after week — box WODs, Hyrox sims or runs.
yskorr.app Coming soon to iOS & Android
- Role
- In-house product — design, development, backend, release
- Platforms
- iOS · Android · watchOS · Web
- Year
- 2026
- Status
- v0.13.0 — coming soon to the stores
Real captures — iOS 26 · AndroidDark theme · light theme




Reading the WOD
The right model for each source.
A whiteboard photo isn't a dictation. Each source goes to the most suitable model, then through a strict schema: the app always receives a structured session.
- photo
- Claude Sonnet 5, chosen after an evaluation on 23 whiteboard photos.
- text · dictation
- Claude Haiku 4.5: equivalent on our cases, about three times cheaper.
- guardrail
- A first pass checks that the image really is a WOD.
- cache
- Versioned (pipeline v8): any prompt change invalidates previous results.
emit_workout → response
jsoninput · whiteboard photo“AMRAP 12 — 12 wall balls 9 kg, 9 toes to bar”
{
"is_workout": true,
"title": "AMRAP 12",
"parts": [
{
"label": null,
"format": "AMRAP",
"timeCapSec": 720,
"rounds": null,
"tabata": null,
"stations": null,
"movements": [
{ "name": "Wall balls", "slug": "wall-balls",
"reps": "12 reps", "load": "9 kg" },
{ "name": "Toes to bar", "slug": "toes-to-bar",
"reps": "9 reps", "load": null }
]
}
]
}In the app
Details that matter.

Progress per movement
Best observed, median, latest measured: every prescription gets its own curve, session after session.

Movement sheets
The movement on video and the muscles worked, front and back, for every movement in the catalogue.
For gyms
A portal for coaches.
Coaches publish programming from the web; today's WOD shows up in their members' app, ready to start.
- programming
- members
- results
- exports
- subscription

Architecture
One app, five surfaces, one backend.
SURFACES
- iPhone
- Apple Watch
- Widgets
- Android
- Gym portal
Supabasepostgres · rls · auth · storage
Edge Functions × 21deno · parse-workout, webhooks
SERVICES
- Claude API
- RevenueCat
- Garmin
- Expo Push
- Resend
- surfaces — iPhone, Android, Apple Watch, widgets, portal
- 5
- edge functions — Deno, server-side
- 21
- SQL migrations — a versioned schema
- 84
- Swift files — watch and widgets
- 45
Mobile
- Expo SDK 55
- React Native 0.83
- Expo Router
- Reanimated 4
Apple native
- SwiftUI
- WidgetKit · ActivityKit
- WatchConnectivity
- HealthKit
Web
- Next.js 16
- React 19
- Tailwind 4
Backend
- Supabase
- Postgres · RLS
- Deno
Services
- Claude API
- RevenueCat
- Sentry
- Expo Push · Resend
Tooling
- TypeScript
- Biome · Husky
- EAS Build
Your turn?
An app in mind ?
We did it for ourselves, we can do it for you: from framing to store release.