Open Source Project of the Day (Part 41): Workout.cool - Modern Open-Source Fitness Coaching Platform

A deep dive into Workout.cool, a modern open-source fitness coaching platform for creating workout plans, tracking progress, and accessing a comprehensive exercise database, built with Next.js and Feature-Sliced Design architecture

·10 min read·Tool Recommendations

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:

  1. Workout plan creation — Create and manage personalized workout plans
  2. Progress tracking — Record workout history and track progress statistics
  3. Exercise database — Access a comprehensive database with detailed instructions and video demonstrations
  4. Multi-language support — Support for 8+ languages to serve global users
  5. Data import — CSV bulk import for exercises to extend the database

Use Cases

  1. Personal fitness management — Create personal workout plans, log each session, track strength and endurance metrics
  2. Coach managing clients — Coaches create plans for clients; clients log completion; coaches view progress
  3. Team fitness challenges — Teams share workout plans; members log completion; view leaderboards and stats
  4. Fitness app development — Use as a foundation to build customized fitness applications
  5. 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:3000

Stop 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 dev

Core Features

  1. Workout plan management — Create, edit, delete plans; support multi-day and cyclic plans; templates and custom plans
  2. Progress tracking — Log each workout's completion; track weight, reps, sets, duration; visualize progress charts and statistics
  3. 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
  4. Data import — CSV bulk import for exercises; support full attributes (type, muscle groups, video links, etc.); example data and import scripts provided
  5. Multi-language support — 8+ languages: Chinese, English, Japanese, Korean, French, German, Spanish, Portuguese, Russian; UI and content localization
  6. Modern UI — Based on Tailwind CSS and Radix UI; responsive design, mobile support; uses shadcn/ui component library
  7. Feature-Sliced Design — Clear code organization; modular features, easy to extend and maintain; follows modern frontend architecture best practices
  8. Docker support — One-click deployment with database; Docker Compose support; production deployment guide

Project Advantages

AspectWorkout.coolCommercial fitness appsSimple 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, themes

Architecture Principles:

  • Feature-driven: Each feature is independent and reusable
  • Clear domain isolation: sharedentitiesfeatureswidgetsapp
  • 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 calls

Core 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,
    QUADRICEPS

Import 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.csv

Extending 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-cool

Docker Compose:

# Update DATABASE_URL host to postgres
# DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool
 
docker compose up -d

Manual Deployment:

# Build application
pnpm build
 
# Run database migrations
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
 
# Start production server
pnpm start

See project documentation for detailed self-hosting guide.


Official

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.