Gym leaderboard app for friends: your lifts, your exercises, your ranking rule
Verified · By Eiub.Manybases
This is our own demo; nobody else's story is told here.
TL;DR
- A gym leaderboard app for friends takes one prompt to Claude Code and one MCP address: tables, pages and deploy come out of the same conversation.
- Every lift is a row in a
liftstable with thepartagepreset: "Everyone reads everything; each user edits only their own rows." The board is a query, not a trust exercise. - You pick the exercises and the ranking rule — heaviest set, estimated 1RM, total volume — instead of a fixed list someone else chose.
- Friends join through a single-use invitation link you share yourself; they get a login in your app, not an account with us.
- $0 on the Free plan (2 projects, 3 end users per app). A bigger crew is Builder, $14.99/month (20 projects, 1,000 end users per app).
What does a gym leaderboard app for friends look like when you build it?
A web app at its own manybases.online address. Each friend logs in and enters a set: exercise, weight, reps, date, optional video link. A board ranks the crew per exercise — bench, squat, deadlift, whatever your gym cares about — by the rule you wrote in the prompt. A profile page shows each person's PR history. Nobody can log a set for someone else or quietly delete a friend's 140 kg deadlift: that is one table setting, not code you maintain.
Unlike a habit tracker with friends, the data here is a number and the ranking is a formula over numbers — so the rule is yours to define.
Seats: 3 end users per app on Free, 1,000 on Builder (pricing, read 2026-09-18). A three-person crew fits Free; a gym group of eight is Builder.
What prompt do I give Claude Code?
Connect the Manybases MCP first (connecting the MCP), then paste this:
Create a Manybases project called "iron-board".
Tables:
- exercises (id, name, unit, created_at)
- lifts (id, exercise_id, user_id, weight, reps, done_on, video_url, created_at)
Set both tables to the `partage` preset: everyone reads everything,
each user edits only their own rows.
Seed exercises with: back squat, bench press, deadlift, overhead press.
Build a small web app:
- "Log a set": exercise, weight, reps, date, optional video link.
- "Board": one ranking per exercise. Rank by estimated 1RM using
Epley (weight * (1 + reps/30)); show the best set behind each rank.
- "Me": my PR per exercise and its history.
Deploy the site and give me its URL. Then create one invitation link
per friend (start with 3) and give me the links.Claude Code calls create_project, apply_migration, set_table_preset, deploy_site and invite_user — five of the MCP's tools (tool list). Swap Epley for "heaviest single set" or "weekly volume" and the board changes; the access rule does not.
Try it: get the connection snippet for Claude Code or Cursor.
Why is partage the right access preset for a leaderboard?
Every app in search results solves one trust problem: your friends see your numbers and cannot change them. Hevy ranks "the heaviest weight lifted on 38 movements" among "everyone you follow" (hevyapp.com, read 2026-09-14, reported). Built by hand, that rule is a set of row-level policies to write, test and not break at the next migration.
Manybases ships it as an access preset: "Every table carries one preset that says who may list, read, create, update and delete its rows" — eight presets, and "they cannot be misconfigured, and the API applies them to every request" (access presets).
| Preset | Doc wording | On a gym board |
|---|---|---|
partage | "Everyone reads everything; each user edits only their own rows" | Everyone sees every lift; you can only log or correct your own — the one to use |
collaboratif | "Everyone reads and edits everything" | Anyone could bump a friend's bench by 10 kg; fine for the shared exercises list, wrong for lifts |
prive | "Each user only sees their own rows" | A solo logbook, no board |
Two tables, two presets is normal: exercises on collaboratif so anyone can add "hip thrust", lifts on partage.
How do friends join, and what do they see?
Ask the agent for invitations, or issue them from the dashboard. Each is a single-use link valid 7 days, https://<app URL>/i/<token> — "Share it yourself — no e-mail is sent" (inviting users). A seat is consumed at first sign-in; "inviting ten people on a three-seat app is allowed", and the fourth sign-in on Free returns 402 quota_exceeded. If someone forgets their password, you obtain a single-use reset link, valid one hour, and hand it to them.
Only you hold a Manybases account; your friends hold accounts in your app.
How does it get online, and does it work at the gym?
deploy_site publishes the build on manybases.online. "A site can carry no code, no key and no binding": every call it makes to its project's API is a cross-origin request (data isolation). Prefer a repository? Install the Manybases GitHub App, link the repo with link_repo, copy one workflow file, push on main (deploying from GitHub). Your own domain: not available today (pricing).
At the gym, today: open the URL in Safari or Chrome, "Add to Home Screen", log the set between two rests. The board refreshes on load — there is no realtime and no push notification today (limitations, pricing), so nobody gets buzzed when a PR falls. A dedicated way to put your apps on everyone's phone, with notifications, would come later.
What does it cost next to the apps in search results?
| Option | Price | Ranking | Label and source |
|---|---|---|---|
| This app on Manybases Free | $0/month | your rule, your exercises | measured — pricing, read 2026-09-18 |
| This app on Manybases Builder | $14.99/month, 20 projects, 1,000 end users per app | same | measured — same |
| Hevy | price not shown on the feature page | heaviest weight on 38 movements, among people you follow | reported — hevyapp.com, read 2026-09-14 |
| FitRank | free, "Contains Advertising" | challenge leaderboards, custom exercises | reported — App Store listing, read 2026-09-14 |
| Strive | "both free and premium features", prices not listed | steps, distance, calories, weight | reported — strivecompetitions.com, read 2026-09-14 |
| Strava | group challenges "a subscriber feature", up to 199 athletes | segments, distance | reported — fitcoin.co listicle, read 2026-09-14 |
Projects on Manybases "never auto-pause for inactivity": a board that goes quiet over the summer is still there in September. Egress is "$0. Ever."
How do I make it mine?
- Video proof: upload the clip with
upload_file— 25 MB per file, 500 MB total on Free, 10 GB on Builder. - Bodyweight ratio: a
profilestable withpartageand abodyweightcolumn; rank by weight lifted over bodyweight. - Monthly champion: an edge function run from a button (100K executions/month on Free). No scheduled tasks today, so it does not run by itself.
- Leaving with your data: Settings → Export gives
dump.sql("restorable in any SQLite"), your files andmanifest.json, presets kept (export). An export carries at most 40 files today — mind the videos.
When isn't this the right tool?
- You want your Apple Watch or Garmin to feed the board by itself: Apple Fitness, Garmin Connect or Strive.
- You want a ranking across the whole gym or with strangers: Hevy or FitRank.
- You want a notification the second a friend beats your PR: no push and no realtime today.
- Your crew is bigger than 1,000: that is the end-user limit per app on Builder and Studio.
- You want an App Store listing: this is a web app at a URL.
Next
- The habit version of a shared board
- An internal tool for a team under 10 seats
- Pricing, plan by plan
Your gym, your rule, one evening: connect Claude Code to Manybases.
Found an error on this page? Tell us at contact@manybases.com.
