finds.dev← search

// the find

wger-project/wger

★ 6,395 · Python · AGPL-3.0 · updated Jul 2026

Self hosted FLOSS fitness/workout, nutrition and weight tracker

wger is a self-hosted workout and nutrition tracker built on Django, with companion Flutter apps on Android, iOS, F-Droid, and Flathub. It covers the full fitness-tracking stack: workout routines with progressive overload rules, calorie logging against Open Food Facts, body measurements, and basic gym management for multi-user installs. The target is anyone who wants Myfitnesspal/Strong-style tracking without handing their data to a VC-backed company.

The automatic weight progression rules in routines are the real differentiator — most self-hosted trackers make you do that math yourself. The REST API is well-documented and supports PowerSync for offline-first sync to the mobile apps, which is architecturally more honest than most hobby projects that bolt on a mobile UI as an afterthought. The CI pipeline is solid: tests, linting, CodeQL, and Docker image builds all run on PRs, and coverage is tracked via Coveralls. Weblate integration for community translations covers 30+ locales, which matters for a fitness app where units and terminology vary by region.

The web UI is visibly dated — it mixes Bootstrap with jQuery Mobile-era icon PNGs and an ajax-loader.gif, which signals the frontend hasn't had a meaningful pass in years. The Docker setup for production uses Celery, which adds real operational complexity (you're now running a message broker) for what is essentially periodic background jobs that a cron + management command would handle fine at self-hosted scale. The Open Food Facts integration requires running your own import pipeline with a separate docker-compose stack, and the nutrition database quality is hit-or-miss depending on what's been contributed for your region. There's no built-in data export to open formats (CSV, JSON) from the UI — you can get it via API, but that's a friction point for users who just want to take their data somewhere else.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →