Workout.cool
Modern fitness coaching platform with comprehensive exercise database
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
Table of Contents
- About
- Project Origin & Motivation
- Quick Start
- Exercise Database Import
- Project Architecture
- Contributing
- Self-hosting
- Resources
- License
- Sponsor This Project
Contributors
Sponsors
They are helping making workout.cool free and open-source for everyone :
About
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.
🎯 Project Origin & Motivation
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. 🥹
The Story Behind workout.cool
- 🏗️ 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
Why workout.cool Exists
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.
👥 From the Community, For the Community
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.
My Mission: Rescue & Revive.
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.
Quick Start
Prerequisites
Installation
Clone the repository
git clone https://github.com/Snouzy/workout-cool.git cd workout-coolChoose your installation method:
🐳 With Docker
Docker Installation
Copy environment variables
cp .env.example .envStart 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
💻 Without Docker
Manual Installation
Install dependencies
pnpm installCopy environment variables
cp .env.example .envSet up PostgreSQL database
- If you don't already have it, install PostgreSQL locally
- Create a database named
workout_cool:createdb -h localhost -p 5432 -U postgres workout_cool
Run database migrations
npx prisma migrate devSeed the database (optional)
See the - Exercise database import section
Start the development server
pnpm devOpen your browser Navigate to http://localhost:3000
Exercise Database Import
The project includes a comprehensive exercise database. To import a sample of exercises:
Prerequisites for Import
- 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 Commands
# 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
CSV Format Example
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 with the prompt from ./scripts/import-exercises-with-attributes.prompt.md
Project Architecture
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 wit