[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8938":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":41,"discoverSource":42},8938,"free-exercise-db","yuhonas\u002Ffree-exercise-db","yuhonas","Open Public Domain Exercise Dataset in JSON format, over 800 exercises with a browsable public searchable frontend","https:\u002F\u002Fyuhonas.github.io\u002Ffree-exercise-db\u002F",null,"Vue",1459,402,26,2,0,3,21,105,10,20.82,"The Unlicense",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37],"data","database","exercise","exercises","fitness","fitness-app","fitnessapp","free","open-data","public-domain","workout-apps","2026-06-12 02:02:00","## Free Exercise DB 💪  &nbsp; [![Test, Lint & Deploy Site to Github Pages](https:\u002F\u002Fgithub.com\u002Fyuhonas\u002Ffree-exercise-db\u002Factions\u002Fworkflows\u002Fci.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fyuhonas\u002Ffree-exercise-db\u002Factions\u002Fworkflows\u002Fci.yaml) [![License: Unlicense](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Unlicense-blue.svg)](http:\u002F\u002Funlicense.org\u002F)\n\nOpen Public Domain Exercise Dataset in `JSON` format, 800+ exercises with a browsable public searchable frontend\n\n### Why?\n\nI started building another fitness related app and was looking for free\u002Fopen source exercise lists and imagery I stumbled upon\n[exercises.json](https:\u002F\u002Fgithub.com\u002Fwrkout\u002Fexercises.json) which was amazing though the data wasn't structured the way I wanted it and I also wanted a browsable\u002Fsearchable frontend to the data inspired by [this issue](https:\u002F\u002Fgithub.com\u002Fwrkout\u002Fexercises.json\u002Fissues\u002F5) so I restructured the data and built a simple frontend to it :)\n\n### What do they look like?\n\nAll exercises are stored as seperate `JSON` documents and conform to the following [JSON Schema](.\u002Fschema.json) eg.\n\n```json\n{\n  \"id\": \"Alternate_Incline_Dumbbell_Curl\",\n  \"name\": \"Alternate Incline Dumbbell Curl\",\n  \"force\": \"pull\",\n  \"level\": \"beginner\",\n  \"mechanic\": \"isolation\",\n  \"equipment\": \"dumbbell\",\n  \"primaryMuscles\": [\n    \"biceps\"\n  ],\n  \"secondaryMuscles\": [\n    \"forearms\"\n  ],\n  \"instructions\": [\n    \"Sit down on an incline bench with a dumbbell in each hand being held at arms length. Tip: Keep the elbows close to the torso.This will be your starting position.\",\n  ],\n  \"category\": \"strength\",\n  \"images\": [\n    \"Alternate_Incline_Dumbbell_Curl\u002F0.jpg\",\n    \"Alternate_Incline_Dumbbell_Curl\u002F1.jpg\"\n  ]\n}\n```\nSee [Alternate_Incline_Dumbbell_Curl.json](.\u002Fexercises\u002FAlternate_Incline_Dumbbell_Curl.json)\n\nTo further explore the data, you can use [lite.datasette.io](https:\u002F\u002Flite.datasette.io\u002F?json=https:\u002F\u002Fgithub.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fblob\u002Fmain\u002Fdist\u002Fexercises.json#\u002Fdata\u002Fexercises?_facet_array=primaryMuscles&_facet=force&_facet=level&_facet=equipment)\n\n### How do I use them?\n\nYou can check the repo out and use the `JSON` files and images locally\n\n#### Alternatively\n\nYou can leverage github's hosting and access the single or combined [exercises.json](https:\u002F\u002Fraw.githubusercontent.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fmain\u002Fdist\u002Fexercises.json) and prefix any of image path's contained in the `JSON` with `https:\u002F\u002Fraw.githubusercontent.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fmain\u002Fexercises\u002F` to get a hosted version of the image eg. [Air_Bike\u002F0.jpg](https:\u002F\u002Fraw.githubusercontent.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fmain\u002Fexercises\u002FAir_Bike\u002F0.jpg) or leverage something like [imagekit.io](https:\u002F\u002Fimagekit.io\u002F) for dynamic image resizing which is utlized on the frontend [ example site ](https:\u002F\u002Fgithub.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fblob\u002Fmain\u002Fsite\u002Fsrc\u002Fcomponents\u002FPhotoGallery.vue#L44-L54)\n\n### Build tasks\nThere are a number of helpful [Makefile](.\u002FMakefile) tasks that you can utilize\n\n#### Linting\nTo lint all the `JSON` files against the [schema.json](.\u002Fschema.json) use\n\n```\nmake lint\n```\n\n#### Combining into a single JSON file\nIf 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\n\n```sh\nmake dist\u002Fexercises.json\n```\n_Note: requires [jq](https:\u002F\u002Fstedolan.github.io\u002Fjq\u002F)_\n\n#### Importing into PostgreSQL\nTo combine all `JSON` files into [Newline Delimeted JSON](http:\u002F\u002Fndjson.org\u002F) suitable for import into PostgreSQL use the following make task\n\n```sh\nmake dist\u002Fexercises.nd.json\n```\n_Note: requires [jq](https:\u002F\u002Fstedolan.github.io\u002Fjq\u002F)_\n\nSee also [Importing JSON into PostgreSQL using COPY](https:\u002F\u002Fkonbert.com\u002Fblog\u002Fimport-json-into-postgres-using-copy)\n\n### Browsable frontend\n\n\u003Cimg src=\".\u002Fsite\u002Fpublic\u002Fscreenshot.png\" alt=\"Screenshot of browsable frontend\" width=\"500\">\n\nThere is a simple searchable\u002Fbrowsable frontend to the data written in [Vue.js](https:\u002F\u002Fvuejs.org\u002F)  available at [yuhonas.github.io\u002Ffree-exercise-db](https:\u002F\u002Fyuhonas.github.io\u002Ffree-exercise-db\u002F) all related code is in the [site](.\u002Fsite) directory\n\n\n#### Setup\n\n```sh\nnpm install\n```\n\n#### Compile and Hot-Reload for Development\n\n```sh\nnpm run dev\n```\n\n#### Compile and Minify for Production\n\n```sh\nnpm run build\n```\n\n#### Run Unit Tests with [Vitest](https:\u002F\u002Fvitest.dev\u002F)\n\n```sh\nnpm run test:unit\n```\n\n#### Run End-to-End Tests with [Cypress](https:\u002F\u002Fwww.cypress.io\u002F)\n\n```sh\nnpm run test:e2e:dev\n```\n\nThis runs the end-to-end tests against the Vite development server.\nIt is much faster than the production build.\n\nBut it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):\n\n```sh\nnpm run build\nnpm run test:e2e\n```\n\n#### Lint with [ESLint](https:\u002F\u002Feslint.org\u002F)\n\n```sh\nnpm run lint\n```\n\n### TODO\n\n#### Incomplete fields\n\nThe following fields are incomplete in _some_ `JSON` files and in such have had to allow `null` in [schema.json](.\u002Fschema.json)\n\n* force\n* mechanic\n* equipment\n\n#### Images\n\nThere are also a small number of duplicate images eg.\n\n```sh\njdupes --summarize --recurse .\n\nScanning: 2620 files, 874 items (in 1 specified)\n25 duplicate files (in 22 sets), occupying 809 KB\n```\n\n### Contributors\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyuhonas\u002Ffree-exercise-db\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=yuhonas\u002Ffree-exercise-db\" \u002F>\n\u003C\u002Fa>\n\nMade with [contrib.rocks](https:\u002F\u002Fcontrib.rocks).\n\nContributions are always welcome! Please read the contribution guidelines first.\n\n### Special Thanks 🙇\n* [Ollie Jennings](https:\u002F\u002Fgithub.com\u002FOllieJennings) for the original dataset at [exercises.json](https:\u002F\u002Fgithub.com\u002Fwrkout\u002Fexercises.json)\n* flaticon for the favicon see [Sports-and-competition icons created by Dragon Icons - Flaticon](https:\u002F\u002Fwww.flaticon.com\u002Ffree-icons\u002Fsports-and-competition)\n","Free Exercise DB 是一个开放的公共领域运动数据集，以JSON格式提供超过800种运动的数据，并附带了一个可浏览和搜索的前端界面。项目使用Vue构建了简洁易用的前端，每个运动项都按照预定义的JSON Schema存储为独立文件，包含详细的运动信息如力量类型、难度级别、主要与次要肌肉群等，以及相关的图片链接。适用于健身应用开发、健康数据分析或任何需要丰富运动数据支持的场景中。","2026-06-11 03:20:24","top_language"]