మీకు NextJS అవసరం లేదు
React యాప్లను నిర్మించడానికి Next.js అనేది డిఫాల్ట్ సమాధానం. ఇది ఒక గొప్ప ఫ్రేమ్వర్క్. కానీ డిఫాల్ట్ అని దాని అర్థం అది తప్పనిసరి అని కాదు.
తప్పుడు ప్రాజెక్ట్ కోసం దీనిని ఉపయోగించడం వల్ల మా వేగం తగ్గింది మరియు టీమ్లో విభేదాలు వచ్చాయి. మేము డాష్బోర్డ్లు మరియు చార్ట్లతో కూడిన డేటా-హెవీ (data-heavy) ఉత్పత్తిని నిర్మించాము. దాదాపు ప్రతి స్క్రీన్ లాగిన్ వెనుక ఉంటుంది.
ఈ రకమైన యాప్ల కోసం, server-side rendering (SSR) ఎటువంటి విలువను చేర్చకుండా ఖర్చును మాత్రమే పెంచింది.
సరైన సాధనం మీరు ఏమి నిర్మిస్తున్నారు అనే దానిపై ఆధారపడి ఉంటుంది.
Content-first ప్రాజెక్ట్లు: • మార్కెటింగ్ సైట్లు • బ్లాగులు • స్టోర్ఫ్రంట్లు • డాక్యుమెంటేషన్ (Docs) • ఇక్కడ Next.js ఉపయోగించండి. SEO ముఖ్యం మరియు కంటెంట్ స్టాటిక్ (static) గా ఉంటుంది.
Application-first ప్రాజెక్ట్లు: • ఇంటర్నల్ టూల్స్ • డాష్బోర్డ్లు • అడ్మిన్ ప్యానెల్లు • SaaS కన్సోల్లు • ఇక్కడ Vite-ఆధారిత SPA ఉపయోగించండి. ఈ యాప్లు ఆథెంటికేషన్ (auth) వెనుక ఉంటాయి మరియు APIలపై ఆధారపడతాయి.
మేము Next.js నుండి Vite SPAకి మారాము. దానికి కారణాలు ఇవే:
సులభమైన డీబగ్గింగ్ (Debugging) సర్వర్ ఎర్రర్లు మీ కాంపోనెంట్స్కు నేరుగా సంబంధం కలిగి ఉండవు. క్లయింట్-సైడ్ ఎర్రర్లు బ్రౌజర్లోనే స్పష్టమైన స్టాక్ ట్రేస్లతో (stack traces) జరుగుతాయి. ఇది బగ్లను వేగంగా పరిష్కరించడానికి సహాయపడుతుంది.
మెరుగైన టెస్టింగ్ (Testing) ఇతర సర్వర్ కాంపోనెంట్స్ను రెండర్ చేసే సర్వర్ కాంపోనెంట్ను మీరు సులభంగా యూనిట్ టెస్ట్ చేయలేరు. టెస్టింగ్ చేయగలిగేలా ఉండటం కోసం మేము కొన్ని డిజైన్ నిర్ణయాలు తీసుకున్నాము. అది ఒక తప్పు.
సరళమైన ఆథెంటికేషన్ (Auth) ప్రతి రిక్వెస్ట్పై సర్వర్ టోకెన్లను ధృవీకరించాల్సి ఉంటుంది. ఇది ఎక్కువ అటాక్ సర్ఫేస్లను (attack surfaces) మరియు సంక్లిష్టమైన కుకీ లాజిక్ను సృష్టిస్తుంది. క్లయింట్-ఫస్ట్ యాప్ ఆథెంటికేషన్ను ఒకే చోట నిర్వహిస్తుంది: అదే API.
తక్కువ ఇన్ఫ్రాస్ట్రక్చర్ ఖర్చులు ప్రతి రిక్వెస్ట్ కోసం SSR కి ఎల్లప్పుడూ ఆన్ లో ఉండే సర్వర్ అవసరం. స్టాటిక్ ఫ్రంటెండ్ CDN నుండి ఫైల్లుగా పంపిణీ చేయబడుతుంది. మీరు నిర్వహించాల్సిన మరియు భద్రపరచాల్సిన సర్వీస్ ఒకటి తగ్గుతుంది.
తక్కువ సంక్లిష్టత Next.js సర్వర్ మరియు క్లయింట్ మధ్య విభజనను బలవంతం చేస్తుంది. ఫ్రంటెండ్ ఇంజనీర్లు మిడిల్వేర్ (middleware) మరియు క్యాషింగ్ (caching) వంటి సర్వర్ అంశాలను కూడా నిర్వహించాల్సి వచ్చింది. ఇది మా వేగాన్ని తగ్గించింది.
మేము దశలవారీగా మారాము. పబ్లిక్ SEO-ముఖ్యమైన పేజీల కోసం Next.js ని ఉంచాము. మిగిలినవన్నీ Vite SPAకి మార్చాము.
దీని వల్ల కలిగే నష్టాలు (trade-offs) చాలా తక్కువ: • SEO: లాగిన్ వెనుక ఉండే డాష్బోర్డ్లకు SEO అవసరం లేదు. • ఇనిషియల్ లోడ్ (Initial load): డేటా-హెవీ యాప్లు సాధారణంగా డేటాబేస్ వల్ల నెమ్మదిగా ఉంటాయి, ఫ్రేమ్వర్క్ వల్ల కాదు.
SEO మరియు సోషల్ ప్రివ్యూలు ముఖ్యం అయితే Next.js ఉపయోగించండి. మీ యాప్ ఇంటరాక్టివ్గా, డేటా-డ్రివెన్గా మరియు లాగిన్ వెనుక ఉంటే Vite SPA ఉపయోగించండి.
డిఫాల్ట్ను వాడటం ఆపండి. మీరు నిజంగా ఏమి నిర్మిస్తున్నారో మీకు మీరు ప్రశ్నించుకోండి.
Source: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
