https://github.com/liammorrow/liftlog
A cross platform app for tracking your lifts in the gym
https://github.com/liammorrow/liftlog
app blazor dotnet gym maui
Last synced: 2 months ago
JSON representation
A cross platform app for tracking your lifts in the gym
- Host: GitHub
- URL: https://github.com/liammorrow/liftlog
- Owner: LiamMorrow
- License: agpl-3.0
- Created: 2021-05-27T08:52:25.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2026-02-05T08:57:11.000Z (4 months ago)
- Last Synced: 2026-02-05T20:15:07.869Z (4 months ago)
- Topics: app, blazor, dotnet, gym, maui
- Language: TypeScript
- Homepage: https://liftlog.online
- Size: 44 MB
- Stars: 361
- Watchers: 8
- Forks: 50
- Open Issues: 72
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# LiftLog

---
## 🚀 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, iOS, and the web.
### 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, iOS, and web
- 🔒 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
📍 **[View the Roadmap](./ROADMAP.md)** to see what's planned!
---
## 🌍 Translations
LiftLog uses [Weblate](https://translate.liftlog.online/) for internationalization and translation management. Anyone can create an account and start translating!
[](https://translate.liftlog.online/engage/liftlog/)
Want to help translate? [Create an account on Weblate!](https://translate.liftlog.online/)
---
## ⚡ Quickstart
### Prerequisites
1. **Node.js** (v18+): [Download here](https://nodejs.org/)
2. **Expo CLI**: `npm install -g expo-cli` ([Guide](https://docs.expo.dev/get-started/set-up-your-environment/))
3. **Android Studio** (for Android) ([Setup](https://reactnative.dev/docs/environment-setup))
4. **Xcode** (for iOS, macOS only) ([Setup](https://reactnative.dev/docs/environment-setup?os=macos&platform=ios))
### Run the App
```bash
cd app
npm install
npm run android # For Android
npm run ios # For iOS (macOS only)
npm run web # For web
```
### Run the Backend API
See [`backend/README.md`](./backend/README.md) for more information on running the backend.
---
## 🗂️ Project Structure
LiftLog is organized into several projects:
### Frontend ([app/](./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/](./backend/))
For documentation on running the backend for local development, see [the README](./backend/README.md)
- **Dotnet WebAPI** for feeds, AI plans, and secure data
- **End-to-end encrypted feeds** (AES)
- **Claude integration** for workout plans
### RevenueCat ([RevenueCat/](./backend/RevenueCat/))
- **Client library** for in-app purchases/subscriptions
### Website ([site/](./site))
- **Source for liftlog.online** and privacy policy
---
## 📊 Stats
---
## 🤝 Contributing
Contributions, issues, and feature requests are welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md) (or open an issue/PR).
## 📚 Documentation
- [Feed Process](./docs/FeedProcess.md) - Documents how the feed and sharing works, especially around e2e encryption.
- [Remote Backup](./docs/RemoteBackup.md) - Documents how to connect LiftLog to a remote backup server.
- [Plaintext Export](./docs/PlaintextExport.md) - Documents how to export your data as plaintext.
- [Workout Worker](./docs/WorkoutWorker.md) - Documents the WorkoutWorker, an event based bridge between native and JS which powers the Android persistent notifications.
## 💬 Support & Community
- [Discord](https://discord.gg/YHhKEnEnFa)
- [App Website](https://liftlog.online)
- [Try Demo](https://app.liftlog.online)
---
> **Note:** LiftLog was rewritten from the ground up in React Native. The previous .NET MAUI Blazor implementation is in the `dotnet` branch.

