Open source workout tracking web app focused on simplicity and progress visualization.
Open Workouts is a modern, open-source fitness tracking application built with cutting-edge web technologies. Our mission is to provide a clean, intuitive platform for users to track their workout progress without the complexity and clutter found in traditional fitness apps.
- Simplicity First: Clean, distraction-free interface
- Progress Focused: Meaningful visualizations of your fitness journey
- Open Source: Transparent development and community-driven features
- Privacy Conscious: Your data belongs to you
This project uses a monorepo structure managed with pnpm workspaces:
open-workout/
├── apps/
│ └── web-app/ # Next.js 15 web application
├── shared/ # Shared packages and utilities (future)
├── pnpm-workspace.yaml # Workspace configuration
└── package.json # Root package scripts
apps/web-app/
- Main Next.js web application- Next.js 15 with App Router & Turbopack
- React 19 + TypeScript + Tailwind CSS v4
- Supabase authentication & database
- shadcn/ui components (New York style)
- Dark mode by default
shared/types/
- Shared TypeScript definitionsshared/utils/
- Common utility functionsshared/ui/
- Reusable UI componentsshared/config/
- Configuration presets
- Node.js 20+ (Node 18 reached EOL April 2025)
- pnpm package manager
- Supabase account for authentication & database
- Clone the repository:
git clone <repository-url>
cd open-workout
- Install dependencies:
pnpm install
- Set up environment (see apps/web-app/README.md for details):
cd apps/web-app
cp .env.local.example .env.local
# Add your Supabase credentials
- Start development:
# From root directory
pnpm dev
# This will start all applications
# Development
pnpm dev # Start all applications in development mode
pnpm build # Build all applications for production
# Individual app commands
cd apps/web-app
pnpm dev # Start only the web app
pnpm build # Build only the web app
pnpm lint # Run ESLint
- User Authentication
- Email/password registration with verification
- Secure login with session management
- Route protection and middleware
- Sign out with proper redirect
- Modern UI/UX
- Dark mode by default
- Responsive design (mobile-first)
- Loading states and error handling
- Sonner toast notifications
- Developer Experience
- TypeScript throughout
- Philosophy of Software Design principles
- Comprehensive documentation
- Form validation with React Hook Form + Zod
- Password reset functionality
- User profile management
- Basic workout logging
- Dashboard improvements
- Workout Management
- Custom workout creation
- Exercise library
- Set and rep tracking
- Progress Visualization
- Charts and graphs
- Progress photos
- Personal records tracking
- Social Features
- Workout sharing
- Community challenges
- Achievement system
- Framework: Next.js 15 (App Router, Turbopack)
- Language: TypeScript
- UI Library: React 19
- Styling: Tailwind CSS v4
- Components: shadcn/ui (New York style)
- Forms: React Hook Form + Zod validation
- Notifications: Sonner
- Authentication: Supabase Auth
- Database: Supabase PostgreSQL
- Real-time: Supabase subscriptions
- Storage: Supabase Storage (planned)
- Package Manager: pnpm (workspace support)
- Linting: ESLint (Next.js config)
- Type Checking: TypeScript strict mode
- Code Quality: Philosophy of Software Design principles
- Web App README - Detailed setup and development guide
- Architecture Guide - System design and patterns
- CLAUDE.md - AI assistant development guidelines
We welcome contributions! Please follow these guidelines:
- Code Quality: Follow the Philosophy of Software Design principles
- Documentation: Include comprehensive comments and documentation
- Testing: Write tests for new features (when testing is set up)
- Type Safety: Maintain strict TypeScript usage
- Design: Follow the established patterns and UI guidelines
- Fork the repository
- Create a feature branch
- Make your changes following our coding standards
- Test your changes thoroughly
- Submit a pull request with detailed description
MIT License - see LICENSE file for details.
- Built with Next.js and React
- Authentication powered by Supabase
- UI components from shadcn/ui
- Design principles from Philosophy of Software Design
Open Workouts - Making fitness tracking simple, transparent, and effective. 💪