Skip to content

Releases: bndct-devops/lifty

v1.0.0 - Initial Release

02 Mar 17:11

Choose a tag to compare

lifty v1.0.0

Self-hosted, privacy-first workout tracker. No accounts, no cloud, no subscriptions.

Workouts

  • Start a workout, log sets with weight + reps, previous session shown inline
  • Reorder exercises mid-workout, rename workouts, add notes
  • Mark rest days from the home screen
  • Celebration modal on finish with stats summary

Rest Timer

  • Configurable duration (60 / 90 / 120 / 180s) per profile
  • Background-accurate countdown -- stays correct after screen lock or tab switch
  • Web Audio ding + vibration on finish
  • Push notification fires even when screen is off (Android + iOS PWA)

Progress & Analytics

  • Full workout history with monthly calendar view
  • Per-workout detail -- stats, muscle group breakdown, sets with estimated 1RM
  • PRs per exercise (Epley 1RM) grouped by body part
  • Weekly / daily volume bar chart, muscle group donut, 26-week activity heatmap

Profiles & Settings

  • Multiple profiles on a single instance
  • Per-profile: unit (kg / lbs), theme, avatar colour, week start day, rest duration
  • 12 themes -- Dark, Light, AMOLED, Tokyo Night, Dracula, Nord, Gruvbox, Rose Pine, Catppuccin Mocha / Macchiato / Frappe / Latte
  • Liquid Glass mode (iOS 26-style frosted glass on all sheets)
  • Animations toggle

Import & Export

  • Strong CSV import -- bring in your full workout history
  • CSV export per profile

Security

  • Optional instance password (LIFTY_PASSWORD env var) with JWT lock screen
  • Per-profile PIN support
  • Zero friction by default for local/VPN use

PWA

  • Installable on iOS and Android
  • Offline support via service worker
  • Background push notifications for rest timer

Docker Compose quick start -- see README for full setup.

services:
  backend:
    image: ghcr.io/bndct-devops/lifty-backend:latest
    volumes:
      - /your/data/path:/data
    environment:
      - LIFTY_DB=/data/lifty.db
  frontend:
    image: ghcr.io/bndct-devops/lifty-frontend:latest
    ports:
      - "3420:80"
    depends_on:
      - backend