|
3 veckor sedan | |
---|---|---|
.github | 1 månad sedan | |
.vscode | 3 veckor sedan | |
app | 4 veckor sedan | |
content | 4 veckor sedan | |
data | 1 månad sedan | |
docs | 4 veckor sedan | |
emails | 1 månad sedan | |
locales | 4 veckor sedan | |
prisma | 3 veckor sedan | |
public | 4 veckor sedan | |
scripts | 4 veckor sedan | |
src | 3 veckor sedan | |
.cursorrules | 1 månad sedan | |
.env.example | 4 veckor sedan | |
.gitignore | 1 månad sedan | |
.npmrc | 1 månad sedan | |
.prettierrc | 1 månad sedan | |
CONTRIBUTING.md | 1 månad sedan | |
Dockerfile | 1 månad sedan | |
LICENSE | 1 månad sedan | |
Makefile | 3 veckor sedan | |
README.md | 4 veckor sedan | |
components.json | 1 månad sedan | |
docker-compose.yml | 3 veckor sedan | |
eslint.config.mjs | 1 månad sedan | |
middleware.ts | 1 månad sedan | |
next.config.ts | 1 månad sedan | |
nextauth.d.ts | 1 månad sedan | |
package.json | 3 veckor sedan | |
pnpm-lock.yaml | 3 veckor sedan | |
postcss.config.mjs | 1 månad sedan | |
tailwind.config.ts | 1 månad sedan | |
test-db-connection.js | 3 veckor sedan | |
tsconfig.json | 1 månad sedan |
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. 🥹
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
Choose your installation method:
The project includes a comprehensive exercise database. To import a sample of exercises:
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 with 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
shared
→ entities
→ features
→ widgets
→ app
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.
git checkout -b feature/amazing-feature
)git commit -m 'feat: add amazing feature'
)git push origin feature/amazing-feature
)📋 For complete contribution guidelines, see our Contributing Guide
📖 For detailed self-hosting instructions, see our Complete Self-hosting Guide
To seed the database with the sample exercises, set the SEED_SAMPLE_DATA
env variable to true
.
# 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
Update the host
to point to the postgres
service instead of localhost
DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool
docker compose up -d
# 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.
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 💪