- Artikel yang membahas masalah keterbukaan dan tata kelola Next.js: ketiadaan adapter, kurangnya dukungan serverless resmi, jalur kode khusus Vercel, serta cara Vercel merespons insiden keamanan
- Memilih tech stack adalah keputusan penting yang berdampak jangka panjang pada kecepatan pengembangan, kualitas, komposisi tim, dan lainnya dalam sebuah proyek
- Perangkat lunak open source memberi pengguna kebebasan untuk memperluas dan memodifikasi kode, serta keuntungan untuk menghindari vendor lock-in
- Next.js tersedia sebagai open source, tetapi sangat terkait erat dengan infrastruktur Vercel yang membuatnya
- Tidak masalah jika perusahaan memperoleh pendapatan dari open source yang mereka buat, tetapi batas antara open source dan perusahaan harus jelas agar model tersebut berkelanjutan
Latar belakang dan kepentingan penulis
- Penulis bekerja di Netlify selama lebih dari 4 tahun, dan Netlify berada dalam hubungan kompetitif dengan Vercel
- Dengan membangun sendiri infrastruktur dan tooling untuk mendukung seluruh fitur Next.js di Netlify, penulis memperoleh pemahaman mendalam tentang struktur internal Next.js
- Selama ini penulis enggan mengangkat masalah ini secara terbuka, tetapi baru-baru ini menilai cara Vercel menangani isu keamanan telah merugikan komunitas, sehingga memutuskan menulis artikel ini
# Masalah keterbukaan dan tata kelola Next.js
Fakta #1: Ketiadaan adapter
- Sebagian besar framework modern dapat dikonfigurasi secara fleksibel melalui adapter sesuai target deployment
- Next.js tidak secara resmi mendukung adapter, dan format output-nya berupa struktur proprietari dan tertutup yang hanya digunakan di Vercel
- Vercel telah membuat Build Output API, tetapi Next.js masih belum mendukungnya
- Akibatnya, penyedia selain Vercel harus membangun berdasarkan API yang tidak terdokumentasi, sehingga rentan terhadap perubahan tak terduga
- Cloudflare dan Netlify bekerja sama mengembangkan adapter Next.js melalui OpenNext, dan Vercel juga mulai ikut terlibat, tetapi belum ada jadwal yang konkret
Fakta #2: Kurangnya dukungan serverless resmi
- Metode self-hosting resmi Next.js berbasis server yang berjalan jangka panjang, sehingga sulit mewujudkan skalabilitas fleksibel dan penghematan biaya di lingkungan produksi nyata
- Dulu ada mode serverless, tetapi dihapus pada Oktober 2022 tanpa penjelasan berarti
- Dokumentasi resmi React menyebut deployment serverless dimungkinkan, tetapi tidak ada dokumentasi resmi untuk benar-benar mengimplementasikannya
- Penyedia hosting yang menginginkan lingkungan serverless harus melakukan reverse engineering pada Next.js dan mengimplementasikannya sendiri
Fakta #3: Adanya jalur kode khusus Vercel
- Next.js mencakup jalur kode tertutup yang hanya berfungsi saat deployment di Vercel (misalnya: minimal mode)
- Melalui mode ini, Vercel dapat melakukan optimasi performa seperti menjalankan middleware di edge
- Middleware adalah fitur yang memungkinkan logika dijalankan cepat di jalur sebelum cache, tetapi fitur ini hanya bisa digunakan oleh Vercel
- Netlify menyiapkan tim engineer khusus dan membuat implementasinya sendiri untuk mendukung fitur ini, tetapi tingkat sumber daya seperti itu mustahil bagi penyedia kecil
- Kenyataan bahwa hanya Vercel yang secara resmi menyediakan seluruh fitur Next.js bertentangan dengan filosofi open source dari framework tersebut
Insiden keamanan dan respons Vercel
- Pada 21 Maret 2025, dipublikasikan kerentanan keamanan serius di Next.js yang memungkinkan bypass autentikasi (CVE skor 9.1)
- Kerentanan tersebut memungkinkan middleware dilumpuhkan dengan menyertakan header tertentu dalam request, sehingga resource yang dilindungi bisa diakses
- Kerentanan ini dilaporkan pada 27 Februari, tetapi Vercel baru mulai menyelidikinya pada 14 Maret
- Setelah menyadari masalahnya, patch memang segera dirilis, tetapi butuh 8 hari untuk memberi tahu penyedia lain seperti Netlify
- Tulisan blog awal menggambarkannya seolah firewall Vercel telah melindungi pelanggan, padahal kenyataannya tidak demikian
- Akibatnya, berbagai penyedia dan developer merespons berdasarkan informasi yang keliru atau mengalami kebingungan, dan masih mungkin banyak situs tetap berada dalam kondisi rentan
Kepemilikan Vercel atas Next.js dan tanggung jawab open source
- Fakta bahwa Vercel memiliki Next.js tidak bisa disangkal, dan monetisasi juga sah
- Namun, karena disediakan sebagai open source, penyedia lain juga seharusnya bisa menggunakannya secara setara, dan dalam hal ini Vercel belum memenuhi harapan
- Redis, Grafana, WordPress, dan lainnya juga menjalankan layanan komersial sekaligus proyek open source sambil tetap menjaga keterbukaan dan interoperabilitas
Kesimpulan
- Framework apa pun yang dipilih tetap merupakan keputusan pengguna, dan jika Next.js adalah pilihan terbaik untuk menyelesaikan masalah, menggunakannya apa adanya juga tidak masalah
- Namun, penting untuk memilih dengan memahami masalah struktural dan keterbatasan yang saat ini dimiliki Next.js
4 komentar
Opini Hacker News
Penulisnya bekerja di Netlify, dan menurut pengakuannya sendiri merupakan pesaing langsung Vercel. Ini jadi terlihat agak kurang objektif.
Isi artikelnya adalah hal-hal yang, jika Anda baru-baru ini membandingkan framework pesaing seperti TanStack atau Remix, sedikit banyak sudah diketahui semua orang. Untuk saat ini pangsa pasar Next.js masih sangat besar dan Vercel juga belum menunjukkan langkah yang terang-terangan, jadi hal ini belum muncul ke permukaan.
Mengklaim bahwa informasi yang ingin disampaikan dalam tulisan ini kurang objektif hanya karena penulis bekerja di perusahaan pesaing adalah serangan pribadi. Jika dibaca tanpa mengetahui latar belakang dan kepentingan penulis, apakah ini tetap terasa seperti tulisan yang aneh? Menurut saya, ini adalah informasi yang berguna.