GitLab goes public with Web IDE beta based on Visual Studio Code

GitLab goes public with Web IDE beta based on Visual Studio Code

GitLab has rebuilt its Web IDE based on Microsoft’s open-source Visual Studio Code, despite that product’s close association with competitor GitHub.

GitLab’s new Web IDE based on Visual Studio Code

The new Web IDE is described as Beta but is nevertheless now the default across GitLab. Users will get it automatically (though there is an opt-out). Self-managed users will get the new editor in the 15.7 release which is set to be released on December 22nd, though in this case it will be behind a feature flag. One disappointment is that VS Code extensions are not supported, neither from the official VS Code marketplace, nor from the unencumbered Open VSX registry.

The extension option in the GitLab Web IDE displays a message: “The extension marketplace has been disabled … stay tuned!” Another missing feature is project-wide search, though the Web IDE can search across all files open on tabs in the active browser Window.

There are a number of features on the to-do list, beyond extensions and project-wide search. The big deal here is remote development, the ability to compile, test and debug applications on a remote server or container with no local dependencies other than the web browser.

Gitlab’s aim is that “you can define a remote development environment and quickly provision pre-built environments on either your own cloud provider or using shared GitLab compute.” This ambition is some distance from being fulfilled, but the Web IDE Beta should be able to connect to environments hosted outside GitLab from December 22nd. “Our initial iterations for Remote Development will be focused on integrating with existing cloud providers like Amazon Web Services (AWS), Google Cloud, or Microsoft Azure  … we will eventually look to offer a fully-managed option within GitLab,” the documentation states.

GitLab intends only to support VS Code with its remote environments. “The vast majority of developers are using VS Code and facilitating the connection between a VS Code client and host simplifies the architecture. Support for vim, JetBrains editors, Xcode, or other IDEs will come as the category reaches Complete or Loveable maturity,” says its public plan.

The GitLab Web IDE was already built on Monaco, which is the browser-based code editor also used by Visual Studio Code. In fact, the GitHub project for Monaco explains that “The Monaco Editor is generated straight from VS Code’s sources with some shims around services the code needs to make it run in a web browser outside of its home.” There is much more than Monaco in VS Code though, and in May GitLab said of its old Web IDE that “we hear about missing features and functionality,” causing the company to begin the effort of replacing it.

Historically GitLab has achieved a more complete DevOps platform than rival GitHub, but in respect of remote development it is coming from behind, thanks to the energy GitHub has put into its Codespaces feature. GitLab’s adoption of VS Code makes sense from an engineering perspective, as so much functionality comes for free, as well as giving developers a familiar tool to work with. Nevertheless there is a risk: that further cementing the dominance of VS Code will make it harder to compete on other services too.