Skip to content

Repository files navigation

LiftLog

App home page screenshot Workout page screenshot Stats page screenshot

Get it on Google Play Download on the App Store Get it on Obtainium


🚀 Overview

LiftLog is an intuitive, cross-platform gym weight tracking app built with React Native and Expo. It features Material Design 3, AI-powered workout planning, and secure, end-to-end encrypted social feeds. Available on Android and iOS.

Key Features

  • 🗿 Intuitive UI which lets you log your progression, without getting in your way
  • Entirely device local workouts, no waiting for sign in or downloads
  • 📱 Runs on Android and iOS. Web support was removed in this commit
  • 🔒 End-to-end encrypted social feeds (opt-in, privacy-first)
  • 🎨 Material Design 3 via React Native Paper
  • 🌐 Internationalization with Tolgee/Weblate (10+ languages)
  • 🏋️‍♂️ Publish workouts, follow other users, and control your feed privacy
  • 🧠 AI planner tailors gym plans to your goals and body
  • ⚡ Fast, modern UI with Expo Router and Redux Toolkit

🌍 Translations

LiftLog uses Weblate for internationalization and translation management. Anyone can create an account and start translating!

Translation status

Want to help translate? Create an account on Weblate!


⚡ Quickstart

Prerequisites

  1. Node.js (v18+): Download here
  2. Expo CLI: npm install -g expo-cli (Guide)
  3. Android Studio (for Android) (Setup)
  4. Xcode (for iOS, macOS only) (Setup)

Run the App

cd app
npm install
npm run android   # For Android
npm run ios       # For iOS (macOS only)

Run the Backend API

See backend/README.md for more information on running the backend.


🗂️ Project Structure

LiftLog is organized into several projects:

Frontend (app/)

  • Main React Native app (Expo)
  • Components: components/ (layout, presentation, smart)
  • State: store/ (Redux Toolkit)
  • Services: services/ (API, business logic)
  • Hooks: hooks/ (custom React hooks)
  • Translations: i18n/ (Tolgee)
  • Navigation: Expo Router

Backend (LiftLog.Api/)

For documentation on running the backend for local development, see the README

  • Dotnet WebAPI for feeds, AI plans, and secure data
  • End-to-end encrypted feeds (AES)
  • Claude integration for workout plans

RevenueCat (RevenueCat/)

  • Client library for in-app purchases/subscriptions

Website (site/)

  • Source for liftlog.online and privacy policy

📊 Stats

Star History Chart

🤝 Contributing

Contributions, issues, and feature requests are welcome! See CONTRIBUTING.md (or open an issue/PR).

AI/LLM-assisted contributions are welcome, but issues and feature requests should be written in your own words - see the AI Usage Policy.

📚 Documentation

  • Plan Files - Documents the .liftlogplan file format, and how to generate plans with an AI for import into the app.
  • Feed Process - Documents how the feed and sharing works, especially around e2e encryption.
  • Remote Backup - Documents how to connect LiftLog to a remote backup server.
  • Plaintext Export - Documents how to export your data as plaintext.
  • Workout Worker - Documents the WorkoutWorker, an event based bridge between native and JS which powers the Android persistent notifications.
  • Storage Migrations - Documents how on-device data is versioned and migrated, and what to do when changing a stored model.

💬 Support & Community


Note: LiftLog was rewritten from the ground up in React Native. The previous .NET MAUI Blazor implementation is in the dotnet branch.

About

A cross platform app for tracking your lifts in the gym

Topics

Resources

Contributing

Stars

532 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages