NEWYskorr is coming to iOS and Android

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 · Android
Yskorr home screen in dark mode: “Salut Alex.”, the Ton WOD card (scan, dictate or type), free timer and Run.
Session · iOS
Yskorr home screen on Android, dark mode.
Session · Android
Yskorr free timer screen: “Choisis ton format”, with hybrid sim, simple timer, for time, AMRAP, EMOM and Tabata.
Free timer
Yskorr Stats tab: sessions this week, an 8-week histogram, running distance over 12 weeks.
Stats
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
json
input · 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.

Movement tracking (thruster): best observed time, median, latest measured and a chart of recent attempts for a given prescription.

Progress per movement

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

Thruster movement sheet: video demo and muscles worked, front and back.

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
next.js 16 · same backend as the app
Gym member home screen: today's gym WOD, ready to start, above the Ton WOD, free timer and Run entries.
Member side · app
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.