- About
- Project Origin & Motivation
- Quick Start
- Exercise Database Import
- Project Architecture
- Roadmap
- Contributing
- Deployment
- Resources
- License
- Sponsor This Project
A comprehensive fitness coaching platform that allows create workout plans for you, track progress, and access a vast exercise database with detailed instructions and video demonstrations.
This project was born from a personal mission to revive and improve upon a previous fitness platform. As the primary contributor to the original workout.lol project, I witnessed its journey and abandonment. π₯Ή
- ποΈ Original Contributor: I was the main contributor to workout.lol
- πΌ Business Challenges: The original project faced major hurdles with exercise video partnerships (no reliable video provider) could be established
- π° Project Sale: Due to these partnership issues, the project was sold to another party
- π Abandonment: The new owner quickly realized that exercise video licensing costs were prohibitively expensive, began to be sick and abandoned the entire project
- π Revival Attempts: For the past 9 months, I've been trying to reconnect with the new stakeholder
- π§ Radio Silence: Despite multiple (15) attempts, there has been no response
- π New Beginning: Rather than let this valuable work disappear, I decided to create a fresh, modern implementation
Someone had to step up.
The opensource fitness community deserves better than broken promises and abandoned platforms.
I'm not building this for profit.
This isn't just a revival : it's an evolution. workout.cool represents everything the original project could have been, with the reliability, modern approach, and maintenance that the fitness open source community deserves.
I'm not just a developer : I'm a user who refused to let our community down.
I experienced firsthand the frustration of watching a beloved tool slowly disappear. Like many of you, I had workouts saved, progress tracked, and a routine built around the platform.
If you were part of the original workout.lol community, welcome back! If you're new here, welcome to the future of fitness platform management.
-
Clone the repository
git clone https://github.com/Snouzy/workout-cool.git cd workout-cool
-
Install dependencies
pnpm install
-
Copy environment variables
cp .env.example .env
-
Start everything for development:
make dev
- This will start the database in Docker, run migrations, seed the DB, and start the Next.js dev server.
- To stop services run
make down
-
Open your browser Navigate to http://localhost:3000
The project includes a comprehensive exercise database. To import a sample of exercises:
- Prepare your CSV file
Your CSV should have these columns:
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
You can use the provided example.
# Import exercises from a CSV file
pnpm run import:exercises-full /path/to/your/exercises.csv
# Example with the provided sample data
pnpm run import:exercises-full ./data/sample-exercises.csv
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
157,"Fentes arrières à la barre","Barbell Reverse Lunges","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,TYPE,STRENGTH
157,"Fentes arrières à la barre","Barbell Reverse Lunges","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,PRIMARY_MUSCLE,QUADRICEPS
Want unlimited exercise for local development ?
Just ask chatGPT the prompt from ./scripts/import-exercises-with-attributes.prompt.md
This project follows Feature-Sliced Design (FSD) principles with Next.js App Router:
src/
βββ app/ # Next.js pages, routes and layouts
βββ processes/ # Business flows (multi-feature)
βββ widgets/ # Composable UI with logic (Sidebar, Header)
βββ features/ # Business units (auth, exercise-management)
βββ entities/ # Domain entities (user, exercise, workout)
βββ shared/ # Shared code (UI, lib, config, types)
βββ styles/ # Global CSS, themes
- Feature-driven: Each feature is independent and reusable
- Clear domain isolation:
shared
βentities
βfeatures
βwidgets
βapp
- Consistency: Between business logic, UI, and data layers
features/
βββ exercise-management/
βββ ui/ # UI components (ExerciseForm, ExerciseCard)
βββ model/ # Hooks, state management (useExercises)
βββ lib/ # Utilities (exercise-helpers)
βββ api/ # Server actions or API calls
We welcome contributions! Please see our Contributing Guide for details.
- Create an issue for the feature/bug you want to work on
- Assign yourself to the issue
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes following our code standards
- Commit your changes (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request (one issue = one PR)
- Address review comments promptly
π For complete contribution guidelines, see our Contributing Guide
- Follow TypeScript best practices
- Use Feature-Sliced Design architecture
- Write meaningful commit messages
- Add tests for new features
# Build the Docker image
docker build -t yourusername/workout-cool .
# Run the container
docker run -p 3000:3000 --env-file .env.production yourusername/workout-cool
# Build the application
pnpm build
# Run database migrations
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
# Start the production server
pnpm start
This project is licensed under the MIT License. See the LICENSE file for details.
This is about rebuilding what we lost, together.
- π Star this repo to show the world our community is alive and thriving
- π¬ Join our Discord to connect with other fitness enthusiasts and developers
- π Report issues you find. I'm listening to every single one
- π‘ Share your feature requests finally, someone who will actually implement them !
- π Spread the word to fellow fitness enthusiasts who lost hope
- π€ Contribute code if you're a developer : let's build this together
Appear in the README and on the website as supporter by donating:
If you believe in open-source fitness tools and want to help this project thrive,
consider buying me a coffee β or sponsoring the continued development.
Your support helps cover hosting costs, exercise database updates, and continuous improvement.
Thank you for keeping workout.cool alive and evolving πͺ