{"id":27797764,"url":"https://github.com/bfree-trainer/bfree","last_synced_at":"2025-04-30T22:25:03.352Z","repository":{"id":46580931,"uuid":"304993048","full_name":"bfree-trainer/bfree","owner":"bfree-trainer","description":"Bfree smart trainer app.","archived":false,"fork":false,"pushed_at":"2025-01-20T02:25:28.000Z","size":12114,"stargazers_count":44,"open_issues_count":28,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-24T22:46:44.128Z","etag":null,"topics":["cycling","heartrate-monitor","nextjs","trainer","web-ble","web-bluetooth"],"latest_commit_sha":null,"homepage":"https://bfree.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bfree-trainer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-18T00:23:35.000Z","updated_at":"2025-04-07T15:43:18.000Z","dependencies_parsed_at":"2023-01-31T01:00:28.596Z","dependency_job_id":"14af31c4-fd30-499d-a198-3021626b9a10","html_url":"https://github.com/bfree-trainer/bfree","commit_stats":null,"previous_names":["bfree-trainer/bfree"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfree-trainer%2Fbfree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfree-trainer%2Fbfree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfree-trainer%2Fbfree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfree-trainer%2Fbfree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bfree-trainer","download_url":"https://codeload.github.com/bfree-trainer/bfree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251790621,"owners_count":21644249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cycling","heartrate-monitor","nextjs","trainer","web-ble","web-bluetooth"],"created_at":"2025-04-30T22:25:02.878Z","updated_at":"2025-04-30T22:25:03.337Z","avatar_url":"https://github.com/bfree-trainer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"🚵free\n======\n\nBfree is an open source smart trainer software for indoor cycling running\nentirely in a web browser. The app uses Web Bluetooth to connect to BLE\nsensors and a trainer. \n\nNo data is ever uploaded into any cloud service, and if such a features\nwill be ever implemented it will be totally opt-in. All the date remains\nin your browser, plain text, currently in local storage. This might be\nchanged to something more secure in the future.\n\n![Free Ride mode](/doc/images/freeride.png)\n\n[Try Now](https://bfree.vercel.app/) at https://bfree.vercel.app/\n\nSupported Devices\n-----------------\n\n- Tacx smart trainers with BLE connectivity\n- Most BLE HRMs\n- Most BLE cadence and speed sensors\n\nGetting Started\n----------------\n\nBfree is built on top of [Next.js](https://nextjs.org/) and mostly what\napplies to Next.js projects, should work here too.\n\n### Prerequisites\n\nAt bare minimum you'll need a web browser that supports Web Bluetooth,\nsee [here](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#Browser_compatibility).\n\nOnly a few browsers support inhibiting screen locking from JS,\nsee [here](https://developer.mozilla.org/en-US/docs/Web/API/WakeLock).\n\nThe app is tested on Microsoft Edge and it should also work on Google Chrome and\nits Android derivatives.\n\nTo build Bfree locally you'll need Node.js and `npm`.\nThe [official website](https://nodejs.org/en/) of the Node.js project\nhelps with that.\n\nAs normally with [Next.js](https://nextjs.org/) projects, the following\ncommands apply.\n\n**Start in dev mode:**\n\n```sh\nnpm run dev\n```\n\n**Run full build:**\n\n```sh\nnpm run build\n```\n\n**Start in production mode:**\n\n```sh\nnpm start\n```\n\nRunning the build step is required before this.\n\n### Next.js telemetry\n\nThe Next.js telemetry is disabled by default. You can opt-in for the telemetry\nby setting the `NEXT_TELEMETRY_DISABLED` environment variable to `0`.\n\n**For example:**\n\n```sh\nNEXT_TELEMETRY_DISABLED=0 npm run build\n```\n\nLicense\n-------\n\nSee [LICENSE.txt](/LICENSE.txt) and [NOTICE.md](/NOTICE.md).\n\n\nRelated Work\n------------\n\nWhile Bfree is not a derivative work the following open source projects have\nbeen a great help in understanding how BLE, ANT+, and smart trainers work in\ngeneral.\n\n- [jedla22/BleTrainerControl](https://github.com/jedla22/BleTrainerControl)\n- [GoldenCheetah](https://github.com/GoldenCheetah/GoldenCheetah)\n\n\nUseful Links\n------------\n\n- [TCX Schema](https://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd)\n- [ThisIsAnt](https://www.thisisant.com/)\n- [Bluetooth SIG - GATT specifications](https://www.bluetooth.com/specifications/gatt/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfree-trainer%2Fbfree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbfree-trainer%2Fbfree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfree-trainer%2Fbfree/lists"}