// the find
Snouzy/workout-cool
🏋 Modern open-source fitness coaching platform. Create workout plans, track progress, and access a comprehensive exercise database.
An open-source fitness coaching platform built with Next.js, Prisma, and PostgreSQL that lets users build workout plans and track progress. It's a revival of the abandoned workout.lol project, rebuilt from scratch by the original main contributor. Aimed at developers who want a self-hostable fitness app they can actually modify.
Feature-Sliced Design is genuinely applied here, not just folder theater — the `features/`, `entities/`, `widgets/` separation is consistent across the directory tree, which makes it a good reference for teams trying to wrangle large Next.js apps. The Docker dev setup is one command (`make dev`) and handles migrations, seeding, and the dev server without manual intervention. Better Auth over NextAuth is the right call — better-auth has actual session control and doesn't have NextAuth's footgun around JWT vs database sessions. Multi-locale support is baked in from the start with six languages, including proper i18n slug support on programs, which is a pain to retrofit later.
The exercise database is the elephant in the room: there's no real bundled dataset, just a tiny sample CSV and a prompt file telling you to ask ChatGPT to generate exercises. A fitness platform without a solid exercise library ships you a hammer with no nails. The migration history is a mess — there's a single `0_init` migration plus a `migrations_backup/` directory with 20+ squashed migrations, meaning the documented history is gone and anyone hitting a schema conflict during a fresh deploy is on their own. The project uses YouTube links for exercise videos, which is the exact same licensing time-bomb that killed the original workout.lol — embedding YouTube URLs isn't a solution, it's a deferral. Dual billing through both Stripe webhooks and RevenueCat adds two webhook surfaces, two sync-status endpoints, and two places where subscription state can drift, which is a lot of complexity for an app that claims to not be built for profit.