This vision is a work in progress, and everyone can contribute:
Writing and editing code is essential to the development process, but is almost entirely dependent on local development workflows for all but the most trivial changes. Editing more than a single file using the GitLab interface has historically been laborious because each file must be edited one by one. This makes it harder to resolve feedback in merge requests, fix small bugs when reading source code, or contribute to new projects.
Contributing to a new project has numerous barriers, one of which is setting up a local development environment. In open source projects or private organizations that have large complex development environments it may be challenging to setup a proper environment and require a significant amount of time just to get started.
We want to make it easy for everyone to contribute. Removing barriers will help people contribute more than fixes to typos and dead links, but allow people to contribute larger changes, offer more comprehensive code review suggestions and be able to do meaningful development in a cloud development environment.
A Web IDE (integrated development environment) should support:
The Web IDE should be a functional tool for all users who work in source controlled projects. This includes Product Managers, Marketers, Developers, Engineers and anyone else inside and outside an organization who might interact with projects. By offering a full featured replacement for local environments, GitLab helps to lower the barrier for entry for all users to contribute.
Currently, GitLab's maturity in the Web IDE is viable. Here's why:
A complete Web IDE category would move beyond a rich editing experience and include the tools users require to write and test their code. Bringing in the features for evaluating code, linting/formatting/completion, and syntax highlighting preferences further the Web IDE's use beyond simple edits to complete development processes. GitLab's WebIDE will become a valuable tool in the developers toolkit as more of their work is moved to GitLab.
A Lovable Web IDE comes when we're expanding beyond replacing local development environments to enabling a viable live coding experience and supporting configurable development environments for users working across multiple language or dependency projects.
In progress: Server side evaluation &167
The Web IDE is currently a well featured web editor built on Monaco that is integrated with merge requests and CI, but it isn't yet a fully functional integrated development environment.
Using GitLab CI runners we will open a Web Terminal to a CI runner when the Web IDE is opened so that tests can be run in real-time. Changes will be mirrored from the Web IDE to the CI runner. Once changes are mirrored live from the Web IDE to the runner, we should be able to expose a port to the runner and serve contents from the development environment.
In progress: Self-hosted client side evaluation &484
Client-side evaluation live preview in the Web IDE is powered by Codesandbox and currently relies on Codesandbox services to retrieve and package dependencies. Ideally, self hosted GitLab installations should be able to use Codesandbox capabilities in an entirely self hosted manner.
Next: Lint, Format and Code Completion &70
As users continue to move more work to the Web IDE tools commonly found in local environments become more important. By bringing linting, formatters and code completion to the Web IDE users can be more confident in their work and spend less time in code reviews working through simple errors and poor formating.
The most important items to moving the Web IDE strategy forward are Server side evaluation &167 and Self-hosted client side evaluation &484. Both of these further enable our ability to run and interact on the code running in the Web IDE. These are imperative to expanding our capabilities for Linting, Code Completion and much more.