In development. Not released.
Log the work. Earn the rank. Let the gym confirm it.
Repout is an iPhone app for lifters. Every finished set is logged, the week's work turns into XP, and your rank sits next to your name on your gym's board. A lift only counts as verified when other people who train there say it did.
- iPhone
- English and Turkish
- In development

What this page is not
There is no download link, no release date, no rating and no user count on this page, because none of those exist yet. Everything described below is a mechanism that is implemented in the app and its server today, with the numbers taken straight out of the code.
Pricing
Repout Pro is planned with monthly and annual options, including a seven-day annual trial. The App Store will show the final local price before any purchase.
The engine
Eight ways to bank XP, and a cap on every one
XP is the only thing that moves your rank. The table is fixed, it is the same for everybody, and each row carries its own cap so that a long day cannot be farmed into a rank.
| Action | XP | Cap |
|---|---|---|
| Finish a workoutAt least one completed set. | 30 | Once a day |
| Check in at your gymInside the geofence. | 10 | Once a day |
| Post a gym photo | 25 | Once a day |
| Set a personal recordEstimated 1RM, sets of 12 reps or fewer. | 50 | Once a day per exercise, three a day in total |
| Halfway to the week's targetMonday to Thursday only — it rewards starting early, not finishing late. | 15 | Once a week |
| Hit the week's target | 100 | Once a week |
| Streak bonusFrom two consecutive weeks on. | 100 | Once a week |
| Get a lift verifiedConfirmed by other people at your gym. | 75 | Once ever, per lift |
Caps are enforced by the database, not by the app asking nicely: each grant claims a unique key, and a second attempt returns zero XP instead of an error.
The full table lives in backend/src/domain/xp.ts and is written by exactly one function, grantXP.
Rank
Seven tiers, one ladder
Your tier is your lifetime XP total, and nothing else. How much you lift never moves it — that is a separate scale on your profile. Consistency is what climbs.
- Wood — Tier I0 XP
- Bronze — Tier II750 XP
- Silver — Tier III1,750 XP
- Gold — Tier IV3,000 XP
- Platinum — Tier V4,650 XP
- Diamond — Tier VI6,800 XP
- Legend — Tier VII10,000 XP
A question at onboarding sets your starting tier — new lifters open at Wood, intermediate at Bronze, advanced at Silver. It only ever raises the floor. It never caps what you can earn and it never counts as XP you did not do.
Check-in
A real circle around a real gym
Checking in is not a button you can press from the sofa. The phone hands the server a fix, the server measures the great-circle distance to the gym, and anything outside the circle is refused.
300 metres
The radius is a server setting, checked server-side. Your phone does not get to decide whether it was close enough.
A fuzzy fix does not count
If the phone reports its own accuracy as worse than the radius, the check-in is refused rather than given the benefit of the doubt.
No backdating
A check-in timestamp is clamped to now, and no further than a day into the past.
The coordinates are not kept
The point is used for the distance check and then discarded. What is written down is the account, the gym, the time and the day — never where you were.
The board
Your gym, this week
The leaderboard ranks people by the XP they earned inside the period — not by how much they lift, and not by a lifetime total that a newcomer could never catch. Every board resets.
Four boards
- Friends
- My gym
- City
- Global
Three periods
- This week
- This month
- All time
The gym board is your home gym. Set one and everybody who trains there appears; without one it stays empty rather than guessing.
Visibility is yours. Set it to hidden and you keep earning XP without appearing on any board; set it to friends and you appear only where people already know you. Blocks hide both directions.
Verification
A number somebody else vouched for
Any app can take your word for a lift. Repout asks the room. You attach a photo or a video of the set, open a claim, and people who were actually there decide.
Attach the set
A claim needs a photo or a video of the lift it is about. It cannot be opened on a number alone.
Three votes, two-thirds
A claim settles when three people have voted and two-thirds of them agree. Two against two settles nothing, and the claim stays open.
Seventy-two hours
A claim that nobody settles expires, and the lift simply stays self-reported. Nothing is punished; it is just not verified.
Who gets a vote
People who follow you, plus everybody who checked into your gym that week. Never yourself, and never anybody either of you has blocked.
Voters have to have shown up
A vote counts only from an account with at least ten finished workouts, or with Bronze reached on XP it actually earned — the starting tier does not qualify anyone.
The voter is never named
You are told your lift was confirmed. You are not told by whom.
A rejected or expired lift can be claimed again, but not with the same set — and a set at or under a ceiling you have already verified is refused outright.
Streak
Counted in weeks, not days
A streak is the number of consecutive weeks in which you hit your own weekly training-day target. Missing a Tuesday costs nothing. Missing the week is what breaks it.
Monday to Sunday, where you are
The week boundary follows your own time zone, so travelling does not quietly hand you a short week.
What counts as a day trained
A distinct local day with a finished workout on it, carrying at least one completed set.
A declared rest freezes it
Book a deload or a pause and the weeks it covers are skipped: the streak does not grow, and it does not break. Rest you planned is not a failure the app punishes you for.
In the session
The parts you actually touch between sets
Rest timer
Ninety seconds by default and yours to change. What it records is the rest you actually took, not the rest you meant to take.
Plate calculator
Per-side maths on a 20, 15, 25 or 10 kg bar — and a genuinely separate imperial rack, so it never asks you to load a plate your gym does not own.
Live Activity and widgets
The running session sits on the Lock Screen and in the Dynamic Island, with home-screen widgets alongside it. A workout and a run never stack two banners.
740 exercises
Each one carries its muscle, its secondary muscles, its equipment and how it is tracked, so the app knows whether to ask for reps, distance or a clock.
Runs, tracked properly
Live distance, pace and route from the phone's GPS. A pause stops the clock and the distance together, and bad fixes are dropped instead of averaged in.
Also in the app
The rest of it
Food and macros
Log meals against calorie and macro targets. A meal photo can be turned into an estimate you edit and confirm — nothing is logged until you accept it.
Targets that come from arithmetic
Calories and macros are derived from your own figures with the Mifflin-St Jeor equation, alongside a realistic number of weeks to the goal you set.
A routine on day one
The split you pick at onboarding becomes a working routine immediately. The moment you edit it, it is yours and the generator never touches it again.
Fifteen badges
Each one is a specific, checkable thing: a hundred sessions, fifty check-ins, a hundred thousand kilograms moved, twenty-six streak weeks.
Head to head
Challenge somebody for the week. Both sides race their own weekly target, so the fitter lifter does not win by default, and the result freezes when the week closes.
Your data, out
One request returns your data as JSON, and the app will lay it out as CSV. A test in the build fails if any collection is neither exported nor explicitly listed as withheld.
Strength, kept separate
Bench, squat, deadlift, overhead press, row and pull-up are scored against your bodyweight on their own scale. It never touches your rank.
How busy it is
A gym page can show how many people are there now, and you can take yourself out of that count in settings.
Safety
What happens when someone is a problem
Blocking is immediate and mutual
It takes effect the moment you tap it, in both directions, with no review window in between.
Reports go to a person
A report never changes the account it names on its own. It is filed, it is queued, and a human reads it.
A sanction can be appealed
A suspended account can file one appeal, and can still train, log everything and export its data while the suspension runs.
Photos of other people
Being in somebody else's photo without agreeing to it is its own report reason, and there is a face blur in the camera.
English and Turkish
The app is written in both, not translated into one. Every string catalogue in the app carries the two languages side by side, permission prompts included, and the server answers in the language your phone asks in. There is no third language pretending to be maintained — and this site ships exactly the same two.

