Our take
Newless than six months old and changing fast- Activity
- 83
- Community
- 59
- Issues
- 76
- Pull requests
- 42
- Releases more often than 81% of the projects we track
- Merges more pull requests than 78% of the projects we track
- Slower to merge pull requests than 94% of the projects we track
A fast-moving, recently released tracker with broad workout features and active community contributions, but development is heavily concentrated in its maintainer.
Good fit if
- You want a self-hosted tracker, or an iPhone, Apple Watch or Android app that can also run without a server.
- You value keeping and exporting your training data, and can operate a Docker Compose deployment if you choose to self-host.
- You want a project with frequent recent releases and pull requests that are being merged and issues that are being closed promptly.
Look elsewhere if
- You need development responsibility distributed across multiple maintainers. Most contributions are concentrated in one person.
- You need a permissively licensed project. openGym uses AGPL-3.0, which has source-sharing obligations for modified network services.
- You need a project with a long-established track record. It is marked as new and has a short history so far.
All health signals
| Last commit | 2026-10-23 (1 day ago) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 32 (latest v1.4.2, 2026-10-23) |
| Contributors | 79 (top contributor: 77% of commits) |
| Issues closed, last 90 days | 35+ (typically closed in 2 days) |
| Pull requests merged, last 90 days | 58 (typically merged in 8 days) |
| Project age | 3 months |
Checked on 2026-10-25 with the GitHub API.
Overview
openGym is a self-hosted gym and body-weight tracker built with React and Node.js. It helps people plan routines, record workouts and track progress without relying on a third-party account or subscription. You can self-host it and sync data across devices, or use the standalone apps on iPhone, Apple Watch and Android without a server.
It suits people who want ownership of their training history as well as a modern workout interface. The project provides a browser-based app, an Android APK and an App Store app, with offline support and passkey sign-in for self-hosted profiles.
Key Features
- Plan weekday routines or a rotating sequence, and choose exercises from a searchable catalogue with muscle and equipment filters.
- Follow guided sessions with previous weights pre-filled, rest timers, set logging and personal-record detection.
- Track progression, estimated one-rep maxes, activity, trained and recovering muscles, body weight and progress photos.
- Import workout history from FitNotes, Strong or Hevy, and export your data as JSON.
- Sync profile data across devices with field-level conflict merging, and keep an offline copy while disconnected.
- Self-host with Docker Compose, or install the iPhone and Apple Watch app or Android APK for standalone use.
- Optionally enable an AI coach or a local, read-only MCP server. Neither is required for the core app.
Use Cases
- A self-hosting enthusiast who wants workout records on their own server and under their control.
- A gym-goer who wants guided sessions, progression tracking and routine planning across phone and laptop.
- Someone moving from Strong, Hevy or FitNotes who wants to bring existing workout history into a new tracker.
- A phone-only user who wants to log training without creating or maintaining a server.
What you need
Detected in the repository
- Node.js (from package.json)
- A Compose file to run it with its related services
- A Helm chart for Kubernetes
- Automated checks on GitHub Actions
License in plain words
AGPL-3.0network copyleft
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the license notice
- Share your changes: yes, the full source, also when people only use it over a network (e.g. as a hosted service)
- Includes an explicit patent grant from the contributors:
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
With Docker and Compose installed:
git clone https://github.com/DuarteSantos8/openGym
cd openGym
cp .env.example .env
docker compose pull
docker compose up -d
Open http://localhost:8080 to create a profile. See the README and self-hosting guide for configuration and HTTPS setup.
Alternatives
- ryot: Ryot tracks fitness alongside media consumption in a Rust platform, while openGym focuses on gym routines and workout logging with companion mobile apps.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| openGym | JavaScript | AGPL-3.0 | 15.6k | New |
| ryot | TypeScript | GPL-3.0 | 3.6k | Active |
Considerations
- The project is new and changing quickly. Recent activity includes frequent commits and releases, so interfaces and behavior may continue to evolve.
- Contributor activity is concentrated in the maintainer, despite contributions from a wider community. This is a continuity risk for teams that need multiple people sharing project stewardship.
- Self-hosting requires Docker Compose and a Node.js-based application stack. Passkey sign-in from a phone requires serving the instance over HTTPS on a domain; the standalone apps avoid operating a server.
- The project code is AGPL-3.0. If you modify it and provide it as a network service, you must offer the modified source under the same license.
- Exercise images and animations are separately licensed, not covered by the AGPL. The README limits their use in forks and self-hosted installations, so review its media notice before redistributing them.
- The AI coach and MCP server are optional extras, not core requirements. The MCP server is read-only and is not included in the Docker build.
Found this useful?
Share it with someone who would like openGym.