13 पॉइंट द्वारा GN⁺ 2025-03-28 | 4 टिप्पणियां | WhatsApp पर शेयर करें
  • यह लेख Next.js की openness और governance से जुड़ी समस्याओं पर चर्चा करता है: adapters की अनुपस्थिति, आधिकारिक serverless support की कमी, Vercel-विशेष code paths, और security incidents पर Vercel का response
  • tech stack का चुनाव एक महत्वपूर्ण निर्णय है, जिसका project की development speed, quality, और team structure पर लंबे समय तक असर पड़ता है
  • open source software users को code को extend और modify करने की आज़ादी देता है, और vendor lock-in से बचने का लाभ भी देता है
  • Next.js open source के रूप में उपलब्ध है, लेकिन इसे बनाने वाली Vercel की infrastructure से गहराई से जुड़ा हुआ है
  • किसी कंपनी का अपने बनाए open source से revenue कमाना समस्या नहीं है, लेकिन open source और कंपनी के बीच की सीमा स्पष्ट होनी चाहिए ताकि मॉडल टिकाऊ रह सके

लेखक की पृष्ठभूमि और हित-संबंध

  • लेखक 4 साल से अधिक समय से Netlify में काम कर रहे हैं, और Netlify, Vercel की competitor है
  • Netlify में Next.js की पूरी functionality support करने के लिए infrastructure और tooling सीधे बनाते हुए, लेखक ने Next.js की आंतरिक संरचना की गहरी समझ हासिल की
  • लेखक लंबे समय तक सार्वजनिक रूप से यह मुद्दा उठाने से बचते रहे, लेकिन हाल में Vercel के security issue response को community के लिए हानिकारक मानकर यह लेख लिखा

# Next.js की openness और governance की समस्याएँ

Fact #1: adapters की अनुपस्थिति

  • ज़्यादातर आधुनिक frameworks deployment target के अनुसार adapters के जरिए flexible configuration की सुविधा देते हैं
  • Next.js आधिकारिक रूप से adapters को support नहीं करता, और इसका output format proprietary तथा non-public structure है, जो केवल Vercel में इस्तेमाल होता है
  • Vercel ने Build Output API बनाया, लेकिन Next.js अब भी इसे support नहीं करता
  • नतीजतन, Vercel के अलावा दूसरे providers को undocumented APIs के आधार पर build करना पड़ता है, जिससे वे अप्रत्याशित बदलावों के प्रति संवेदनशील हो जाते हैं
  • Cloudflare और Netlify, OpenNext के जरिए Next.js के लिए adapters विकसित करने में सहयोग कर रहे हैं, और Vercel ने भी इसमें हिस्सा लेना शुरू किया है, लेकिन अभी कोई ठोस timeline नहीं है

Fact #2: आधिकारिक serverless support की कमी

  • Next.js का आधिकारिक self-hosting तरीका long-running server पर आधारित है, जिससे वास्तविक production environment में flexible scaling और cost reduction हासिल करना कठिन हो जाता है
  • पहले serverless mode था, लेकिन अक्टूबर 2022 में उसे बिना किसी खास explanation के हटा दिया गया
  • React के आधिकारिक docs में serverless deployment संभव होने का उल्लेख है, लेकिन इसे लागू करने के लिए कोई आधिकारिक documentation नहीं है
  • जो hosting providers serverless environment चाहते हैं, उन्हें Next.js को reverse engineer करके अपना implementation बनाना पड़ता है

Fact #3: Vercel-विशेष code paths का अस्तित्व

  • Next.js में ऐसे non-public code paths शामिल हैं जो केवल Vercel deployment पर काम करते हैं (उदाहरण: minimal mode)
  • इस mode के जरिए Vercel performance optimization कर पाता है, जैसे middleware को edge पर चलाना
  • middleware ऐसी capability है जो cache से पहले path में तेज़ी से logic चला सकती है, लेकिन यह सुविधा केवल Vercel ही इस्तेमाल कर सकता है
  • Netlify ने इस feature को support करने के लिए dedicated engineers की टीम रखकर अपना implementation बनाया, लेकिन यह छोटे providers के लिए लगभग असंभव स्तर के resources मांगता है
  • यह वास्तविकता कि केवल Vercel ही Next.js की पूरी functionality आधिकारिक रूप से देने वाला एकमात्र platform है, framework की open source philosophy से मेल नहीं खाती

security incident और Vercel का response

  • 21 मार्च 2025 को Next.js में एक गंभीर security vulnerability (CVE 9.1) सार्वजनिक हुई, जो authentication bypass की अनुमति देती थी
  • इस vulnerability में request में एक खास header शामिल करने पर middleware निष्क्रिय हो जाता था, जिससे protected resources तक पहुंच संभव हो जाती थी
  • यह vulnerability 27 फ़रवरी को report की गई थी, लेकिन Vercel ने इसकी जांच 14 मार्च से शुरू की
  • समस्या का पता चलने के बाद patch जल्दी deploy किया गया, लेकिन Netlify जैसे दूसरे providers को सूचित करने में 8 दिन लग गए
  • शुरुआती blog post में ऐसा लिखा गया कि Vercel के firewall ने customers की रक्षा की, लेकिन वास्तव में ऐसा नहीं था
  • इसके कारण कई providers और developers ने गलत जानकारी के आधार पर response दिया या भ्रम का सामना किया, और अब भी कई sites vulnerable हो सकती हैं

Vercel का Next.js पर स्वामित्व और open source की ज़िम्मेदारी

  • इस बात से इनकार नहीं किया जा सकता कि Vercel, Next.js का owner है, और उसका monetization भी वैध है
  • लेकिन चूंकि यह open source के रूप में उपलब्ध है, इसलिए दूसरे providers भी इसे समान रूप से इस्तेमाल कर सकें — इस मामले में Vercel अपेक्षाओं पर खरा नहीं उतर रहा
  • Redis, Grafana, WordPress जैसी परियोजनाएँ भी commercial services और open source projects साथ-साथ चलाते हुए openness और interoperability बनाए रखती हैं

निष्कर्ष

  • आप कोई भी framework चुनें, यह आपका निर्णय है, और यदि Next.js आपकी समस्या का सबसे अच्छा समाधान है, तो उसे इस्तेमाल करना बिल्कुल ठीक है
  • लेकिन यह ज़रूरी है कि आप Next.js की मौजूदा संरचनात्मक समस्याओं और सीमाओं को समझकर ही चयन करें

4 टिप्पणियां

 
GN⁺ 2025-03-28
Hacker News की राय
  • मैंने next.js इस्तेमाल किया था, लेकिन जब page router से app router पर स्विच किया तो प्रोजेक्ट छोड़ दिया। app router का अनुभव इतना खराब था कि उसके बाद से next.js फिर से इस्तेमाल करने का मन नहीं हुआ
    • Vercel ओपन source होने का दिखावा करता है, लेकिन यूज़र्स को अपने hosting platform में बंद रखने के लिए दीवारें खड़ी कर रहा है
  • मुझे Vercel को लेकर हमेशा थोड़ा असहज महसूस हुआ। जब मैंने VPS पर Next.js को self-host करने की कोशिश की, तो उनके लगाए हुए छोटे-छोटे जालों में फँस गया
    • उन्होंने इस vulnerability को जिस तरह संभाला, उससे मैं और ज़्यादा असहज हो गया
    • Vercel firewall ने ग्राहकों को "सक्रिय रूप से सुरक्षित रखा" ऐसा उनका शुरुआती बयान खराब प्रभाव छोड़ गया
    • दूसरे platforms को सूचित करने में देरी हुई, और इससे लगा कि Next.js में vulnerabilities आने से रोकने की Vercel की प्रेरणा कम है
  • मैं सभी को next.js से बचने की चेतावनी देता हूँ। V0 adoption को काफ़ी बढ़ा सकता है
    • बहुत से नए developers deployment और system administration के बारे में सोचना ही नहीं चाहते
    • अगर आपको सिर्फ React आता है, तो SSR सीखे बिना भी कुछ हासिल कर लेना इसका फ़ायदा है
  • मैंने next.js इसलिए छोड़ा क्योंकि छोटे प्रोजेक्ट में changes को browser में दिखने में 6-7 सेकंड लगते थे
    • अब मैं React SPA और Vite इस्तेमाल करता हूँ
  • हमने पिछले साल Next.js से Vike पर migration किया। developer experience काफ़ी बेहतर हुआ
    • हमारी ज़्यादातर ज़रूरतें pages को pre-render करने से पूरी हो जाती हैं
  • Next.js को लेकर मेरी भावनाएँ मिश्रित हैं। एक तरफ यह investors के साथ मिलकर framework बनाने वाली कंपनी है
    • MIT license होने के कारण Netlify या कोई दूसरी कंपनी इसे fork करके बेहतर विकल्प दे सकती है
    • अगर आप Vercel के investor हैं, तो competition को मदद देने से investment risk बढ़ेगा, ऐसा न करने की वजह समझ आती है
    • Vercel open source का समर्थन करने की बात करता है, लेकिन अपने hosting platform को सबसे अच्छा विकल्प बनाए रखने के लिए friction भी बनाए रखना चाहता है
  • मैं जिस कंपनी में काम करता हूँ, वहाँ React stack चुनने की प्रक्रिया में हूँ। मुझे समझ नहीं आता कि alternatives की बजाय Next.js क्यों चुनें
    • अगर आपको SSR चाहिए, तो Remix, React Router v7, या TanStack ज़्यादा तार्किक विकल्प हैं
  • मुझे यक़ीन नहीं कि serverless approach अच्छा default है। यह अनावश्यक complexity जोड़ता है
    • मुझे backend में JavaScript इस्तेमाल करना पसंद नहीं है
    • server components और Next.js पर यह फोकस मुझे tunnel vision जैसा लगा
    • काफ़ी संभावना है कि serverless approach ही HTTP headers का इस्तेमाल करके privileged communication करने की वजह रही हो
  • इसका development build time सबसे खराब है, और वर्षों से बहुत शिकायतें रही हैं, लेकिन समाधान नहीं हुआ
  • Vercel और NextJS का होना ही नहीं चाहिए
    • जब मैंने Next को एक बार आज़माया, तो production में बहुत सारे hydration errors मिले
    • server पर rendering से मिलने वाले संभावित फ़ायदे के लिए यह framework हर चीज़ को ज़रूरत से ज़्यादा जटिल बना देता है
    • पूरा framework उनकी महँगी cloud services बेचने के लिए एक अच्छा मुखौटा जैसा बनाया गया है
 
ahwjdekf 2025-03-28

लेखक Netlify से जुड़े हैं, और उनके अपने शब्दों में Vercel के सीधे प्रतिस्पर्धी हैं। इसलिए यह थोड़ा कम निष्पक्ष लगता है।

 
preserde 2025-03-28

अगर आपने हाल में tanstack या remix जैसे प्रतिस्पर्धी frameworks की तुलना की है, तो लेख की बातों में ज़्यादातर या कम-से-कम कुछ बातें ऐसी होंगी जिन्हें सब पहले से जानते हैं। अभी nextjs की हिस्सेदारी बहुत बड़ी है और Vercel भी अभी इतना खुला आक्रामक रुख नहीं दिखा रहा, इसलिए ये बातें सतह पर नहीं आई हैं।

 
alpharoom 2025-03-28

सिर्फ इसलिए कि लेखक किसी प्रतिस्पर्धी कंपनी में काम करता है, यह कहना कि लेख में दी गई जानकारी निष्पक्ष नहीं है, एक व्यक्तिगत हमला है। अगर लेखक की पृष्ठभूमि और हितों को हटाकर पढ़ें, तो क्या यह फिर भी अजीब लेख लगता है? मुझे लगता है कि यह उपयोगी जानकारी है।