Technical discovery: Proof of concept VS Code implementation
Goal
Build a proof of concept (PoC) of VS Code running in the browser, and evaluate it as a potential replacement for the Web IDE.
Outcome
A successful demonstration of VS Code running as a full replacement for the Web IDE. The demo highlighted the architecture, security considerations, maintainability, and customization options.
Next steps tracked in &7683
Links
Open questions
- How much of the UI can we actually hide and/or replace in order to customize the GitLab experience?
- What architecture can we establish to ensure consistency across editing experiences? For example, adding features to both the Web Editor and VS Code-based Web IDE that feel connected and familiar.
- What does the performance look like on really large (10,000+ line) MRs?
- To what extent can we customize the extension management experience? If we decide that managing them in VS Code/Web IDE is undesirable, can we hide that from the IDE and develop our own view for managing extensions?
- Are there any legal concerns with using VS Code and the extensions library?
- How will extensions work on self-managed instances, especially those with strict firewalls? Can they manage an allowlist or otherwise control the extensions visible in the app? Can they provide their own extensions without going through VS Code?
Next steps
- Research. We need to run a solution validation cycle to see how users react to the experience within GitLab. @mle and @ericschurter to coordinate.
- More research. We should run a survey to understand how many of our users are already vested in the VS Code ecosystem. @ericschurter to draft a survey.
- Review with Legal @ericschurter will be DRI - https://gitlab.com/gitlab-com/legal-and-compliance/-/issues/776
- Review architecture with Security with a particular focus on extensions
- Break implementation down into epics and issues for estimation and planning @pslaughter @oregand @ericschurter to coordinate.
- Profile performance comparisons between existing Web IDE and PoC, with a focus on small/medium/large MRs and repositories. @pslaughter is DRI
- Answer the open questions async (in this issue is fine).
Edited by Eric Schurter