உங்களுக்கு NextJS தேவையில்லை
Next.js என்பது React செயலிகளை உருவாக்குவதற்கு இயல்பான (default) தீர்வாக உள்ளது. இது ஒரு சிறந்த framework ஆகும். ஆனால் இயல்பாக இருக்கிறது என்பதற்காக அது அவசியம் என்று அர்த்தமல்ல.
தவறான திட்டத்திற்கு இதைப் பயன்படுத்தியதால் எங்களது வேகம் குறைந்ததுடன், குழுவிற்குள் கருத்து வேறுபாடுகளும் ஏற்பட்டன. நாங்கள் dashboards மற்றும் charts கொண்ட, அதிக தரவுகளைக் கையாளும் (data-heavy) ஒரு தயாரிப்பை உருவாக்கினோம். கிட்டத்தட்ட ஒவ்வொரு திரையும் ஒரு login-க்கு பின்னால்தான் இருந்தது.
இத்தகைய செயலிகளுக்கு, server-side rendering (SSR) கூடுதல் மதிப்பைக் கொடுக்காமல் கூடுதல் செலவை மட்டுமே ஏற்படுத்தியது.
சரியான கருவி என்பது நீங்கள் எதை உருவாக்குகிறீர்கள் என்பதைப் பொறுத்தது.
Content-first திட்டங்கள்: • Marketing sites • Blogs • Storefronts • Docs • இங்கே Next.js-ஐப் பயன்படுத்தவும். SEO முக்கியமானது மற்றும் உள்ளடக்கம் (content) நிலையானது (static).
Application-first திட்டங்கள்: • Internal tools • Dashboards • Admin panels • SaaS consoles • இங்கே Vite-அடிப்படையிலான SPA-வைப் பயன்படுத்தவும். இந்தச் செயலிகள் auth-க்கு பின்னாலேயே இயங்கும் மற்றும் APIs-ஐச் சார்ந்து இருக்கும்.
நாங்கள் Next.js-லிருந்து ஒரு Vite SPA-விற்கு மாறினோம். அதற்கான காரணங்கள் இதோ:
எளிதான Debugging Server பிழைகள் உங்கள் components-உடன் சரியாகப் பொருந்தாது. Client-side பிழைகள் பிரவுசரில் தெளிவான stack traces உடன் நிகழும். இது பிழைகளை (bugs) விரைவாகச் சரிசெய்ய உதவுகிறது.
சிறந்த Testing மற்ற server components-களை render செய்யும் ஒரு server component-ஐ எளிதாக unit test செய்ய முடியாது. test செய்யக்கூடியதாக இருக்க வேண்டும் என்பதற்காகவே நாங்கள் சில design முடிவுகளை எடுத்தோம். அது ஒரு தவறான முடிவாகிவிட்டது.
எளிமையான Auth SSR ஒவ்வொரு request-க்கும் server tokens-ஐச் சரிபார்க்க வேண்டும். இது அதிகப்படியான attack surfaces மற்றும் சிக்கலான cookie logic-ஐ உருவாக்குகிறது. ஒரு client-first app auth-ஐ ஒரே இடத்தில் கையாள்கிறது: அதுதான் API.
குறைந்த உள்கட்டமைப்புச் செலவு (Infrastructure Costs) SSR ஒவ்வொரு request-க்கும் எப்போதும் இயங்கிக்கொண்டிருக்கும் ஒரு server-ஐத் தேவைப்படும். ஒரு static frontend என்பது CDN-லிருந்து கோப்புகளாக (files) அனுப்பப்படும். இதனால் நீங்கள் இயக்க வேண்டிய மற்றும் பாதுகாக்க வேண்டிய சேவைகள் குறையும்.
குறைந்த சிக்கல் (Complexity) Next.js, server மற்றும் client ஆகியவற்றுக்கு இடையே ஒரு பிரிவை உருவாக்குகிறது. Frontend engineers, middleware மற்றும் caching போன்ற server சார்ந்த விஷயங்களைக் கையாள வேண்டியிருந்தது. இது எங்களது வேகத்தைக் குறைத்தது.
நாங்கள் கட்டங்களாக (phases) மாற்றினோம். பொதுவான SEO-க்கு முக்கியமான பக்கங்களுக்கு Next.js-ஐத் தொடர்ந்தோம். மற்ற அனைத்தையும் Vite SPA-விற்கு மாற்றினோம்.
இதில் ஏற்பட்ட இழப்புகள் (trade-offs) மிகச் சிறியவை: • SEO: login-க்கு பின்னாலிருக்கும் Dashboards-களுக்கு SEO தேவையில்லை. • Initial load: அதிக தரவுகளைக் கையாளும் செயலிகள் பொதுவாக database காரணமாகவே மெதுவாக இருக்கும், framework காரணமாக அல்ல.
SEO மற்றும் social previews முக்கியமென்றால் Next.js-ஐப் பயன்படுத்தவும். உங்கள் செயலி interactive ஆகவும், தரவு சார்ந்ததாகவும் (data-driven), login-க்கு பின்னாலேயே இயங்குவதாகவும் இருந்தால் Vite SPA-வைப் பயன்படுத்தவும்.
இயல்பான (default) தீர்வுகளைப் பயன்படுத்துவதை நிறுத்துங்கள். நீங்கள் உண்மையில் எதை உருவாக்குகிறீர்கள் என்று உங்களையே கேட்டுக்கொள்ளுங்கள்.
Source: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
