Your Web Bluetooth app, now on iPhone Safari.
The same navigator.bluetooth code
you ship to Android Chrome — running in real Safari. No native
app. No rewrite.
WebBLE is active in Safari — scan a device above.
Add to Safari — free Try the live demoimport '@ios-web-bluetooth/core/auto'
- Open source
- W3C-standard API
- Companion app now on the App Store
- Works on Chrome, Edge & Safari from one codebase
Have a Bluetooth device? Ship a web app that controls it on iPhone — no App Store, no native app.
Three steps to Bluetooth
Get started in under a minute. No configuration, no server-side changes.
Add one line
Import the auto polyfill once. That's the entire integration — a no-op where Web Bluetooth already ships natively.
import '@ios-web-bluetooth/core/auto';
No build step? Use the
no-build alternative (CDN
<script> tag) instead.
User enables the extension
On first visit, users install the free companion app and enable WebBLE in Settings > Apps > Safari > Extensions.
Bluetooth just works
The standard Web Bluetooth API is now available. Your existing code works without changes.
Bluetooth device makers shipping a native iOS app today
If your users have to install an app to use your device, you're leaving the web half of your market on the table. WebBLE gives you the Safari side for free.
Smart watches & wearables
Stream workout data to a coach's web console without asking runners to install another app.
Fitness sensors
Live trainer / race dashboards on the web — HRMs, power meters, rowers, smart trainers.
CGMs & medical
Clinic-facing web dashboards for remote patient monitoring and telehealth visits.
Hearing aids
Audiologist web consoles and user self-fitting portals — no native companion required.
Smart locks & access
Hotel, coworking, and multifamily web check-in flows without forcing a native install.
Smart home & provisioning
QR-to-Safari first-time setup replaces the "install our app" activation drop-off.
Industrial & B2B
BLE printers, scanners, fleet trackers, cold-chain loggers — field workers on any device.
Consumer audio & peripherals
Firmware updates, EQ tuning, controller mapping delivered through a web app.
Integrate in seconds
Use the standard Web Bluetooth API. We handle the Safari part.
// One line activates the iOS Safari polyfill.
import '@ios-web-bluetooth/core/auto';
// Same code runs on Chrome and Edge — no vendor prefix, no fallback.
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: ['heart_rate'] }]
});
const server = await device.gatt.connect();
<!-- No build step? Drop the CDN script instead. -->
<script src="https://ioswebble.com/webble.js"></script>
// Then use the standard Web Bluetooth API
const device = await navigator.bluetooth.requestDevice({
acceptAllDevices: true
});
import { IOSWebBLEProvider } from '@ios-web-bluetooth/react';
function App() {
return (
<IOSWebBLEProvider>
<MyBluetoothApp />
</IOSWebBLEProvider>
);
}
# Quick setup via CLI
$ npx ioswebble init
? Detected: Next.js project
? Adding @ios-web-bluetooth/react...
? Wrapping _app with IOSWebBLEProvider...
Done! Web Bluetooth is ready for Safari.
Standard API. Zero lock-in.
WebBLE polyfills the Web Bluetooth API for Safari. If the user has Chrome or Android with native support, the polyfill stays out of the way. Your code is always standard.
Works with every framework, or no framework at all.
Background Sync — Keep BLE devices active, fire iOS notifications for characteristic updates, and register beacon scans with Background Sync docs.
AI Agent Integration — AI agents can add
WebBLE to any project in 30 seconds via MCP. Run
npx ioswebble init or let your agent handle it.
The iOS-only capabilities Apple usually gates behind a native app
The polyfill is free and pure-W3C. For teams that need iOS-specific
capabilities, the extension exposes them on the vendor-prefixed
window.webbleIOS surface —
never on navigator.bluetooth.
Background sync / keep-alive GATT
Keep a CGM stream alive when the phone locks.
await window.webbleIOS.backgroundSync.register({...});
BLE-driven iOS notifications
Low-battery alerts for insulin pumps and hearing aids. Threshold breaches for clinical flows.
Lock Screen / Dynamic Island
Workout session progress visible while the user does something else on the phone.
Beacon scanning
Warehouse forklift logs arrival automatically at a yard beacon — no app launch needed.
Peripheral mode
Two phones chat end-to-end encrypted with no internet. See the
ble-e2e-chat flagship demo.
await window.webbleIOS.peripheral.advertise({...});
White-labeled companion app
Your brand in the App Store without building a native iOS app from scratch.
Tell us what you're building
You ship Bluetooth hardware with a native iOS app. We can help you offer a web app alongside it. 30-minute call, no pitch — we just want to hear what you're shipping.