Containing the Browser
I recall a post from Tom Critchlow earlier this year that ended with a simple pitch:
Build a browser that comes pre-installed with Node.js, an IDE and a simple runtime environment.
It seems like that is slowly materializing into reality with StackBlitz's WebContainers. The pitch of WebContainers is a dead ringer to Tom's:
Run Node.js natively in your browser
The technology that runs behind it is beyond me but still fascinating to read about within the announcement post:
A few years ago we realized that the web was heading towards a key inflection point. The advent of WebAssembly and new capabilities APIs made it seem possible to write a WebAssembly-based operating system powerful enough to run Node.js, entirely inside your browser. We envisioned a superior development environment that was faster, more secure and consistent than local environments, to enable seamless code collaboration without ever having to set up a local environment.
When I initially read this post about WebContainers, I thought about services like Glitch and Replit that already act as IDE/programming environments on the web. However, upon further reading, WebContainers is something different:
Again, these environments are not running on remote servers. Instead, each environment is completely contained within your web browser. That’s right: the Node.js runtime itself is running natively, inside the browser, for the first time ever.
That's the key. Glitch and Replit are technically running on remote servers (which doesn't make them any less awesome). WebContainers is inherently powered by the browser on your computer, which is wild to think about. I can't help but think of the future potential, especially with running non-web native programming languages like Python within a browser.
Web IDE/programming tools are already wonderful. Glitch literally helped me get on the software development/cloud career path as someone who was a PhD drop out in classical guitar with only basic help desk experience. Seeing programming get democratized right down to the browser with WebContainers makes me even more thrilled at the potential for more people to learn.