Reps With Friends · living documentation
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.
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.




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.
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.
WhatsApp + Slack on one command bus — the full command grammar, result cards, rematch, nemesis, Monday digest, and a real simulated match transcript.
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.
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.
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.
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.
Honest per-element status across families A–G, the blockers register (technical, legal, business) and the unblock order.
| Surface | What it is | Where |
|---|---|---|
| Site | Concept showcase — Three.js hero, interactive handicap demo, AI guide | / · site/ |
| App | Phone-first PWA (our first-party build with camera + HR verify) | /app · apps/web/ |
| Figma app | Ben's full design as a navigable offline app — the reference build | /figma-app · apps/figma-app/ |
| Bots | WhatsApp (via Qalarc Hub) + Slack (Bolt) — one command grammar | apps/bot-whatsapp · apps/bot-slack |
| Hub console | Ops + corporate console, live /api/state polling | /hub · apps/hub/ |
| Debug | Live bot simulator + element gallery | /debug · apps/debug/ |
| System page | Complete dissemination: tokens, components, 36 elements with status | /system · apps/systempage/ |
| API | REST backend (crews / matches / seasons) — the MVP state foundation | apps/api/ · port 4174 |
| Avatars | Local-only avatar style + tuning studio | /avatars · apps/avatars/ (local) |
| Wiki | This documentation | /wiki · apps/wiki/ |
Everything runs from one Bun dev server (bun serve.ts → localhost:4173) locally, and from Cloudflare Pages at rwf.qalarc.com in production. See Ops & Testing.