The most frustrating bug I ever fought only showed up on a remote device. I was working on an AngularJS component, and for some irritatingly-unknown reason, it would not render on a Samsung Android device. One specific device. It just happened to belong to someone really important.

Debugging remote devices sucks because you don’t have access to your tools. You can’t just open the inspector and dive in–you have to build and deploy custom debugging code. Then do it again with what you missed. And again.

We’ve heard lots of stories from users about similar bugs and how they had been slain. Many had used TrackJS monitoring as a way of gather log and debug data from these remote devices, but the feedback cycle was slow. Asking a new question required a new deploy and reloading.

Real-time debugging of individual remote browsers isn’t what we imagined TrackJS to be used for, but damn, it worked pretty well. If only we could execute commands and see interrogate the remote state, it would be perfect!

So we built it. We call it RemoteJS.

RemoteJS is a real-time JavaScript debugger for remote browsers. The simplified JavaScript debugger establishes a websocket connection to a remote browser agent. It’s like seeing a real-time Telemetry timeline, but you can execute commands, interact with the location, and even see the remote screen.

Let’s let video-Todd explain:

RemoteJS is a stand-alone service for developers to help them understand problems that arise in individual remote clients. You don’t need a TrackJS account to use it, so give it a try! It’s going to make squashing remote browser bugs trivial.