SparkyFitness: Self-Hosted Fitness Tracking for the Whole Household
SparkyFitness: Built for Families. Powered by AI. Track food, fitness, water, and health — together.
At a glance
- What is it?
- SparkyFitness is a source-available self-hosted platform that combines nutrition, exercise, sleep, fasting, hydration and body metrics in one application with family sharing, wearable integrations, and an MCP server for AI-powered chat logging.
- Who is it for?
- SparkyFitness is the right tool for households and privacy-conscious individuals who want all their health data on infrastructure they control, with no subscription and no vendor lock-in for export. The Docker Compose installation takes minutes on any Linux server or home machine.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What SparkyFitness Is and Who Benefits
SparkyFitness is described in the README as "a self-hosted, privacy-first alternative to MyFitnessPal, Flo, Hevy, Shotsy & more." It targets people who track multiple health dimensions: nutrition, exercise, body measurements, sleep, hydration, fasting and mood, and who want a single application and single data store for all of it, running on their own server or home machine.
The family use case is a specific design goal. The README notes that most health apps charge per person per year, and covering nutrition, workout, sleep and cycle tracking separately means three or four subscription fees per family member. SparkyFitness consolidates these into one self-hosted installation with multiple user profiles and granular permission controls.
The platform includes a backend server with a REST API, a web-based frontend, and native iOS and Android mobile apps. All data lives on infrastructure the user controls.
Core Features: What SparkyFitness Tracks
The README lists the tracking capabilities as nutrition, exercise, hydration, sleep, fasting, mood and body measurements. Goal setting and daily check-ins are included. Interactive charts and long-term reports are available without a paid tier, which the README's comparison table flags as a paid feature in several competing apps.
Authentication options include OIDC, TOTP, Passkey and MFA. Light and dark themes are available. Multiple user profiles allow a household to share one installation without mixing data.
The wearable and health platform integration list is long. The README names Apple Health (iOS), Google Health Connect (Android), Google Health API, Fitbit, Garmin Connect, Withings, Polar Flow, Oura, Hevy, OpenFoodFacts, USDA, Fatsecret, Nutritionix, Mealie, Tandoor, Strava (partially tested), COROS, Norish, Yazio (via unofficial API), Swiss Food Database, Free Exercise DB (GitHub) and Wger as connected services. Integrations sync activity data, workouts, sleep and health metrics to the SparkyFitness server.
The AI features, in beta, provide a chat interface for logging food, exercise and body stats by description, and image upload for automatic meal logging from a photo.
Installing SparkyFitness with Docker Compose
The README describes two paths: self-hosted with Docker Compose, and a managed cloud option. For self-hosting:
mkdir sparkyfitness && cd sparkyfitness
curl -L -o docker-compose.yml https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/docker-compose.ymlThe README says this gets a SparkyFitness server running in minutes. The workspace package.json shows the project uses pnpm 10.33.4 for monorepo management across four packages: SparkyFitnessFrontend, SparkyFitnessServer, SparkyFitnessMobile and SparkyFitnessGarmin.
The repository includes a Helm chart in the helm/ directory for Kubernetes deployments, a Nix flake (flake.nix) for Nix-based environments, and shell scripts for database backup (db_backup.sh). The .agents/ and .claude/ directories in the repository root indicate the project is configured for AI agent assistance in development. Mobile apps for iOS and Android are listed in the README as part of the platform alongside the web frontend.
The Licence: Source-Available, Not Open Source
The README states explicitly: "SparkyFitness is source-available, not open source." The licence is non-commercial and requires permission for commercial use. This is a meaningful distinction from open-source licences like MIT or Apache 2.0.
For personal and family use, the non-commercial restriction has no practical impact. For businesses or SaaS products that want to integrate or redistribute SparkyFitness, permission from the project maintainer is required. The README does not specify a contact process for commercial licensing inquiries.
This licence choice means SparkyFitness cannot be included in distributions like Linux package managers that require open-source licences, and it cannot be commercially hosted and sold as a service without permission. The comparison table the README includes positions this as a disadvantage relative to wger (which is AGPL-3.0) but an advantage over commercial apps because the code is readable and data export is free.
Family Sharing, Granular Permissions and the MCP Server
Family sharing is a stated design priority. The comparison table in the README shows SparkyFitness as supporting seven permission levels for family access, contrasting with most competing apps that have no family sharing or limited implementation. This covers scenarios like a parent tracking a child's nutrition without giving them access to their own data, or sharing workout records with a personal trainer.
The MCP server feature is listed as a standout capability in the README comparison. An MCP (Model Context Protocol) server allows an AI agent to interact with SparkyFitness data directly. The README describes this as "bring your own LLM," meaning users connect their own AI model rather than using a vendor-provided service, which aligns with the privacy-first positioning.
The SparkyAI chat features let users log food, exercise and body stats by typing or describing them to the interface, or by uploading a photo of a meal for automatic identification. Conversation history is retained for follow-up queries. The README marks AI features as currently in beta.
Where SparkyFitness Has Real Limitations
The non-commercial licence is the first constraint to evaluate. Any organization that wants to offer SparkyFitness as a service to others needs explicit permission.
The AI features are in beta. The README does not document accuracy rates for image-based meal logging or the reliability of the chat logging interface. Beta software changes between releases, which means workflows built around AI features may need adjustment after updates.
Integrations with services like Strava are marked as partially tested and Yazio uses an unofficial API. Unofficial or partially tested integrations carry higher failure risk when the third-party service changes its API.
Self-hosting requires ongoing maintenance: database backups (db_backup.sh is provided), updates when new releases ship, and server administration. The project ships frequent releases (v1.7.3, v1.7.2 and v1.7.1 were released in September 2026), which means updates are available often but also mean the software is evolving rapidly.
SparkyFitness Versus wger
wger is the closest open-source alternative. Both are self-hosted fitness tracking platforms with Docker deployments. The functional difference is that wger focuses on workout management with nutritional tracking as a secondary feature, while SparkyFitness covers nutrition, sleep, fasting, mood, cycle and body metrics together with exercise. wger is released under AGPL-3.0, which is a fully open-source licence without the commercial use restriction SparkyFitness carries.
The README comparison table rates wger as partially supporting several feature categories that SparkyFitness covers more completely, including family sharing (wger does not support it) and wearable sync (wger does not offer integrations comparable to SparkyFitness's list of connected services).
For a user who only needs workout logging with basic nutrition and does not want to manage a more complex application, wger is a simpler fit. SparkyFitness's broader feature set comes with more integration surface to maintain and a more involved setup.
Editorial conclusion
SparkyFitness is the right tool for households and privacy-conscious individuals who want all their health data on infrastructure they control, with no subscription and no vendor lock-in for export. The Docker Compose installation takes minutes on any Linux server or home machine. The non-commercial licence is the key constraint: commercial use requires permission from the project. Before deploying, verify that your wearable brands (Garmin, Fitbit, Apple Health, Google Health Connect and about fifteen others are listed) are supported for sync, and confirm that the beta AI features meet your expectations by testing the chat logging interface. The project ships weekly releases and the last push was on 2026-09-27, indicating active development.
Frequently asked questions
Can SparkyFitness be self-hosted?
Yes. The README provides Docker Compose instructions that get a SparkyFitness server running in minutes. The repository also includes a Helm chart for Kubernetes deployments. All health data stays on infrastructure the user controls.
What is a self-hosted alternative to MyFitnessPal?
SparkyFitness positions itself as a self-hosted alternative to MyFitnessPal, covering nutrition, exercise, sleep, fasting, mood and body metrics in one application. It stores all data on infrastructure you control, requires no subscription, and allows CSV import and free data export. The licence is non-commercial.
How do you install SparkyFitness?
Create a directory, download the docker-compose.yml from the repository, and run Docker Compose. The README gives the exact curl command: `curl -L -o docker-compose.yml https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/docker-compose.yml`. Full setup documentation is at codewithcj.github.io/SparkyFitness.
What is a good SparkyFitness alternative?
wger is a self-hosted fitness tracking platform with an AGPL-3.0 (fully open-source) licence. It focuses on workout management and basic nutrition, without the sleep, fasting, mood and family sharing features SparkyFitness includes. wger does not offer wearable integrations at the same breadth.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/codewithcj-sparkyfitness)