Why is GitHub UI getting slower?
Perceived slowdown and flakiness
- Many report a clear slowdown starting around the UI revamp: pages half-loading, navigation bar without content, or long delays even for small actions (notifications, logs, diffs).
- Code view and diff view are frequent pain points: long files or ~5k-line diffs cause hangs or unusable lag, sometimes failing to fully render.
- Users increasingly resort to “View raw”, cloning locally, or alternative tools just to read or review code.
React/SPA rewrite as main suspect
- Multiple comments tie the degradation to GitHub’s ongoing migration to React and heavier SPA-style client-side rendering.
- Previously, GitHub relied on Rails with mostly server-rendered HTML, jQuery/PJAX, and later web components; now many key areas load via JSON/GraphQL APIs and React.
- Some say basic functionality was broken for long periods (e.g., Safari back/forward, older browser support) during this transition.
Technical explanations and debates
- Critics highlight:
- Excessive numbers of API requests per page.
- Huge DOM trees (e.g., character-by-character nodes for search compatibility) leading to CSS recalculation cost.
- React’s “inverted” reactivity model making performance tuning hard at scale, with constant need for memoization.
- Others argue React alone isn’t to blame; implementation choices and DOM size matter more.
- There’s frustration that simple server-rendered HTML would handle many use cases faster and more reliably.
UX regressions and navigation issues
- SPA routing frequently breaks or confuses browser history: back button unpredictability, stuck pages, lost scroll position, stale issue lists.
- Design changes (e.g., “New Issue” in a small modal, symbol explorer hijacking back behavior) are seen as worse UX.
- Some basic keyboard and multi-tab workflows (Ctrl+Enter to open in new tab, opening organizations, navigating to author profiles) reportedly broke or became awkward.
Diff size and tooling expectations
- One camp argues 5k-line diffs are “too big” and should be split.
- Others counter with valid large-diff scenarios (bulk renames, translations, big new files, cross-version comparisons) and say tools should handle them, as they previously did.
Alternatives and new projects
- Users mention moving to or self-hosting Forgejo/Gitea, Codeberg, and new performance-focused frontends (HTMX-based Git hosting, alternate PR UIs, GitHub wrapper apps).
- Many express nostalgia for a stripped-down, fast 2012-era GitHub and call for parallel “old” UIs as a performance benchmark.