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, iOS, and the web.
- ๐ฑ Runs on Android, iOS, and web
- ๐ง AI planner tailors gym plans to your goals and body
- ๐ End-to-end encrypted social feeds (opt-in, privacy-first)
- ๐จ Material Design 3 via React Native Paper
- ๐ Internationalization with Tolgee (10+ languages)
- ๐๏ธโโ๏ธ Publish workouts, follow other users, and control your feed privacy
- โก Fast, modern UI with Expo Router and Redux Toolkit
LiftLog uses Tolgee for internationalization and translation management. Translation files are in app/i18n/
. A huge thanks to them providing an open source license to LiftLog โค๏ธ.
Available languages:
- ๐ฆ๐บ English (default)
- ๐ฎ๐น Italian
- ๐ฉ๐ช German
- ๐ท๐ธ Serbian
- ๐ซ๐ท French
- ๐ณ๐ฑ Dutch
- ๐ซ๐ฎ Finnish
- ๐ช๐ธ Spanish
- ๐ท๐บ Russian
- ๐จ๐ฟ Czech
Want to help translate? Open an issue or PR.
- Node.js (v18+): Download here
- Expo CLI:
npm install -g expo-cli
(Guide) - Android Studio (for Android) (Setup)
- Xcode (for iOS, macOS only) (Setup)
cd app
npm install
npm run android # For Android
npm run ios # For iOS (macOS only)
npm run web # For web
cd LiftLog.Api
dotnet run
See backend/LiftLog.Api/README.md
for backend details.
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/)
- Dotnet WebAPI for feeds, AI plans, and secure data
- End-to-end encrypted feeds (AES)
- OpenAI integration for workout plans
RevenueCat (RevenueCat/)
- Client library for in-app purchases/subscriptions
Website (site/)
- Source for liftlog.online and privacy policy
Contributions, issues, and feature requests are welcome! See CONTRIBUTING.md (or open an issue/PR).
Note: LiftLog was rewritten from the ground up in React Native. The previous .NET MAUI Blazor implementation is in the
dotnet
branch.