Skip to content
Manybases

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 lifts table with the partage preset: "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:

prompt
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).

PresetDoc wordingOn 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?

OptionPriceRankingLabel and source
This app on Manybases Free$0/monthyour rule, your exercisesmeasured — pricing, read 2026-09-18
This app on Manybases Builder$14.99/month, 20 projects, 1,000 end users per appsamemeasured — same
Hevyprice not shown on the feature pageheaviest weight on 38 movements, among people you followreported — hevyapp.com, read 2026-09-14
FitRankfree, "Contains Advertising"challenge leaderboards, custom exercisesreported — App Store listing, read 2026-09-14
Strive"both free and premium features", prices not listedsteps, distance, calories, weightreported — strivecompetitions.com, read 2026-09-14
Stravagroup challenges "a subscriber feature", up to 199 athletessegments, distancereported — 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?

  1. Video proof: upload the clip with upload_file — 25 MB per file, 500 MB total on Free, 10 GB on Builder.
  2. Bodyweight ratio: a profiles table with partage and a bodyweight column; rank by weight lifted over bodyweight.
  3. 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.
  4. Leaving with your data: Settings → Export gives dump.sql ("restorable in any SQLite"), your files and manifest.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

Your gym, your rule, one evening: connect Claude Code to Manybases.

Found an error on this page? Tell us at contact@manybases.com.

Got another idea?

Give it a backend.

Start building