Bati: Fitness RPG
Turn workouts into quests, boss fights and a village built by your training.
Version: 2.8.0
Added: 21-08-2026
Updated: 03-10-2026
Added: 21-08-2026
Updated: 03-10-2026
Train like a hero, build like a king.
Bati turns strength training into a dark-fantasy RPG. A workout is a quest. Reps land as damage on a boss. The muscles you actually work raise the buildings of a village that grows out of what you lifted, not out of what you bought.
SPORT FIRST, RPG SECOND
The training logic leads and the game amplifies it. Nothing decorative gets between you and your next set: large tap targets, high-contrast text, and a screen designed for one hand in a noisy gym.
WHAT YOU GET
• Quests: guided sessions with targets that adapt to your level
• Adventures: multi-session campaigns with a story between steps
• Boss fights: reps become damage; weaknesses and criticals make the numbers mean something
• Outings: walk, run or ride; the ground you cover raises the road out of the village
• A village: buildings level up from the volume you actually logged
• Oaths: pick one goal and let the app hold you to it
• Reminders: on the days you choose, scheduled on the phone, no server
• Backups: as a file, or automatic into a folder you pick, encrypted if you ask
• Sync: one hero across several phones
• Four languages: English, French, German, Spanish
• A journal: history, records, your flame, muscle balance
YOUR TRAINING STAYS ON YOUR PHONE
No account. No sign-up. No server of ours. No analytics, no ads, no tracking of any kind. Your sessions, your records and the GPS trace of an outing live in a database on your device. Your phone's own system backup can carry it, like any app's data, and you can turn that off. Uninstalling the app deletes it from the phone, not the copies you made elsewhere.
Three features use the network, each behind its own switch in Settings, and all three start off:
• The map behind an outing's route. The phone asks OpenFreeMap (OpenStreetMap data, from tiles.openfreemap.org) for tiles, the square images a map is made of, around where you go. That tells the host roughly where you were, with your IP address and the time. Off, the route is drawn on a plain background.
• Check for updates. Once a day, the app asks api.github.com whether a newer version exists. No identifier is sent, nothing is downloaded.
• Device sync. Your history, encrypted on the phone (AES-256-GCM), goes to a WebDAV or Nextcloud server you choose, which cannot read it. Or into a folder that Syncthing keeps in step, and Bati makes no request at all.
With all three off, the app makes no network request. Only two files in the code may make one from JavaScript, and a lint rule rejects any other before it ships.
Location is read only while an outing is running, by a GPS module written for this app against Android's own location service. No Google Play Services, no third-party SDK, nothing that phones home.
BODYWEIGHT FIRST
The exercise catalogue is built around what you can do with no equipment, and adapts if you own some. Warm-ups are dynamic and scaled to the session in front of you, because a five-minute warm-up before a six-minute workout is a warm-up nobody does twice.
NOT A MEDICAL DEVICE
Bati is a training app. It is not a medical device and does not diagnose, treat or prevent any condition. If you have an injury, a health condition or doubts about exercising, talk to a doctor before you start.
Open source: https://github.com/Guiforge/bati
Bati turns strength training into a dark-fantasy RPG. A workout is a quest. Reps land as damage on a boss. The muscles you actually work raise the buildings of a village that grows out of what you lifted, not out of what you bought.
SPORT FIRST, RPG SECOND
The training logic leads and the game amplifies it. Nothing decorative gets between you and your next set: large tap targets, high-contrast text, and a screen designed for one hand in a noisy gym.
WHAT YOU GET
• Quests: guided sessions with targets that adapt to your level
• Adventures: multi-session campaigns with a story between steps
• Boss fights: reps become damage; weaknesses and criticals make the numbers mean something
• Outings: walk, run or ride; the ground you cover raises the road out of the village
• A village: buildings level up from the volume you actually logged
• Oaths: pick one goal and let the app hold you to it
• Reminders: on the days you choose, scheduled on the phone, no server
• Backups: as a file, or automatic into a folder you pick, encrypted if you ask
• Sync: one hero across several phones
• Four languages: English, French, German, Spanish
• A journal: history, records, your flame, muscle balance
YOUR TRAINING STAYS ON YOUR PHONE
No account. No sign-up. No server of ours. No analytics, no ads, no tracking of any kind. Your sessions, your records and the GPS trace of an outing live in a database on your device. Your phone's own system backup can carry it, like any app's data, and you can turn that off. Uninstalling the app deletes it from the phone, not the copies you made elsewhere.
Three features use the network, each behind its own switch in Settings, and all three start off:
• The map behind an outing's route. The phone asks OpenFreeMap (OpenStreetMap data, from tiles.openfreemap.org) for tiles, the square images a map is made of, around where you go. That tells the host roughly where you were, with your IP address and the time. Off, the route is drawn on a plain background.
• Check for updates. Once a day, the app asks api.github.com whether a newer version exists. No identifier is sent, nothing is downloaded.
• Device sync. Your history, encrypted on the phone (AES-256-GCM), goes to a WebDAV or Nextcloud server you choose, which cannot read it. Or into a folder that Syncthing keeps in step, and Bati makes no request at all.
With all three off, the app makes no network request. Only two files in the code may make one from JavaScript, and a lint rule rejects any other before it ships.
Location is read only while an outing is running, by a GPS module written for this app against Android's own location service. No Google Play Services, no third-party SDK, nothing that phones home.
BODYWEIGHT FIRST
The exercise catalogue is built around what you can do with no equipment, and adapts if you own some. Warm-ups are dynamic and scaled to the session in front of you, because a five-minute warm-up before a six-minute workout is a warm-up nobody does twice.
NOT A MEDICAL DEVICE
Bati is a training app. It is not a medical device and does not diagnose, treat or prevent any condition. If you have an injury, a health condition or doubts about exercising, talk to a doctor before you start.
Open source: https://github.com/Guiforge/bati