Reusable Rapid Diffs (was: New diffs)
## TL;DR
Rapid Diffs is an effort to transform how diffs work across the whole GitLab.
| Before | After |
| ------ | ------ |
| Pagination for large diffs | Streaming for all diffs |
| Virtual rendering for MR diffs | Native rendering with [content visibility](https://web.dev/articles/content-visibility) for all diffs |
| Lags after 5-10 files loaded | Doesn't lag with 1000+ files |
| Inconsistent UI across pages | Unified UI |
| Legacy file browser | File browser from merge requests |
| Scattered codebase | Unified codebase |
## Context
For the past years, the ~"group::code review" team has worked tirelessly to improve performance using the current architecture of a Vue + Vuex app. We've learned a lot and made immense progress towards a performant MR experience.
Yet, we've been feeling quite constrained by the current approach and feel the need to rethink and plan an actionable path to provide a quantum leap in terms of maintainability and performance for the Diffs experience.
## Summary
Develop a single, performant way for diffs to be rendered across the application. Our aim here is to improve all areas of diff rendering, from the backend creation of diffs to the frontend rendering the diffs.
## Goals, proposal, definitions
The SSoT is the **blueprint**: https://docs.gitlab.com/ee/architecture/blueprints/rapid_diffs/index.html
epic