📈 GH Trending Explorer 🎲 Surprise me

← all repos

yuhonas / free-exercise-db

git clone https://github.com/yuhonas/free-exercise-db.git 🔥 on GitHub Trending today

Public domain JSON dataset of 800+ exercises with images, plus a searchable Vue frontend for browsing it.

Why you might care

Each exercise is a separate JSON document conforming to a schema, with a combined exercises.json and image paths for easy import. Useful for building fitness apps without licensing concerns, since it is released under the Unlicense. Includes Makefile tasks for linting, combining, and importing into PostgreSQL.

Categories

fitnessopen-data resource

Alternatives

exercises.json
+5
stars, 24h · #5,591
+~23
stars, 7 days · #7,153
+141
stars, 30 days · #5,219
2.0k
★ total · +1% this week
525
forks · 11 open issues

Star history (as recorded here)

2026-10-20 · 2,026 ★ 2026-10-23 · 2,036 ★
LanguageVue
LicenseUnlicense
Created2023-03-30 (3y ago)
Last push26d ago
Watchers29
OwnerUser

Seen on GitHub Trending

  • 2026-10-23 — #10 monthly in vue · +141 ★
  • 2026-10-22 — #10 monthly in vue · +140 ★
  • 2026-10-21 — #10 monthly in vue · +140 ★
  • 2026-10-20 — #10 monthly in vue · +135 ★

GitHub topics

Links

README excerpt
## Free Exercise DB 💪   
Open Public Domain Exercise Dataset in `JSON` format, 800+ exercises with a browsable public searchable frontend
### Why?
I started building another fitness related app and was looking for free/open source exercise lists and imagery I stumbled upon
exercises.json which was amazing though the data wasn't structured the way I wanted it and I also wanted a browsable/searchable frontend to the data inspired by this issue so I restructured the data and built a simple frontend to it :)
### What do they look like?
All exercises are stored as seperate `JSON` documents and conform to the following JSON Schema eg.
 [code] 
See Alternate_Incline_Dumbbell_Curl.json
To further explore the data, you can use lite.datasette.io
### How do I use them?
You can check the repo out and use the `JSON` files and images locally
#### Alternatively
You can leverage github's hosting and access the single or combined exercises.json and prefix any of image path's contained in the `JSON` with `https://raw.githubusercontent.com/yuhonas/free-exercise-db/main/exercises/` to get a hosted version of the image eg. Air_Bike/0.jpg or leverage something like imagekit.io for dynamic image resizing which is utlized on the frontend example site 
### Build tasks
There are a number of helpful Makefile tasks that you can utilize
#### Linting
To lint all the `JSON` files against the schema.json use
 [code] 
#### Combining into a single JSON file
If you make changes to any of the exercises or add new ones, to recombine all single `JSON` files into a single `JSON` containing an array of objects using the following make task
 [code] 
_Note: requires jq_
#### Importing into PostgreSQL
To combine all `JSON` files into Newline Delimeted JSON suitable for import into PostgreSQL use the following make task
 [code] 
_Note: requires jq_
See also Importing JSON into PostgreSQL using COPY
### Browsable frontend
There is a simple searchable/browsable frontend to the data written in Vue.js available at yuhonas.github.io/free-exercise-db all related code is in the site directory
#### Setup
 [code] 
#### Compile and Hot-Reload for Development
 [code] 
#### Compile and Minify for Production
 [code] 
#### Run Unit Tests with Vitest
 [code] 
#### Run End-to-End Tests with Cypress
 [code] 
This runs the end-to-end tests against the Vite development server.
It is much faster than the production build.
But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):
 [code] 
#### Lint with ESLint
 [code] 
### TODO
#### Incomplete fields
The following fields are incomplete in _some_ `JSON` files and in such have had to allow `null` in schema.json
* force
* mechanic
* equipment
#### Images
There are also a small number of duplicate images eg.
 [code] 
### Contributors
Made with contrib.rocks.
Contributions are always welcome! Please read the contribution guidelines first.
### Special Thanks 🙇
* Ollie Jennings for the original dataset at exer

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.