workout-cool is a free, open source databases project written in TypeScript and released under MIT. It has 8,660 GitHub stars, 762 forks and 80 open issues, and was last pushed 1 months ago. On this registry it ranks #103 of 206 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 129 stars over the last 30 tracked days.

What is workout-cool?

Workout.cool is an open-source, MIT-licensed fitness coaching platform built in TypeScript on Next.js, React, and PostgreSQL that lets coaches and individuals create workout plans, track training progress, and browse a large exercise database.

What it is

Workout.cool is a web application for fitness coaching and training management, written in TypeScript and organised around a Next.js frontend, React components styled with Radix UI, and a PostgreSQL database accessed through Prisma. The codebase follows feature-sliced design, and the README documents the project's architecture, a contributing process, and a dedicated self-hosting section. The repository is published under the MIT licence, carries roughly 8,400 stars and 740 forks, and documentation is available in German, Spanish, French, Japanese, Korean, Portuguese, Russian, and Chinese.

The project solves a specific continuity problem in the open-source fitness ecosystem. It is a fresh implementation of the abandoned workout.lol platform, which the current maintainer had previously contributed to. That earlier project ran into difficulty securing a reliable exercise video provider, was sold, and was then abandoned when the new owner found exercise video licensing costs prohibitively expensive. Workout.cool exists to replace that lost platform with something maintained, so users who had workouts and progress tracked in the original can return to a comparable tool.

Key capabilities

  • Create and manage workout plans for yourself or for coached clients, with progress tracking across sessions.
  • Access a large exercise database with detailed written instructions and video demonstrations.
  • Import or seed the exercise database, documented under the Exercise Database Import section of the README.
  • Run the whole stack with make dev, which starts PostgreSQL in Docker, applies migrations, seeds the database, and launches the Next.js dev server; make down stops the services.
  • Apply schema changes with Prisma using npx prisma migrate dev against the workout_cool database.
  • Configure the deployment through a single .env file created from .env.example.
  • Build on a feature-sliced-design frontend using Next.js, React, and Radix UI components.

Who uses it and how

  • Personal trainers and coaches who build and assign training plans for multiple clients, using the plan and progress-tracking features as their working tool.
  • Self-hosters who run their own instance on their own PostgreSQL database, keeping training data on infrastructure they control.
  • Former workout.lol users who had saved workouts and tracked progress, and who want an actively maintained replacement.
  • Developers and contributors who work on the Next.js and Prisma codebase, add exercises to the database, or translate the documentation into the eight documented languages.
  • Teams running a local development environment through Docker, where make dev reproduces the full stack without manual database setup.

Getting started

Clone https://github.com/Snouzy/workout-cool.git, copy .env.example to .env, and run make dev to bring up the database in Docker, run migrations, seed the data, and start the Next.js server at http://localhost:3000. Alternatively, install dependencies with pnpm install, create a PostgreSQL database named workout_cool with createdb -h localhost -p 5432 -U postgres workout_cool, then run npx prisma migrate dev and start the development server. Prerequisites are Node.js v18 or later, pnpm v8 or later, and Docker for the containerised path.

How it compares

The README positions workout.cool directly against its predecessor, workout.lol, the project it reimplements. Where workout.lol was sold and then abandoned after its maintainer could not secure an affordable exercise video provider, workout.cool is presented as a modern, maintained alternative built on the same open-source premise. Both are community-oriented fitness platforms, but only workout.cool carries the MIT licence and the current maintenance commitment described in its origin story.

When to use it โ€” and when not to

A self-hoster has to operate a PostgreSQL database alongside the application, supply a populated .env file, and choose between the Docker workflow and a manual Node.js, pnpm, and Prisma setup, which means the deployment is far from one-click. Anyone without basic database and container skills, or anyone wanting a fully managed hosted service, should think twice before adopting it. The stated reason its predecessor died was the cost of exercise video licensing, so exercise demonstration media is a structural dependency worth investigating before committing to long-term use.

project readme (upstream, from github) โ€” read inline

Workout.cool

Modern fitness coaching platform with comprehensive exercise database

Contributors Forks Stars Issues Repository Size MIT License

Discord Ko-fi

Deutsch | Espaรฑol | franรงais | ๆ—ฅๆœฌ่ชž | ํ•œ๊ตญ์–ด | Portuguรชs | ะ ัƒััะบะธะน | ไธญๆ–‡

Table of Contents

Contributors

Sponsors

They are helping making workout.cool free and open-source for everyone :

Vercel OSS Program

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

  1. Clone the repository

    git clone https://github.com/Snouzy/workout-cool.git
    cd workout-cool
    
  2. Choose your installation method:

๐Ÿณ With Docker

Docker Installation

  1. Copy environment variables

    cp .env.example .env
    
  2. 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
  3. Open your browser Navigate to http://localhost:3000

๐Ÿ’ป Without Docker

Manual Installation

  1. Install dependencies

    pnpm install
    
  2. Copy environment variables

    cp .env.example .env
    
  3. Set 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
  4. Run database migrations

    npx prisma migrate dev
    
  5. Seed the database (optional)

See the - Exercise database import section

  1. Start the development server

    pnpm dev
    
  2. Open 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

  1. 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 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

Architecture Principles

  • Feature-driven: Each feature is independent and reusable
  • Clear domain isolation: shared โ†’ entities โ†’ features โ†’ widgets โ†’ app
  • Consistency: Between business logic, UI, and data layers

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

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Create an issue for the feature/bug you want to work on. Say that you will work on it (or no)
  2. Fork the repository
  3. Create your feature|fix|chore|refactor branch (git checkout -b feature/amazing-feature)
  4. Make your changes following our code standards
  5. Commit your changes (git commit -m 'feat: add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request (one issue = one PR)

๐Ÿ“‹ For complete contribution guidelines, see our Contributing Guide

Code Style

  • Follow TypeScript best practices
  • Use Feature-Sliced Design architecture
  • Write meaningful commit messages

Deployment / Self-hosting

๐Ÿ“– For detailed self-hosting instructions, see our Complete Self-hosting Guide

๐Ÿ“บ You can also watch a 3-minute video guide on self-hosting Workout.Cool.

To seed the database with the sample exercises, set the SEED_SAMPLE_DATA env variable to true.

Using Docker

# 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

Using Docker Compose

DATABASE_URL

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

Manual Deployment

# 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

Resources

License

This project is licensed under the MIT License. See the LICENSE file for details.

MIT License

๐Ÿค Join the Rescue Mission

This is about rebuilding what we lost, together.

How You Can Help

  • ๐ŸŒŸ 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
Discord

Product Hunt

๐Ÿ’– Sponsor This Project

Appear in the README and on the website as supporter by donating:

Sponsor on Ko-fi    

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 ๐Ÿ’ช



Vercel OSS Program

Frequently asked questions

Is workout-cool free to use?

workout-cool is open source under the MIT licence. There is no licence fee and no seat count โ€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does workout-cool do?

๐Ÿ‹ Modern open-source fitness coaching platform. Create workout plans, track progress, and access a comprehensive exercise database.

What is workout-cool written in?

workout-cool is primarily written in TypeScript. Its source is publicly available at https://github.com/Snouzy/workout-cool, and it has 8,660 GitHub stars.