Introduction
"Modern fitness coaching platform with comprehensive exercise database."
This is Part 41 of the "Open Source Project of the Day" series. Today we explore Workout.cool (GitHub).
Looking for an open-source, self-hostable fitness management platform that lets you create workout plans, track progress, and browse an exercise database, but finding existing solutions either too limited or abandoned? Workout.cool is a modern fitness coaching platform created by the main contributor of the original workout.lol project after it was abandoned. Built with Next.js + TypeScript + Prisma + PostgreSQL using Feature-Sliced Design architecture, it supports workout plan creation, progress tracking, a comprehensive exercise database (with video demonstrations and detailed instructions), multi-language support (8+ languages), and one-click Docker deployment. Perfect for personal fitness, coaches managing clients, or as a starting point for fitness applications.
Why this project?
- 🏋️ Complete features — Workout plans, progress tracking, exercise database, video demos
- 🎨 Modern architecture — Next.js App Router + Feature-Sliced Design, clean code organization
- 🌍 Multi-language — Supports 8+ languages (Chinese, English, Japanese, Korean, French, German, Spanish, Portuguese, Russian)
- 🐳 Docker deployment — One-click setup with automatic database migrations and seeding
- 📊 Data import — CSV bulk import for exercises, extensible database
- 🔓 Open source — MIT license, self-hostable, no commercial restrictions
What You'll Learn
- Workout.cool's positioning and project background (continuation of workout.lol)
- Feature-Sliced Design applied to Next.js projects
- How workout plan creation and progress tracking work
- Exercise database import and management
- Docker deployment and self-hosting configuration
- Comparison with other fitness applications
Prerequisites
- Basic understanding of Next.js and TypeScript
- Basic Docker usage (optional)
- Basic concepts of fitness/workout plans (optional)
Project Background
Project Introduction
Workout.cool is a modern open-source fitness coaching platform that enables users to create workout plans, track progress, and access a comprehensive exercise database with detailed instructions and video demonstrations.
Project Story:
The author was the main contributor to the original workout.lol project. After facing partnership challenges with exercise video licensing, the project was sold. The new owner also abandoned it due to high licensing costs. After 9 months of unsuccessful attempts to reconnect, the author decided to create a more modern, reliable, and maintainable version: Workout.cool.
Problems it solves:
- Open-source fitness platforms lack complete features (plans + tracking + database)
- Existing projects are poorly maintained or abandoned
- Need for self-hostable, non-commercial fitness management tools
- Need for multi-language support for global users
Target users:
- Personal fitness enthusiasts managing their own workout plans and progress
- Fitness coaches creating and managing plans for clients
- Developers building fitness applications on top of this platform
- Teams needing self-hosted fitness management platforms
Author
- Author: Snouzy (GitHub)
- Background: Main contributor to workout.lol, created Workout.cool after the original was abandoned
- Mission: Provide a reliable, modern, maintainable platform for the open-source fitness community
Project Data
- ⭐ GitHub Stars: ~7.1k
- 🍴 Forks: ~549
- 📦 Version: v1.3.2 (actively maintained, 412+ commits)
- 📄 License: MIT (fully open source, free to use)
- 🌐 Website: workout.cool
- 💬 Community: Discord, Product Hunt
- 👥 Contributors: Active community participation
Tech Stack:
- Frontend: Next.js 14+ (App Router), React, TypeScript, Tailwind CSS, Radix UI, shadcn/ui
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL
- Auth: Better Auth
- Architecture: Feature-Sliced Design (FSD)
Main Features
Core Purpose
Workout.cool provides a complete fitness management platform including:
- Workout plan creation — Create and manage personalized workout plans
- Progress tracking — Record workout history and track progress statistics
- Exercise database — Access a comprehensive database with detailed instructions and video demonstrations
- Multi-language support — Support for 8+ languages to serve global users
- Data import — CSV bulk import for exercises to extend the database
Use Cases
- Personal fitness management — Create personal workout plans, log each session, track strength and endurance metrics
- Coach managing clients — Coaches create plans for clients; clients log completion; coaches view progress
- Team fitness challenges — Teams share workout plans; members log completion; view leaderboards and stats
- Fitness app development — Use as a foundation to build customized fitness applications
- Self-hosted fitness platform — Organizations self-host to protect user data privacy
Quick Start
Requirements: Node.js 18+, pnpm 8+, Docker (optional)
Option 1: Docker Deployment (Recommended)
# 1. Clone the repository
git clone https://github.com/Snouzy/workout-cool.git
cd workout-cool
# 2. Copy environment variables
cp .env.example .env
# 3. Start development environment (auto-starts DB, runs migrations, seeds data, starts Next.js)
make dev
# 4. Open http://localhost:3000Stop services: make down
Option 2: Manual Installation
# 1. Install dependencies
pnpm install
# 2. Configure environment variables
cp .env.example .env
# 3. Set up PostgreSQL database
createdb -h localhost -p 5432 -U postgres workout_cool
# 4. Run database migrations
npx prisma migrate dev
# 5. Start development server
pnpm devCore Features
- Workout plan management — Create, edit, delete plans; support multi-day and cyclic plans; templates and custom plans
- Progress tracking — Log each workout's completion; track weight, reps, sets, duration; visualize progress charts and statistics
- Exercise database — Extensive exercises, each with: multi-language names, detailed descriptions, video demonstrations, image previews, exercise types and primary muscle groups; search, filter, and category browsing
- Data import — CSV bulk import for exercises; support full attributes (type, muscle groups, video links, etc.); example data and import scripts provided
- Multi-language support — 8+ languages: Chinese, English, Japanese, Korean, French, German, Spanish, Portuguese, Russian; UI and content localization
- Modern UI — Based on Tailwind CSS and Radix UI; responsive design, mobile support; uses shadcn/ui component library
- Feature-Sliced Design — Clear code organization; modular features, easy to extend and maintain; follows modern frontend architecture best practices
- Docker support — One-click deployment with database; Docker Compose support; production deployment guide
Project Advantages
| Aspect | Workout.cool | Commercial fitness apps | Simple trackers |
|---|---|---|---|
| Open source | ✅ MIT, fully open | ❌ Closed source | ⚠️ Varies |
| Self-host | ✅ Docker one-click | ❌ Cloud only | ⚠️ Varies |
| Complete | ✅ Plans+tracking+DB | ✅ Feature-rich | ⚠️ Limited |
| Multi-lang | ✅ 8+ languages | ⚠️ Varies | ⚠️ Often English |
| Data control | ✅ Fully yours | ❌ Vendor servers | ⚠️ Varies |
| Customizable | ✅ Open for modification | ❌ Not customizable | ⚠️ Varies |
| Cost | ✅ Free | ⚠️ Subscription | ✅ Free |
Why choose Workout.cool?
- Complete features: workout plans, progress tracking, and exercise database all in one
- Modern architecture: Next.js + FSD, high code quality, easy to extend
- Open source and free: MIT license, self-hostable, no commercial restrictions
- Multi-language: 8+ languages for global users
- Actively maintained: author continuously updates, active community
Project Deep Dive
Architecture Design
Workout.cool uses Feature-Sliced Design (FSD) architecture with Next.js App Router:
src/
├── app/ # Next.js pages, routes, and layouts
├── processes/ # Business flows (cross-feature)
├── widgets/ # Composable UI components (Sidebar, Header)
├── features/ # Business units (auth, exercise-management)
├── entities/ # Domain entities (user, exercise, workout)
├── shared/ # Shared code (UI, lib, config, types)
└── styles/ # Global CSS, themesArchitecture Principles:
- Feature-driven: Each feature is independent and reusable
- Clear domain isolation:
shared→entities→features→widgets→app - Consistency: Business logic, UI, and data layers stay consistent
Example Feature Structure:
features/
└── exercise-management/
├── ui/ # UI components (ExerciseForm, ExerciseCard)
├── model/ # Hooks, state management (useExercises)
├── lib/ # Utilities (exercise-helpers)
└── api/ # Server actions or API callsCore Modules
1. Workout Plan Module
- Plan creation: Users select exercises, set sets/reps/weight, schedule training days
- Plan templates: Preset templates; users can create from templates
- Plan execution: Log completion of each workout session
2. Progress Tracking Module
- Workout logging: Record detailed information for each session (date, exercises, weight, reps, etc.)
- Statistics: Calculate total sessions, total duration, strength trends, etc.
- Visualization: Charts showing progress changes
3. Exercise Database Module
- Data storage: PostgreSQL stores exercise information (names, descriptions, videos, images, attributes)
- Search and filter: Search and filter by name, type, muscle group, etc.
- Multi-language: Support multi-language names and descriptions
4. Data Import Module
- CSV import: Bulk import exercise data from CSV files
- Data validation: Validate format and completeness of imported data
- Attribute mapping: Support import of exercise types, primary muscle groups, etc.
Technical Implementation
1. Next.js App Router
Uses Next.js 14+ App Router, supporting:
- Server and client components
- Server Actions for forms and data operations
- Routing and layout system
2. Prisma ORM
Uses Prisma for database management:
- Type-safe database access
- Database migration management
- Seed data support
3. Feature-Sliced Design
Follows FSD principles:
- shared: Shared UI components, utilities, type definitions
- entities: Domain entities (User, Exercise, Workout)
- features: Business features (authentication, exercise management, workout plans)
- widgets: Composable UI components (sidebar, header)
- app: Next.js pages and routes
4. Authentication System
Uses Better Auth for user authentication:
- Multiple auth methods (email, OAuth, etc.)
- Session management
- Permission control
Data Import
CSV Format Requirements:
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,
QUADRICEPSImport Commands:
# Import full exercise data
pnpm run import:exercises-full /path/to/exercises.csv
# Using sample data
pnpm run import:exercises-full ./data/sample-exercises.csvExtending Database: Use ChatGPT or similar tools to generate more exercise data; prompt template available at ./scripts/import-exercises-with-attributes.prompt.md.
Deployment and Self-Hosting
Docker Deployment:
# Build image
docker build -t yourusername/workout-cool .
# Run container
docker run -p 3000:3000 --env-file .env.production yourusername/workout-coolDocker Compose:
# Update DATABASE_URL host to postgres
# DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool
docker compose up -dManual Deployment:
# Build application
pnpm build
# Run database migrations
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
# Start production server
pnpm startSee project documentation for detailed self-hosting guide.
Links and Resources
Official
- 🌟 GitHub: https://github.com/Snouzy/workout-cool
- 🌐 Website: https://workout.cool
- 💬 Discord: Discord Community
- 🐛 Issues: GitHub Issues
- 📚 Docs: README, Contributing Guide, Self-hosting Guide
Related
- Feature-Sliced Design: FSD Documentation
- Next.js: Next.js Documentation
- Prisma: Prisma Documentation
- Better Auth: Better Auth Documentation
Who It's For
- Fitness enthusiasts — Need to manage workout plans and track progress
- Fitness coaches — Need to create and manage plans for clients
- Developers — Want to build fitness applications on this foundation
- Teams/Organizations — Need self-hosted fitness management platforms
- Learners — Want to learn Next.js, FSD architecture, Prisma, and other modern tech stacks
Learning Value:
- ✅ Feature-Sliced Design practice in Next.js projects
- ✅ Prisma ORM usage and database migrations
- ✅ Next.js App Router and Server Actions
- ✅ Multi-language support implementation
- ✅ Docker deployment and self-hosting configuration
- ✅ Complete fitness application development workflow
Visit my homepage for more guides and projects.