13 poin oleh GN⁺ 2025-03-28 | 4 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-03-28
Opini Hacker News
  • Saya sempat memakai next.js lalu menyerah pada proyek saat beralih dari pages router ke app router. Pengalaman dengan app router sangat buruk, dan sejak itu saya tidak ingin memakai next.js lagi
    • Vercel berpura-pura menjadi open source, tetapi sedang membangun tembok untuk mengunci pengguna ke platform hosting mereka
  • Saya selalu agak gelisah terhadap Vercel. Saat mencoba self-host Next.js di VPS, saya terkena jebakan-jebakan kecil yang mereka siapkan
    • Cara mereka menangani kerentanan ini membuat saya makin tidak nyaman
    • Penjelasan awal bahwa firewall Vercel "secara aktif melindungi" pelanggan meninggalkan kesan buruk
    • Ada keterlambatan dalam memberi tahu platform lain, dan ini menunjukkan bahwa Vercel punya insentif yang lebih kecil untuk mencegah kerentanan masuk ke Next.js
  • Saya memperingatkan semua orang untuk menghindari next.js. V0 kemungkinan akan sangat meningkatkan adopsi
    • Banyak pengembang baru tidak ingin memikirkan deployment dan administrasi sistem
    • Jika hanya tahu React, keuntungan utamanya adalah bisa mendapatkan SSR tanpa harus mempelajarinya
  • Alasan saya meninggalkan next.js adalah karena pada proyek kecil pun perubahan butuh 6-7 detik untuk muncul di browser
    • Sekarang saya memakai React SPA dan Vite
  • Kami pindah dari Next.js ke Vike tahun lalu. Pengalaman pengembang meningkat drastis
    • Sebagian besar kebutuhan kami terpenuhi dengan pre-rendering halaman
  • Saya punya perasaan campur aduk tentang Next.js. Di satu sisi, ini adalah perusahaan yang membangun framework bersama para investor
    • Karena berlisensi MIT, Netlify atau perusahaan lain bisa melakukan fork dan menawarkan alternatif yang lebih baik
    • Jika Anda investor Vercel, tidak ada alasan membantu kompetitor yang justru akan menambah risiko investasi
    • Vercel mendukung open source, tetapi tetap berusaha mempertahankan friksi agar platform hosting mereka menjadi pilihan terbaik
  • Saya sedang dalam proses memilih stack React di perusahaan tempat saya bekerja. Saya tidak bisa membayangkan alasan memilih Next.js dibanding alternatifnya
    • Remix, React Router v7, dan TanStack adalah pilihan yang lebih masuk akal jika Anda menginginkan SSR
  • Saya tidak yakin pendekatan serverless adalah default yang baik. Itu menambah kompleksitas yang tidak perlu
    • Saya tidak suka memakai JavaScript di backend
    • Fokus pada server components dan Next.js terasa seperti tunnel vision bagi saya
    • Sangat mungkin pendekatan serverless menjadi alasan di balik komunikasi berprivilege yang memakai HTTP header
  • Memiliki waktu build pengembangan terburuk, dan sudah ada banyak keluhan selama bertahun-tahun tetapi tidak terselesaikan
  • Vercel dan NextJS seharusnya tidak ada
    • Saat saya mencoba Next sekali, saya menemui banyak hydration error di production
    • Framework ini membuat semuanya jadi rumit demi potensi keuntungan dari rendering di server
    • Seluruh framework ini dibuat sebagai tampilan yang bagus untuk menjual layanan cloud mereka yang mahal
 
ahwjdekf 2025-03-28

Penulisnya bekerja di Netlify, dan menurut pengakuannya sendiri merupakan pesaing langsung Vercel. Ini jadi terlihat agak kurang objektif.

 
preserde 2025-03-28

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.

 
alpharoom 2025-03-28

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.