Skip to content

OlliV/bfree

Repository files navigation

🚵free

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.

Free Ride mode

Try Now at https://bfree.vercel.app/

Supported Devices

  • Tacx smart trainers with BLE connectivity
  • Most BLE HRMs
  • Most BLE cadence and speed sensors

Getting Started

Bfree is built on top of Next.js and mostly what applies to Next.js projects, should work here too.

Prerequisites

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.

Next.js telemetry

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

License

See LICENSE.txt and NOTICE.md.

Related Work

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.

Useful Links