{"name":"openGym: Track Gym and Body-Weight Workouts Across Devices","description":"openGym is a self-hosted gym and body-weight tracker built with React and Node.js, with apps for iPhone, Apple Watch and Android. Plan routines, log training and sync your data across devices, or use the phone app on its own.","github":"https://github.com/DuarteSantos8/openGym","url":"https://osrepos.com/repo/duartesantos8-opengym","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/duartesantos8-opengym","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/duartesantos8-opengym.md","json":"https://osrepos.com/repo/duartesantos8-opengym.json","topics":["javascript","react","self-hosted","web-app","workout-tracker","fitness-tracker","weightlifting"],"keywords":["javascript","react","self-hosted","web-app","workout-tracker","fitness-tracker","weightlifting"],"stars":null,"summary":"openGym is a self-hosted gym and body-weight tracker built with React and Node.js, with apps for iPhone, Apple Watch and Android. Plan routines, log training and sync your data across devices, or use the phone app on its own.","content":"## Overview\n\nopenGym 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.\n\nIt 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.\n\n## Key Features\n\n- Plan weekday routines or a rotating sequence, and choose exercises from a searchable catalogue with muscle and equipment filters.\n- Follow guided sessions with previous weights pre-filled, rest timers, set logging and personal-record detection.\n- Track progression, estimated one-rep maxes, activity, trained and recovering muscles, body weight and progress photos.\n- Import workout history from FitNotes, Strong or Hevy, and export your data as JSON.\n- Sync profile data across devices with field-level conflict merging, and keep an offline copy while disconnected.\n- Self-host with Docker Compose, or install the iPhone and Apple Watch app or Android APK for standalone use.\n- Optionally enable an AI coach or a local, read-only MCP server. Neither is required for the core app.\n\n## Use Cases\n\n- A self-hosting enthusiast who wants workout records on their own server and under their control.\n- A gym-goer who wants guided sessions, progression tracking and routine planning across phone and laptop.\n- Someone moving from Strong, Hevy or FitNotes who wants to bring existing workout history into a new tracker.\n- A phone-only user who wants to log training without creating or maintaining a server.\n\n## Our Take\n\nA fast-moving, recently released tracker with broad workout features and active community contributions, but development is heavily concentrated in its maintainer.\n\n**Good fit if:**\n- You want a self-hosted tracker, or an iPhone, Apple Watch or Android app that can also run without a server.\n- You value keeping and exporting your training data, and can operate a Docker Compose deployment if you choose to self-host.\n- You want a project with frequent recent releases and pull requests that are being merged and issues that are being closed promptly.\n\n**Look elsewhere if:**\n- You need development responsibility distributed across multiple maintainers. Most contributions are concentrated in one person.\n- You need a permissively licensed project. openGym uses AGPL-3.0, which has source-sharing obligations for modified network services.\n- You need a project with a long-established track record. It is marked as new and has a short history so far.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **New**: less than six months old and changing fast |\n| Last commit | 2026-10-23 (1 day ago) |\n| Commits, last 90 days | 100+ |\n| Releases, last 12 months | 32 (latest v1.4.2, 2026-10-23) |\n| Contributors | 79 (top contributor: 77% of commits) |\n| Issues closed, last 90 days | 35+ (typically closed in 2 days) |\n| Pull requests merged, last 90 days | 58 (typically merged in 8 days) |\n| Project age | 3 months |\n\nChecked on 2026-10-25 with the GitHub API.\n\n## Project Facts\n\n- Language: JavaScript\n- License: AGPL-3.0\n- Stars: 15.6k\n- Forks: 2.1k\n- Topics: apple-watch, bodyweight, docker, fitness, fitness-tracker, gym, health, ios\n- Website: https://opengym.ch\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- Node.js (from package.json)\n- A Compose file to run it with its related services\n- A Helm chart for Kubernetes\n- Automated checks on GitHub Actions\n\n## Getting Started\n\nWith Docker and Compose installed:\n\n```bash\ngit clone https://github.com/DuarteSantos8/openGym\ncd openGym\ncp .env.example .env\ndocker compose pull\ndocker compose up -d\n```\n\nOpen `http://localhost:8080` to create a profile. See the [README](https://github.com/DuarteSantos8/openGym) and [self-hosting guide](https://github.com/DuarteSantos8/openGym/blob/main/docs/SELF_HOSTING.md) for configuration and HTTPS setup.\n\n## License in Plain Words\n\n**AGPL-3.0** (network copyleft).\n\n- Commercial use: yes\n- Modify and redistribute: yes\n- You must keep: the license notice\n- Share your changes: yes, the full source, also when people only use it over a network (e.g. as a hosted service)\n- Includes an explicit patent grant from the contributors\n\nA summary, not legal advice: the LICENSE file is what applies.\n\n## Alternatives\n\n- [ryot](https://osrepos.com/repo/ignisda-ryot): Ryot tracks fitness alongside media consumption in a Rust platform, while openGym focuses on gym routines and workout logging with companion mobile apps.\n\n| Project | Language | License | Stars | Status |\n|---|---|---|---|---|\n| **openGym** | JavaScript | AGPL-3.0 | 15.6k | New |\n| [ryot](https://osrepos.com/repo/ignisda-ryot) | TypeScript | GPL-3.0 | 3.6k | Active |\n\n## Considerations\n\n- The project is new and changing quickly. Recent activity includes frequent commits and releases, so interfaces and behavior may continue to evolve.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.","metrics":{"detailViews":2,"githubClicks":0},"dates":{"published":null,"modified":"2026-10-25T08:42:25.000Z"}}