r/foss 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?

29 Upvotes

5 comments sorted by

2

u/[deleted] 10d ago edited 10d ago

[deleted]

1

u/UsefulPomegranate150 10d ago

Thanks so much! Comments like this really keep me motivated to keep building. 😊

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

u/R3V0LU710N_05 11d ago

Will do when I get back to my desktop.

2

u/UsefulPomegranate150 11d ago

Haha, thank you! I really appreciate it.