01 — Design versions
Every version, preserved
The design has progressed in whole, preserved versions — nothing is thrown away. v3 is the founder's original pitch made literal: a 3D battle course with avatars running your reps; v2 took the track-and-field board-game turn; v1 is Ben's Figma built faithful. The replay shows a full match in 90 seconds.
The 3D battle course
The original pitch, made literal — a 3D course with a lane per runner, Geno avatars under real mocap advancing as reps land, power-up cards floating overhead, and the charity pot on a trophy pedestal at the finish. Same engine: draft, points, dual deadline.
The track & field board game
Same engine, new presentation — a board-game table: lanes, dealt power-up cards, the pot, seasons. The turn the design took before the course went 3D — kept live.
The Figma-faithful app
Ben's design, built faithful — the lime phone-first app. 65 screens, the real match engine, fully offline. The starting point, kept live as the design progression.
Watch a match
A 90-second auto-playing replay of a full match — create, log, comeback, close, charity pot. The whole loop in one sitting, no taps needed.
02 — The match
The 300
One match, one week, one target: 300 raw reps. The match runs inside your existing group chat — no new app to open, no schedule to agree on.
-
01
Pick exercises
The crew picks two or three exercises for the match. Anything countable — push-ups, squats, lunges.
-
02
Any reps, any order
Log from the chat or the app, any time. Ten before coffee, forty at midnight. Mix exercises freely.
-
03
First to target closes
The match closes the moment a player's raw reps hit the target — 300 by default. Sudden-death energy, all week.
-
04
Effort-adjusted winner
Raw reps settle the clock. Handicapped scores settle the winner — your tier multiplies every rep you log.
03 — The handicap
Effort beats fitness
Every player carries a fitness tier, and the tier multiplies every rep. A couch player's push-up is worth more than an athlete's. This is the real engine math — drag the slider.
New to it, or restarting. Every rep counts double-ish.
score
The classic upset
Same match. Target closed by the athlete — winner is someone else.
300 raw × 0.85
190 raw × 1.50
Couch wins by 30 — on 110 fewer reps.
v1 ships self-set tiers (socially policed — your mates know what you can do). v2, Phase 3: the multiplier is replaced by measured effort — reps × (your %HRR ÷ your baseline).
04 — The squad
Same gym, four paces
The couch potato grinds slow and heavy. The athlete flies. The handicap does the rest — watch the raw counters drift apart while the adjusted scores stay neck and neck.
Different pace, same shot at winning.
05 — The system
One engine, every chat
Thin adapters translate platform events into a single command bus. One API, one match engine — every group chat. Adding Messenger later is one adapter, not a rewrite.
- WhatsApp — chat adapter
- Slack — chat adapter
- Messenger — Phase 4
- RWF API — command bus
- game-core — match engine
- Postgres — history
- Redis — live state
06 — Verification
Counted, not trusted
Rep counts are cheap to lie about, so the system verifies them — in layers, each shipping in a different phase.
Camera counting
MoveNet pose detection counts your reps live in the browser tab — no app install, no approvals, no GPU bill.
Any BLE heart-rate strap
Web Bluetooth reads any BLE chest strap. Live heart rate feeds the effort engine and grounds the handicap in physiology.
Wearable cloud cross-check
WHOOP, Garmin and Google Health imports verify effort after the fact and tune your handicap over time.
07 — Features
Built to stay fun
The match is the hook. These are the reasons the group chat keeps playing on week twelve.
Taunts
Every log broadcasts to the chat. Trash talk is a feature, not a bug.
Charity pots
Losers pay into the pot. The winner picks where it goes.
Pick your days
Choose which days count. Busy Tuesday? The match only sees the days you picked.
Seasons
Leagues and season standings give the long arc — beyond any single match.
Shareable result cards
Every match ends with a card built for the group chat.
Corporate mode
Slack enterprise install, team-vs-team leagues, org dashboards.
08 — The app
Inside the app
Phone-first and hand-built with the same design system as this site. Tap any screen to open the real thing.
PICK YOUR TIER — HONESTLY
🏆 WINNER
JESS
285 pts · comeback complete
SEASON CHAMPION
Most points takes the belt
MATCH LINK CODE
One code. Your group chat becomes the arena.
09 — Roadmap
Where this goes
From due diligence this week to a corporate revenue engine — each phase proves the loop before it adds a layer.
-
Phase 0NowYou are here
Due diligence & alignment
Private repo, landscape and wearables research, business analysis — done. Next: founder call, Figma audit, MVP scope and equity alignment.
-
Phase 2~6–8 weeks
MVP — the 300 loop
game-core match engine, WhatsApp + Slack bots, PWA with in-browser camera counting, handicap v1. Goal: 3–5 real group chats playing weekly.
-
Phase 3~+8 weeks
Effort truth & wearables
Handicap v2 on measured %HRR, any BLE strap via Web Bluetooth, watch companions, seasons, auto-cut shareable clips.
-
Phase 4Business layer
Corporate & scale
Slack enterprise, org dashboards, team leagues, charity-pot partner, wearable cloud verification, Messenger. The revenue engine.
10 — Explore
Explore the full system
Everything below is live on this box right now — no mocks, no coming-soon pages. Every version, design surface, sound, document and dashboard of Reps With Friends.
App versions
/v3
V3 — the battle course current
The founder's vision literal: 3D lanes, mocap runners, cards overhead, the pot at the finish.
/v2
V2 — the board game
Track-and-field table: lanes, power-up cards, the pot. The board-game era, kept live.
/figma-app
V1 — the Figma-faithful app
Ben's design, 65 screens, real engine, offline-capable. Preserved forever.
/demo
Watch a match
90-second auto-playing replay. The whole game in one sitting.
Design & themes
/styles
Theme gallery
13 design directions — full app presentations, not token swaps.
/system
Design system
Every token, component, element and progress metric — disseminated.
/figma
Figma component library
The adopted component reference extracted from Ben's file (lane F3).
/atelier
Outfit atelier
Garment workshop — x-ray seams, attachments, the frog's kit.
Sound
Docs & business
/v1
Coverage hub
Every element, document and dashboard — one shareable link (v1.1).
/v1/docs/26_TIMELINE_GOALS.html
Roadmap & deliverables
The timeline: where v1.1 stands, the milestone plan (M1, M2, pilot) and every deliverable — rendered on the coverage hub.
/wiki
System wiki
9 pages of living documentation — architecture to match flow.
/deck/RWF_Followup_Deck.pdf
Follow-up deck
The founder follow-up deck for Ben — PDF, opens in a new tab.
/deck/RWF_Contract_Scope.pdf
Contract & scope
The $2,500 build contract scope — PDF.
/deck/RWF_Followup_Appendix.pdf
Deck appendix
Screens, flows and evidence behind the deck — PDF.
/apk/rwf-app-debug.apk
Android app (APK)
Download on your phone → open → allow install. The app in your launcher.
Systems & dashboards
/hub
Ops console
Live matches, bot health, corporate wellbeing views.
/debug
Debug console
Live bot simulator and the full element gallery.
/connect
Link WhatsApp
wa.me deep links + QR. Your group chat becomes the arena.
/slack
Add to Slack
Manifest, tokens, one-click install link builder.
/api/state
Live state API
The JSON everything polls — server, bots, matches.