Why ToyControl runs in your browser
No download, no app store, no install. The design decision behind a browser-based control app, with honest notes on the trade-offs.
ToyControl runs in your browser. You open a website, you pair a toy, you play. There is no download for the basic features. There is no app to install on your phone.
Most other interactive toy apps require a download. Why did we go the other way? This article is the honest answer.
What being browser-based gets you
Zero install
The first time you use ToyControl, you click a link, and you are in. No download, no install wizard, no app store account, no permissions to grant other than Bluetooth.
This matters more than it sounds. The "first 30 seconds" of a new app are the most important. If you have to install, set up, log in, and update before you can do anything, most people leave. With a browser app, the on-ramp is one click.
No app store gates
App stores ban or heavily restrict adult-themed apps. Apple's App Store does not allow them at all. Google's Play Store has tight rules and often pulls apps without warning.
A browser app is not subject to any of that. We are a website. Websites are not in app stores.
This also means we cannot be kicked out of an app store, which has happened to interactive-toy apps before. The store decides one day to enforce a rule, the app vanishes, the users lose their tool.
Instant updates
When we ship a fix, you get it the next time you open ToyControl. No "update your app" prompt. No version-mismatch issues. No legacy users running ancient code.
Cross-platform by default
The same ToyControl runs on a Windows laptop, a Mac, a Chromebook, an Android phone, and (with Bluefy) an iPhone. We did not write one app for each. We wrote one app for the browser. The browser handles the differences.
What being browser-based costs you
The trade-offs are real. We do not pretend otherwise.
iOS exclusion
iPhone's Safari does not support the browser feature that talks to Bluetooth toys. We can do nothing about it. We added Bluefy as a workaround (see How to use ToyControl on iPhone or iPad), but it is a less direct experience than Chrome on Android.
This is the biggest cost of the browser-based choice. iPhone has the largest single user base of any phone, and we cannot serve it natively.
Firefox exclusion
Mozilla never added Web Bluetooth to Firefox. Their reasoning is fair (privacy concerns about granting websites Bluetooth access), but the result is the same: Firefox cannot pair toys.
Helper app for VR
Browsers cannot do everything. They cannot open raw TCP connections (to a VR headset) or listen for incoming connections (from VR games). For those two use cases, we ship a small helper app. It runs in your system tray and does only those two things. See The ToyControl helper app.
This is a deliberate exception. The helper is tiny (~8 MB) and only handles the parts the browser cannot. Everything else stays in the browser.
Browser Bluetooth has rough edges
Web Bluetooth (the feature we use) is a real API, but it is younger and less mature than native Bluetooth APIs in iOS or Android apps. We hit edge cases occasionally:
- Some toys take longer to pair through the browser than through the toy's own phone app.
- Reconnect logic across browser sessions is more limited than in a native app.
- The browser shows a Bluetooth window that the user has to manually click through, every pair.
These are friction points we work around (the helper app sometimes helps), but they are real.
Why we made the trade
We weighed it. On one side: zero install, no app stores, cross-platform, fast iteration. On the other: iOS exclusion, browser Bluetooth quirks, the helper app for VR.
For a small team building a tool for a specific audience, the browser was the right answer. We could ship a single app that runs everywhere we care about. We did not need to maintain three native codebases (iOS, Android, Mac/Windows desktop). We could update without waiting for review.
We also cared about distribution. If we shipped a native iOS app, we would be in a constant fight with App Store reviewers about what is and is not allowed. If we shipped a native Android app, we would be at Google's mercy too. As a website, we control our own destiny.
What changes if browsers change
If Apple adds Web Bluetooth to Safari, ToyControl works on iPhone on day one. No new app, no porting work, no anything. Just the same site, suddenly reachable from a billion more devices.
We hope this happens. It might not.
In the meantime, Bluefy on iPhone is the workaround.
What about a native app, later
We sometimes get asked if we will ship a native app. The honest answer: not in 2026. The browser path covers most users and lets us focus on the features.
If we did ship a native app later, it would be a thin wrapper around the browser app, not a separate codebase. The web is the source of truth.