TLDR: self-host with Docker, strength imbalance detection, and per-joint load scoring.
Self-host with Docker
You wanted this for privacy and homelab. No Node toolchain now, one image works anywhere.
- run:
docker compose --env-file .env.docker.example up --build, open http://localhost:3000 - prebuilt if you prefer:
docker compose -f docker-compose.pull.yml up, pin withLIFTSHIFT_TAG=v1.5.0
Which lift is lagging?
For spotting the lagging side. Lives in the dashboard Strength Imbalance card.
- covers 13 pairs like bench vs row, squat vs bench. Green band is typical, dot is you
- uses last 90 days, needs 2 sessions per side so it stays quiet for beginners
- watch the closing/widening chip month to month, that is the part to act on
- dismissals last 90 days in localStorage
Catch overload before it bites
Lives next to balance in the dashboard.
- scores shoulders, elbows, knees, back, hips 0-100, lower is safer
- driven by 7d vs 30d volume, back-to-back days, and antagonist gap
- over 40 means think deload or rebalance. Hover a row for the exact numbers
Also in there
- Added Motra via XLSX drop, auto-detected from Other
- Added 7 PR types with gold and 30d silver in history
- Added hypertrophy scatter/bar for what to hit next
- Added onboarding down to 3 steps in one dialog

