Reps With Friends · living documentation

The system wiki

Reps With Friends is a real-time multiplayer fitness game. A group agrees on exercises, races to a raw rep target (any reps, any order, any mix) — first to the target closes the match, but the winner is the highest effort-adjusted score. Played inside WhatsApp and Slack group chats via bots, with a phone-first app as home base. Losers pay a charity pot the winner directs.

This wiki documents every element and feature with screenshots, the actual mechanics underneath, and where each one lives in the code.

122tests green in CI
11public surfaces
36elements catalogued
~20spush → live deploy

Chapters

Each feature entry carries: what it is, a screenshot, how it works underneath (the real multipliers, thresholds and data flow), where it lives, and an honest status badge.

Battle live screen from the app
app · battle live
Danger zone 3 screen
game · danger zone 3
Hub ops console
ops · hub console
Avatar gallery
avatars · style gallery

Game Rules live

The 300 format, tier handicaps (couch ×1.5 → athlete ×0.85), comeback ×1.2, closure bonus +15, the four power-ups, danger-zone ramp, daily close + recap, seasons, and the charity pot — with the exact math.

9 rule systems· 12 screenshots

App Screens demo

Ben's Figma design as a working app: onboarding, home, create battle, waiting room, battle live, the ≤3-tap log sheet, power-ups, recap, result, rematch, profile and season ladder — screen by screen.

20+ screens· 31 screenshots

Bots demo

WhatsApp + Slack on one command bus — the full command grammar, result cards, rematch, nemesis, Monday digest, and a real simulated match transcript.

15 commands· 39 tests

Verification live (P1)

Camera rep counting with MoveNet (angle-threshold state machine, 100% on-device) and BLE heart-rate straps scored as Karvonen %HRR — the anti-cheat lane.

push-ups + squats· any GATT strap

Avatars exploration

The /avatars studio: 8 procedural styles side by side, GLB model characters, BVH mocap, wardrobe and species heads — plus the measured investigation of why looks match or miss.

8 styles · 12 GLBs· 11 screenshots

Ops & Testing live

The /hub console, /debug bot simulator, the deploy pipeline (GitHub → Cloudflare Pages), the REST API, the AI layer, and every test suite and what it proves.

122 CI tests· 2 E2E walks

Design System live

Tokens (dark athletic + Ben's gold/ink adoption), the gold-vs-lime theme question, the 16-component library, the 22-icon set, and the /system dissemination page.

2 palettes· 16 components

Status & Roadmap in motion

Honest per-element status across families A–G, the blockers register (technical, legal, business) and the unblock order.

36 elements· 14 blockers

The system at a glance

SurfaceWhat it isWhere
SiteConcept showcase — Three.js hero, interactive handicap demo, AI guide/ · site/
AppPhone-first PWA (our first-party build with camera + HR verify)/app · apps/web/
Figma appBen's full design as a navigable offline app — the reference build/figma-app · apps/figma-app/
BotsWhatsApp (via Qalarc Hub) + Slack (Bolt) — one command grammarapps/bot-whatsapp · apps/bot-slack
Hub consoleOps + corporate console, live /api/state polling/hub · apps/hub/
DebugLive bot simulator + element gallery/debug · apps/debug/
System pageComplete dissemination: tokens, components, 36 elements with status/system · apps/systempage/
APIREST backend (crews / matches / seasons) — the MVP state foundationapps/api/ · port 4174
AvatarsLocal-only avatar style + tuning studio/avatars · apps/avatars/ (local)
WikiThis documentation/wiki · apps/wiki/

Everything runs from one Bun dev server (bun serve.tslocalhost:4173) locally, and from Cloudflare Pages at rwf.qalarc.com in production. See Ops & Testing.