unsubbed.co

SparkyFitness

SparkyFitness is a TypeScript-based application that provides comprehensive fitness tracking.

Privacy-first fitness tracking, honestly reviewed. No marketing fluff, just what you get when your health data stays on your server.

TL;DR

  • What it is: Open-source self-hosted fitness tracking platform — nutrition, exercise, hydration, sleep, fasting, mood, and body measurements — positioned as a privacy-first alternative to MyFitnessPal [1].
  • Who it’s for: Privacy-conscious individuals and families who want full control of their health data and are willing to manage their own server [1][2].
  • Cost savings: MyFitnessPal Premium runs ~$19.99/month per user. SparkyFitness self-hosted covers a whole family on a $5–10/month VPS with no per-user fees [1].
  • Key strength: Unusually wide scope for a project at this stage — native iOS and Android apps, 13+ device integrations (Fitbit, Garmin, Withings, Apple Health, Google Health Connect), family multi-user support, and an AI food-logging assistant with image recognition [1].
  • Key weakness: License is ambiguous (NOASSERTION in the repository metadata; the docs say “check the repository for license details” without specifying which one), the AI features are explicitly Beta, and no third-party production reviews exist yet [1][2][3].

What is SparkyFitness

SparkyFitness is a self-hosted fitness tracking platform covering the full daily health stack: food logging, exercise recording, water intake, sleep, fasting, mood, and body measurements. The GitHub description frames it plainly — “Built for Families. Powered by AI. Track food, fitness, water, and health — together” — which is a more accurate pitch than the documentation site’s opener about being “comprehensive” [1][2].

The project ships as three parts: a backend server (Node.js + Express + PostgreSQL), a web frontend (React 18 + TypeScript + Vite + Tailwind CSS), and native mobile apps for iOS and Android [2]. That last point — actual native mobile apps, not just a mobile-responsive website — separates SparkyFitness from most self-hosted fitness tools, which are web-only [1].

The MyFitnessPal comparison is the obvious hook. MyFitnessPal is the dominant calorie-tracking app, but it’s been owned by Francisco Partners (private equity) since 2020 and its free tier has been progressively stripped. Premium runs around $19.99/month per account, and there’s no family plan — every household member needs their own subscription. SparkyFitness’s pitch is: same tracking categories, data stays on your hardware, no monthly fee beyond VPS costs, and one instance covers the whole family [1][2].

The project sits at 2,929 GitHub stars [3]. One flag worth raising before deployment: the license field in the GitHub metadata reads “NOASSERTION,” and the documentation site says to “check the repository for license details” without actually naming a license [2][3]. The README calls it “open source software” but doesn’t specify MIT, GPL, Apache, or anything else. Verify the license file directly before deploying outside personal use.


Why people choose it

No third-party reviews of SparkyFitness were available for this article — the project is recent enough that it hasn’t been picked up by tech review outlets. The following is based entirely on the README and official documentation [1][2].

Data sovereignty. Every meal, workout, sleep session, and body measurement stays in your PostgreSQL database on your infrastructure. MyFitnessPal’s privacy policy allows broad use of aggregated health data for analytics — a normal SaaS trade-off, but not one everyone accepts with personal health data [1].

Family tracking done right. SparkyFitness explicitly supports multiple user profiles under one instance, with a dedicated partner/family sharing feature [1][2]. Most SaaS fitness apps treat family plans as an upsell; SparkyFitness bakes it into the self-hosted model from the start. For a household where two, three, or four people are each paying MyFitnessPal separately, this is the clearest cost argument.

Device integration breadth. The list is longer than you’d expect from a project at this star count: Apple Health, Google Health Connect, Fitbit, Garmin Connect, Withings, Polar Flow (partially tested), Hevy (not tested), and food databases via OpenFoodFacts, USDA, Fatsecret, and Nutritionix [1]. It also connects to self-hosted recipe apps Mealie and Tandori — useful if you’re already running a home-lab stack. The asterisks matter: “partially tested” and “not tested” flags appear in the README, which is honest but signals that the wearable integrations haven’t all been validated in the real world.

The AI assistant. SparkyAI is a conversational interface for logging: describe what you ate, log a workout by chatting, or photograph a meal for automatic food recognition. It supports OpenAI, Anthropic, and Google as AI backends [1][2]. The README labels it Beta — usable but not production-stable. For someone who’d rather photograph a plate than search a food database, it’s a genuinely useful shortcut when it works.


Features

Based on the README and documentation site:

Core tracking:

  • Nutrition diary — meals, custom foods, food database search, nutrient display settings [1][2]
  • Exercise logging — workout recording, exercise database [1][2]
  • Hydration — water intake tracking [1]
  • Sleep, fasting, mood tracking [1]
  • Body measurements — weight, measurements, progress visualization [1][2]
  • Daily calorie goal and goal setting [2]
  • Daily check-ins [2]
  • Long-term reports and interactive charts [1][2]

Authentication and security:

  • OIDC (OAuth/SSO), TOTP, Passkey, and full MFA support [1]
  • JWT authentication with Row Level Security at the database layer [1][2]

Multi-user and sharing:

  • Multiple user profiles under one instance [1]
  • Partner/family sharing [2]

Device and food integrations:

  • Apple Health (iOS), Google Health Connect (Android) [1]
  • Fitbit, Garmin Connect, Withings [1]
  • Polar Flow (partially tested), Hevy (not tested) [1]
  • OpenFoodFacts, USDA, Fatsecret, Nutritionix food databases [1]
  • Mealie and Tandori (self-hosted recipe tools) [1]

AI assistant (Beta):

  • Natural language food and exercise logging via chat [1][2]
  • Food image recognition for meal logging [1][2]
  • Conversation history for follow-ups [1]
  • Multi-provider AI: OpenAI, Anthropic, Google [2]

Deployment:

  • Docker Compose (recommended path) [1]
  • Portainer, Synology, Proxmox, Kubernetes options documented [2]
  • REST API available [3]
  • Light and dark themes [1]
  • Native iOS and Android apps [1]

Pricing: SaaS vs self-hosted math

SparkyFitness has no licensing fee for personal use (pending license clarification — see above).

MyFitnessPal pricing:

  • Free tier: calorie and basic macro tracking available; micronutrient detail, premium reports, and meal planning are paywalled
  • Premium: ~$19.99/month or ~$79.99/year per user
  • No family plan; each household member needs a separate account

SparkyFitness self-hosted:

  • Software: $0
  • VPS: $5–10/month (Hetzner CX22, Contabo, or DigitalOcean Droplet at 2GB RAM)
  • Your time for setup and maintenance

The family math:

Four MyFitnessPal Premium subscriptions = ~$80/month or ~$960/year. One SparkyFitness instance on a $6/month VPS = $72/year, covers the whole family. That’s roughly $888/year saved, or nearly $4,500 over five years, assuming everyone actually uses it consistently.

For a solo user: $19.99/month vs ~$6/month = about $168/year saved, or ~$840 over five years. The break-even on a few hours of setup is fast.

The caveat that applies to every self-hosted tool: this math only works if you maintain the server. Database backups, Docker updates, the occasional troubleshooting session — these aren’t free, they’re paid in time instead of money. Factor that in honestly.


Deployment reality check

The README’s quick start is four shell commands: create a folder, download the docker-compose.yml and .env files, optionally edit .env for credentials and ports, then docker compose up -d. The app is accessible at http://localhost:8080 [1]. That’s a legitimately low-friction install path.

The documentation site covers a range of deployment targets beyond bare Docker Compose: Portainer, Synology NAS, Proxmox, and Kubernetes [2]. The inclusion of Synology and Proxmox guides indicates the project is targeting home-lab users, not just cloud VPS setups — which aligns with the family-first positioning.

What you actually need:

  • A Linux VPS or home server with Docker and docker-compose installed
  • 2GB RAM minimum (the stack bundles a PostgreSQL container alongside the application)
  • A reverse proxy (Caddy, nginx, or Traefik) and a domain name for HTTPS and external access
  • An API key from OpenAI, Anthropic, or Google if you want SparkyAI — the AI features require a commercial AI backend [2]

What can go sideways:

  • The license issue. “NOASSERTION” in the repository metadata and “check the repository” in the docs is not a clear answer for anyone deploying outside purely personal use [2][3]. Verify the actual LICENSE file before proceeding.
  • SparkyAI is Beta. Conversational logging and image recognition are the features most likely to have rough edges or fail silently [1].
  • Untested integrations. Hevy is listed as “not tested,” Polar Flow as “partially tested” [1]. Don’t assume a wearable syncs correctly until you’ve verified it personally.
  • AI backend phones out. SparkyAI sends food images and queries to a commercial AI provider (OpenAI, Anthropic, or Google) [2]. This partially undercuts the privacy-first story — your food logs stay local, but meal photos go to a third party.
  • No community benchmarks. With no third-party reviews and a relatively small star count, there’s limited public data on real-world failure rates, upgrade stability, or long-term database integrity.

Realistic setup time for a technical user: 30–60 minutes to a working Docker Compose instance. For a non-technical founder following a guide: 2–4 hours including domain setup and reverse proxy, or a one-time deployment service if you’d rather not touch a terminal.


Pros and Cons

Pros

  • Native mobile apps. iOS and Android apps ship alongside the web interface [1]. Most self-hosted fitness tools are web-only; native apps make daily logging realistic for non-technical household members.
  • Wide wearable integration. Apple Health, Google Health Connect, Fitbit, Garmin, and Withings cover the mainstream fitness wearable market [1].
  • Family-first multi-user. Multiple profiles and partner sharing built in from day one, not an add-on [1][2].
  • Comprehensive tracking scope. Nutrition, exercise, water, sleep, fasting, mood, body measurements, and goals in one self-hosted instance [1]. Most open-source fitness tools cover one or two categories.
  • AI food logging with image recognition. SparkyAI is Beta, but image-based meal logging is a feature MyFitnessPal charges for [1][2].
  • Strong authentication. OIDC, TOTP, Passkey, and full MFA — more complete than most self-hosted tools at this star count [1][2].
  • Self-hosted recipe integration. Mealie and Tandori connectors fit it into an existing home-lab stack [1].
  • Clean Docker Compose install. Four commands to a working instance is a genuine low-friction path [1].
  • Database-level security. Row Level Security isolates multi-user data at the PostgreSQL layer [2].

Cons

  • License is unresolved. “NOASSERTION” plus “check the repository” is not a license declaration. This needs verification before any deployment beyond personal use [2][3].
  • AI features require external API keys. SparkyAI isn’t self-contained — it phones out to commercial AI providers, partially defeating the privacy pitch for food image data [2].
  • AI features are Beta. Conversational logging and image recognition are explicitly not production-stable [1].
  • Some integrations are untested. Hevy (not tested) and Polar Flow (partially tested) are listed in the integration list but not validated [1].
  • No third-party reviews. Without independent write-ups, there’s no outside validation of upgrade stability, long-term reliability, or production-scale behavior.
  • Solo-maintainer risk. No company backing, no disclosed team structure [3]. For an application where health data continuity matters, this is a real long-term concern.
  • 2,929 stars. Healthy for an early project, but small enough that edge-case bugs may not surface or get fixed quickly [3].

Who should use this / who shouldn’t

Use SparkyFitness if:

  • Your household has two or more people paying MyFitnessPal Premium separately. The family multi-user model pays off immediately.
  • You own a Fitbit, Garmin, or Apple Watch and want sync data stored on your own server.
  • You’re already running a home lab (Synology NAS, Proxmox) where Docker deployment is routine.
  • You want an AI food-logging assistant and are comfortable with Beta-grade reliability.
  • You’re a developer who wants a full-stack health tracking codebase (React + Node.js + PostgreSQL) to extend.

Skip it for now if:

  • You need guaranteed long-term data integrity for medical or clinical tracking. The project needs more real-world mileage before trusting serious health decisions to it.
  • You can’t troubleshoot a broken Docker container at an inconvenient time.
  • You’re deploying for an organization and the license situation isn’t resolved. Check the license file first.

Skip it (stay on MyFitnessPal) if:

  • You want the world’s largest food database with no server management. MyFitnessPal’s database is unmatched at scale.
  • You need a mainstream support team and polished mobile UX for non-technical users who won’t tolerate rough edges.
  • You won’t touch a server, ever.

Skip it (use Cronometer) if:

  • You want detailed micronutrient tracking — vitamins, minerals, amino acids — with no infrastructure overhead. Cronometer Free covers this well without a server.

Alternatives worth considering

  • MyFitnessPal — the incumbent. Largest food database, strongest mobile UX, ~$19.99/month Premium, no family plan, data goes to Francisco Partners.
  • Cronometer — stronger micronutrient detail, cleaner free tier, self-contained web app. Less focused on exercise tracking, no family support.
  • Waistline — open-source Android food diary. Simpler, web-only, no device integrations. Fine for solo calorie counting, not a full-stack replacement.
  • Grocy — not a fitness tracker, but covers kitchen/pantry management. Pairs naturally with SparkyFitness in a self-hosted home stack.
  • Nextcloud + Health plugin — if you’re already running Nextcloud, the Health app covers basic tracking. Less purpose-built but zero additional infrastructure.
  • FitTrackee — open-source activity tracker focused on outdoor sports (cycling, running, hiking). Not a nutrition tracker; complements rather than replaces SparkyFitness.

For a privacy-conscious family escaping MyFitnessPal subscriptions, the practical shortlist is SparkyFitness vs Cronometer Free. Cronometer’s free tier requires no server and covers micronutrients well. SparkyFitness wins on family support, wearable integrations, and AI food logging, but requires server management and carries the license uncertainty.


Bottom line

SparkyFitness is the most complete self-hosted fitness tracker available today. It covers more tracking categories than any comparable open-source alternative, ships native mobile apps that most self-hosted tools skip, and integrates with the full mainstream wearable ecosystem. The family multi-user model is a genuine differentiator — it’s the right answer for any household paying multiple MyFitnessPal Premium subscriptions. The caveats are real: the license needs clarification before organizational use, SparkyAI is Beta and requires a commercial AI API key that sends data outside your server, some wearable integrations are untested, and the project lacks the independent review track record that would validate production reliability at scale. At 2,929 stars, it’s a serious project — not a weekend experiment. For a privacy-minded family comfortable with Docker deployment, it’s the strongest option in the category. For everyone else, verify the license and budget time for maintenance windows.

If the deployment is the blocker, that’s exactly what upready.dev handles for clients. One-time setup fee, you own the infrastructure.


Sources

  1. SparkyFitness GitHub README — primary feature documentation, quick start, integrations list, architecture, AI assistant description. https://github.com/codewithcj/sparkyfitness
  2. SparkyFitness Documentation Site — install guides (Docker Compose, Portainer, Synology, Proxmox, Kubernetes), feature reference, authentication, deployment options, AI configuration. https://codewithcj.github.io/SparkyFitness
  3. SparkyFitness Merged Profile — GitHub metadata: 2,929 stars, license NOASSERTION, canonical features list including REST API, SSO, Docker, mobile app, charts, reports. (pipeline-aggregated data)

Note: No third-party editorial reviews of SparkyFitness were available in the source data for this article. All claims are grounded in primary sources — the GitHub README and official documentation.

Features

Authentication & Access

  • Single Sign-On (SSO)
  • Two-Factor Authentication

Integrations & APIs

  • REST API

Customization & Branding

  • Themes / Skins

Analytics & Reporting

  • Charts & Graphs
  • Reports

Mobile & Desktop

  • Mobile App