A Browser for Developers

Nov 12, 2021

Developers need two essential tools in their developer workflow: an IDE and a web browser. What if that was just one tool?

Completing the IDE. Chrome developer tools is already an embedded IDE. It has a debugger, editor, terminal, file browser, and profiler, to name a few features you'd typically find in an IDE. Things that are missing:

  • Simple bidirectional editing. You can do this today with Chrome, but it involves a convoluted process of adding a workspace to sources. Having both IDE and browser in the same process could lead to tighter loops – automatic refreshes and code changes in the IDE and persistent markup changes.
  • Extensions and programmability. What if the Chrome extension marketplace looked more like the VSCode extension marketplace? Chrome extensions have to serve the lowest common denominator and make tradeoffs between sane security defaults and extensibility. The Programmable Web.

Runtime observability for the IDE. Some information is only known at runtime. Combining server observability (IDE) with client observability (browser) can give us a complete view of the system. See how changes in a Redux store affect the events that get fired. Correlate client memory consumption with code changes.

Deeper debugging. Features like session replay can be built directly into the browser. While Chrome has a built-in terminal, you can't use your favorite command line utilities. It's not a full terminal.

We're at two inflection points that I think will create something special in this space.

The convergence of browsers. Everything is based on Chromium now. Everything is a browser. VSCode now runs fairly seamlessly in the browser, and is loosely based on browser building blocks (Electron). So does the IDE go in the browser, or does the browser go in the IDE?

The divergence of browsers. Everything is Chromium, but is everything Chrome? Microsoft Edge is gaining adoption. Brave is trying a new business model. Opera GX is a specialized browser for gamers which includes CPU and RAM limits and a built-in VPN. All based on Chrome.

** Not everyone is a web developer, but even as someone who worked on distributed systems and lived in the terminal, Chrome was a part of my developer workflow. Whether it's checking a Jaeger dashboard and diving into distributed traces, or easily testing a healthcheck endpoint – the browser is important.

And yes – you don't need an IDE. But modern IDEs like VSCode have become so lightweight and programmable that they simply are significantly faster for the majority of developers than vim or emacs (if you're using emacs, you're probably the type to use it as a web browser anyways!).