GitHub , platform hosting kode terbesar di dunia, menghadapi kritik yang meningkat dari para developer atas degradasi performa yang parah yang telah mengubah interaksi yang dulunya cepat menjadi pengalaman yang sangat lambat dan membuat frustrasi. Yang dulunya transisi halaman instan kini membutuhkan waktu lebih dari 5 detik, dengan beberapa operasi menjadi hampir tidak dapat digunakan di platform yang menampung jutaan proyek perangkat lunak.
Masalah performa ini berasal dari migrasi berkelanjutan GitHub dari arsitektur vanilla JavaScript dan web components asli mereka ke aplikasi single-page berbasis React (SPAs). Transisi ini, yang dimulai beberapa tahun lalu, telah memperkenalkan overhead yang signifikan yang membuat operasi dasar seperti beralih antar tab pull request atau melihat code diff menjadi sangat lambat.
Perbandingan Performa:
- Perpindahan tab GitHub : 5+ detik
- Membuka halaman yang sama di tab baru: ~2,5 detik (2x lebih cepat)
- Waktu pemrosesan sisi klien: Lebih lama dari pemuatan HTML server
- Batas kegunaan diff viewer: ~5.000 baris perubahan
Migrasi React Menciptakan Lebih Banyak Masalah Daripada Solusi
Masalah inti terletak pada implementasi GitHub terhadap client-side routing menggunakan React dan Turbo untuk transisi halaman. Meskipun teknologi ini dimaksudkan untuk menciptakan pengalaman pengguna yang lebih lancar dengan menghindari reload halaman penuh, mereka justru mencapai efek sebaliknya. Analisis komunitas mengungkapkan bahwa pemrosesan client-side kini membutuhkan waktu lebih lama daripada sekadar memuat HTML dari server - sebuah kegagalan fundamental dari pendekatan SPA.
Ironinya sangat mencolok ketika mempertimbangkan bahwa membuka halaman GitHub di tab baru sebenarnya dua kali lebih cepat daripada navigasi melalui single-page application. Hal ini mengalahkan seluruh tujuan client-side routing, yang seharusnya memberikan transisi instan antar halaman.
Diff Viewer Menjadi Tidak Dapat Digunakan untuk File Besar
Salah satu fitur yang paling terdampak adalah diff viewer GitHub , yang kesulitan dengan file yang berisi lebih dari beberapa ribu baris perubahan. Sistem mencoba merender sejumlah besar DOM nodes - terkadang lebih dari 100.000 - menyebabkan browser membeku selama beberapa detik. Bahkan operasi sederhana seperti mengubah ukuran developer tools dapat mengunci interface selama 3+ detik.
Masalah ini diperparah oleh praktik rendering yang tidak efisien, seperti membuat ribuan tombol tak terlihat dengan ikon SVG inline yang identik. Pilihan implementasi ini menciptakan overhead komputasi yang tidak perlu yang sulit ditangani oleh browser modern secara efisien.
Masalah Teknis yang Teridentifikasi:
- Lebih dari 100.000 node DOM dirender dalam beberapa tampilan
- Ribuan tombol tidak terlihat dengan ikon SVG inline yang identik
- 14+ permintaan API untuk halaman gambaran umum file sederhana
- 5+ permintaan API GraphQL untuk daftar masalah
- Pembekuan browser selama 3 detik saat mengubah ukuran jendela
![]() |
|---|
| Analisis performa diff viewer GitHub menyoroti masalah yang dihadapi saat merender file berukuran besar, seperti yang dibahas dalam artikel |
Kekacauan Navigasi dan Fitur Dasar yang Rusak
Selain masalah performa, migrasi React GitHub telah merusak fitur browsing web fundamental yang telah diandalkan pengguna selama puluhan tahun. Tombol back browser kini berperilaku tidak dapat diprediksi, terkadang melompat beberapa langkah dalam riwayat atau memuat halaman rusak yang tidak pernah selesai rendering. Fitur seperti Ctrl+Enter untuk membuka link di tab baru secara misterius berhenti bekerja.
Semuanya menjadi semakin buruk sejak penulisan ulang React. Semuanya menjadi jauh lebih lambat dan bermasalah. Dan hal-hal seperti 'tombol back' terus bertindak aneh.
Masalah ini meluas ke browser mobile juga, di mana GitHub menjadi benar-benar tidak dapat digunakan di Safari untuk iOS selama periode 9-12 bulan, mencegah pengguna melihat kode atau berpartisipasi dalam diskusi tanpa beralih ke browser alternatif.
Fitur yang Rusak:
- Navigasi tombol kembali/maju browser
- Ctrl+Enter untuk membuka tautan di tab baru
- Kompatibilitas Safari iOS (periode gangguan 9-12 bulan)
- Retensi posisi scroll selama transisi halaman
- Pembaruan komentar real-time dalam diskusi
Akar Penyebab Teknis
Masalah performa dapat ditelusuri kembali ke perbedaan fundamental dalam bagaimana React menangani state management dibandingkan dengan framework modern lainnya. Model reaktivitas terbalik React berarti seluruh fungsi komponen berfungsi sebagai callback reaktif, mengharuskan developer untuk secara eksplisit opt out dari perubahan state daripada opt in. Pendekatan ini menjadi semakin bermasalah dalam skala besar, karena menuntut optimisasi yang hati-hati melalui teknik memoization yang sering diabaikan oleh banyak developer.
Sementara itu, framework seperti Vue , Svelte , dan Solid menggunakan reaktivitas berbasis signals yang menargetkan subscriber spesifik, menghasilkan update yang lebih efisien. Pilihan GitHub terhadap React , meskipun populer untuk tujuan perekrutan, telah menciptakan technical debt yang termanifestasi sebagai pengalaman pengguna yang buruk.
Komunitas Mencari Alternatif
Pengalaman yang terdegradasi telah mendorong beberapa developer untuk mencari alternatif. Solusi self-hosted seperti Gitea dan Forgejo mendapat perhatian karena kecepatan dan keandalan mereka, meskipun mereka kekurangan network effects dan kelengkapan fitur GitHub . Beberapa entrepreneur membangun alternatif UI GitHub yang menjanjikan performa lebih baik sambil mempertahankan kompatibilitas dengan API GitHub .
Situasi ini menyoroti tren yang lebih luas dalam pengembangan web di mana mengejar praktik pengembangan modern terkadang mengorbankan pengalaman pengguna. Karena GitHub terus menjadi platform utama untuk pengembangan open-source dan kolaborasi kode enterprise, masalah performa ini mempengaruhi jutaan developer di seluruh dunia yang bergantung pada platform untuk pekerjaan harian mereka.
Tim engineering GitHub mengakui masalah performa dan telah melakukan upaya lintas tim selama setahun untuk mengatasinya, meskipun perbaikan signifikan masih sulit dicapai. Hingga perubahan substansial dibuat, developer harus terus menavigasi platform yang telah berubah dari infrastruktur yang dapat diandalkan menjadi bottleneck yang semakin membuat frustrasi dalam workflow mereka.
Referensi: Why is GitHub UI getting so much slower?

