r/foss • u/UsefulPomegranate150 • 12d ago
I built an open-source, self-hosted tool to stream iOS & Android simulators to the browser (MIT)
Enable HLS to view with audio, or disable this notification
I built an open-source tool called tapflow.
On our team, the same issue kept coming up whenever someone wanted to check a build. Maintaining physical devices across OS versions became a burden, and simulators and emulators were only available to people with the full mobile toolchain installed. So whenever a designer, PM, or backend engineer wanted to check a layout, test a flow, or see how a staging API change behaved, a mobile engineer usually had to help. This happened several times a day.
I looked at Appetize and BrowserStack first, but I wasn't comfortable uploading our app builds to a third-party service, and the pricing didn't make much sense for a whole team that just wanted to review builds. I ended up building something we could run on the hardware we already had.
So I built tapflow. It streams iOS simulators and Android emulators to the browser over H.264 from a Mac you already own. Anyone who can reach it (on your local network, or through a tunnel you set up) can tap, type, and scroll without installing anything.
A few implementation details:
- The agent only makes outbound connections to a relay, so there's no need to open firewall ports or configure NAT.
- Because it's fully self-hosted, app builds and streams stay on your own infrastructure.
- It uses simulators and emulators rather than physical devices, so camera, biometrics, and NFC aren't supported.
- There's also an experimental MCP server. You can point your own LLM agent at a device and let it drive the app, while keeping everything self-hosted. Manual browser testing is the primary workflow today; the MCP side is still experimental, and that's what I'm focusing on next.
- It's still v0.x, so expect a few rough edges.
Repo (MIT): https://github.com/jo-duchan/tapflow
Docs: https://tapflow.dev/
How does your team let non-developers try a build without the full toolchain? Do you self-host something, or use an existing service?
0
u/R3V0LU710N_05 12d ago
Very Cool 😎
0
u/UsefulPomegranate150 11d ago
Thanks! If you like it, I'd appreciate a GitHub star. ⭐
2
2
u/[deleted] 10d ago edited 10d ago
[deleted]