A privacy-first, self-hosted workout tracking application similar to MacroFactor. Users can run both the UI and backend on their own servers to maintain complete control over their fitness and nutrition data.
- Self-Hosted: Full control over infrastructure and data
- Multi-Platform: Native app (iOS/Android) + Web interface
- Privacy-Focused: Your data, your server, zero cloud dependency
- Developer-Friendly: Easy to deploy, well-documented APIs
-
Workout Logging
- Exercise tracking with sets/reps/weight
- Pre-built exercise database
- Custom exercises
-
Macro/Calorie Tracking
- Food database integration
- Barcode scanning
- Quick log shortcuts
-
Progress Analytics
- Weight trends
- Volume progression
- Macro adherence charts
-
User Management
- Single or multi-user support per instance
- Basic auth
- Mobile: React Native (Expo) or Flutter
- Web: React + TypeScript
- State Management: Zustand or Redux
- UI Framework: NativeBase (mobile) + Tailwind (web)
- Runtime: Go (Gin web framework)
- Database:
- Default: SQLite (zero config, perfect for single users)
- Optional: PostgreSQL via Docker (for advanced deployments)
- Auth: JWT tokens
- API: REST API (GraphQL optional)
- Deployment: Docker + Docker Compose
- File Storage: Local filesystem or MinIO (S3-compatible)
SQLite (Default)
- Zero external dependencies
- Perfect for personal/single-user instances
- Minimal system requirements
- File-based storage
PostgreSQL (Optional)
- Via Docker Compose configuration
- For users wanting multi-instance deployments
- Better concurrency handling
- Advanced features like full-text search
lyftr/
├── backend/ # REST API service
├── web/ # React web app
├── mobile/ # React Native/Flutter app
├── docs/ # Documentation & deployment guides
├── docker-compose.yml
└── README.md