Web IDE Landscape
How to access your workspaces in the Cloud
As a lightweight alternative to remote desktop solutions, Web IDE enables you to easily shift your workspace in the Cloud.
This article presents a Web IDE landscape on Visual Studio Code, its derivatives, and Eclipse Theia.
VS Code and its derivatives
VS Code binaries target the desktop (in alphabetic order: Linux, macOS, and Windows) and Microsoft builds them using the open-source part of VS Code, some proprietary components, and telemetry. Additionally, Microsoft develops Web IDE solutions using VS Code namely GitHub Codespaces and VSCode.dev.
Microsoft maintains the open-source part of VS Code in a GitHub project named Visual Studio Code - Open Source (aka “Code OSS”).
Code OSS uses many open-source components including four that represent its foundation:
- Monaco Editor implements the code editor.
- VS Code Extension API enables the development of VS Code extensions.
- Language Server Protocol (LSP) allows extracting the management of the programming languages from the IDE to a dedicated server.
- Xterm.js offers a virtual terminal for command-line interactions.
From Code OSS, the following derivatives projects emerged:
- VS Codium is a community-driven distribution of VS Code binaries that removes Microsoft branding and telemetry.
- Code-Server and OpenVSCode Server add the open-source server features required to access a remote Web IDE similar to VS Code.
From Code-Server and OpenVSCode Server, the companies that support the respective project offer a commercial solution based on their open-source project:
- Coder moves software development to the cloud, centralizing your organizations’ development initiatives and offering improvements in development velocity and enterprise security.
- Gitpod is a container-based development platform that puts developer experience first. Gitpod provisions ready-to-code developer environments in the cloud from a Git repository.
Eclipse Theia is an open-source platform to build custom Web and desktop IDEs. The same four components that represent the VS Code foundation are used by Eclipse Theia. Therefore, Eclipse Theia supports VS Code extensions and language servers.
Using Eclipse Theia as a Web IDE, Eclipse Che makes Kubernetes development accessible for developer teams, providing one-click developer workspaces and eliminating local environment configuration for your entire team.
In order to publish, access, and install VS Code extensions, Microsoft offers an extensions registry: the Visual Studio Code Marketplace. The source code of this registry is proprietary and it may be accessed only from Microsoft products such as VS Code, GitHub Codespaces, and VSCode.dev.
So, the Eclipse Open VSX open-source project supported by the Eclipse Foundation implements a vendor-neutral registry to provide a registry for VS Code extensions that can be used with Eclipse Theia and other IDEs.
In addition, the Eclipse Open VSX project can be hosted in your private infrastructure to manage VS Code extensions available internally.
Some extensions (such as Live Share, and Remote Development) are only available on Visual Studio Code Marketplace, mainly due to licenses restricting their use on Microsoft products. With the growing community around Open VSX, some alternatives emerge or will emerge: search on https://open-vsx.org to check.
How to create the remote workspaces that could be accessed by a Web IDE?
For instance, the article Shift your Workspaces to the Cloud — ”It works on my browser!” presents a solution to deploy your workspace to the Cloud using Code-Server and Sysbox (by Nestybox).
Open Source Components
- Monaco Editor
- Language Server Protocol
- Visual Studio Code Extension API
- Visual Studio Code - Open Source (“Code-OSS”)
- OpenVSCode Server
- Eclipse Theia
- Eclipse Open VSX
- Visual Studio Code Marketplace
- Open VSX Registry