Bfree is an open source smart trainer software for indoor cycling running entirely in a web browser. The app uses Web Bluetooth to connect to BLE sensors and a trainer.
No data is ever uploaded into any cloud service, and if such a features will be ever implemented it will be totally opt-in. All the date remains in your browser, plain text, currently in local storage. This might be changed to something more secure in the future.
Try Now at https://bfree.vercel.app/
Bfree is built on top of Next.js and mostly what applies to Next.js projects, should work here too.
At bare minimum you'll need a web browser that supports Web Bluetooth, see here.
Only a few browsers support inhibiting screen locking from JS, see here.
The app is tested on Microsoft Edge and it should also work on Google Chrome and its Android derivatives.
To build Bfree locally you'll need Node.js and npm
.
The official website of the Node.js project
helps with that.
As normally with Next.js projects, the following commands apply.
Start in dev mode:
npm run dev
Run full build:
npm run build
Start in production mode:
npm start
Running the build step is required before this.
The Next.js telemetry is disabled by default. You can opt-in for the telemetry
by setting the NEXT_TELEMETRY_DISABLED
environment variable to 0
.
For example:
NEXT_TELEMETRY_DISABLED=0 npm run build
See LICENSE.txt and NOTICE.md.
While Bfree is not a derivative work the following open source projects have been a great help in understanding how BLE, ANT+, and smart trainers work in general.