ನಿಮಗೆ NextJS ಅಗತ್ಯವಿಲ್ಲ
React ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು Next.js ಒಂದು default ಉತ್ತರವಾಗಿದೆ. ಇದು ಒಂದು ಅದ್ಭುತವಾದ framework ಆಗಿದೆ. ಆದರೆ default ಎಂದರೆ ಅದು ಅಗತ್ಯ ಎಂದರ್ಥವಲ್ಲ.
ತಪ್ಪು ಪ್ರಾಜೆಕ್ಟ್ಗಾಗಿ ಇದನ್ನು ಬಳಸಿದ್ದು ನಮ್ಮ ವೇಗವನ್ನು ಕಡಿಮೆ ಮಾಡಿತು ಮತ್ತು ತಂಡದಲ್ಲಿ ಅಸಮಾಧಾನಕ್ಕೆ ಕಾರಣವಾಯಿತು. ನಾವು ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳು ಮತ್ತು ಚಾರ್ಟ್ಗಳನ್ನು ಹೊಂದಿರುವ ಡೇಟಾ-ಭಾರೀ (data-heavy) ಉತ್ಪನ್ನವನ್ನು ನಿರ್ಮಿಸಿದ್ದೆವು. ಬಹುತೇಕ ಎಲ್ಲಾ ಸ್ಕ್ರೀನ್ಗಳು ಲಾಗಿನ್ (login) ನಂತರವೇ ಕಾಣಿಸುತ್ತಿದ್ದವು.
ಈ ರೀತಿಯ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ, server-side rendering (SSR) ಯಾವುದೇ ಹೆಚ್ಚಿನ ಮೌಲ್ಯವನ್ನು ನೀಡದೆ ವೆಚ್ಚವನ್ನು ಮಾತ್ರ ಹೆಚ್ಚಿಸಿತು.
ಸರಿಯಾದ ಸಾಧನವು ನೀವು ಏನನ್ನು ನಿರ್ಮಿಸುತ್ತೀರಿ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ.
Content-first ಪ್ರಾಜೆಕ್ಟ್ಗಳು: • Marketing sites • Blogs • Storefronts • Docs • ಇಲ್ಲಿ Next.js ಬಳಸಿ. SEO ಮುಖ್ಯವಾಗುತ್ತದೆ ಮತ್ತು ಕಂಟೆಂಟ್ ಸ್ಥಿರವಾಗಿರುತ್ತದೆ (static).
Application-first ಪ್ರಾಜೆಕ್ಟ್ಗಳು: • Internal tools • Dashboards • Admin panels • SaaS consoles • ಇಲ್ಲಿ Vite-ಆಧಾರಿತ SPA ಬಳಸಿ. ಈ ಅಪ್ಲಿಕೇಶನ್ಗಳು auth ಹಿಂದೆ ಇರುತ್ತವೆ ಮತ್ತು APIs ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತವೆ.
ನಾವು Next.js ನಿಂದ Vite SPA ಗೆ ಬದಲಾಯಿಸಿದೆವು. ಅದಕ್ಕೆ ಕಾರಣಗಳು ಇಲ್ಲಿವೆ:
ಸುಲಭವಾದ Debugging ಸರ್ವರ್ ದೋಷಗಳು (Server errors) ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳಿಗೆ ಸರಿಯಾಗಿ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್-ಸೈಡ್ ದೋಷಗಳು ಬ್ರೌಸರ್ನಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ stack traces ನೊಂದಿಗೆ ಸಂಭವಿಸುತ್ತವೆ. ಇದು ಬಗ್ಗಳನ್ನು (bugs) ವೇಗವಾಗಿ ಸರಿಪಡಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಉತ್ತಮವಾದ Testing ಇತರ ಸರ್ವರ್ ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ರেন্ডರ್ ಮಾಡುವ ಸರ್ವರ್ ಕಾಂಪೊನೆಂಟ್ಗೆ ಸುಲಭವಾಗಿ unit test ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಾವು ಕೇವಲ ಟೆಸ್ಟಿಂಗ್ ಮಾಡಲು ಅನುಕೂಲವಾಗುವಂತೆ ವಿನ್ಯಾಸದ ಆಯ್ಕೆಗಳನ್ನು ಮಾಡಿದ್ದೆವು. ಅದು ತಪ್ಪು ನಿರ್ಧಾರವಾಗಿತ್ತು.
ಸರಳವಾದ Auth SSR ಪ್ರತಿ ವಿನಂತಿಯಲ್ಲೂ (request) ಸರ್ವರ್ ಟೋಕನ್ಗಳನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇದು ಹೆಚ್ಚಿನ attack surfaces ಮತ್ತು ಸಂಕೀರ್ಣವಾದ cookie logic ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್-ಫಸ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅಥೆಂಟಿಕೇಶನ್ ಅನ್ನು ಒಂದೇ ಕಡೆ ನಿರ್ವಹಿಸುತ್ತದೆ: ಅಂದರೆ API.
ಕಡಿಮೆ ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ ವೆಚ್ಚಗಳು SSR ಪ್ರತಿ ವಿನಂತಿಗೂ ಯಾವಾಗಲೂ ಚಾಲನೆಯಲ್ಲಿರುವ (always-on) ಸರ್ವರ್ ಅನ್ನು ಬಯಸುತ್ತದೆ. ಸ್ಟ್ಯಾಟಿಕ್ ಫ್ರಂಟ್ಎಂಡ್ ಅನ್ನು CDN ನಿಂದ ಫೈಲ್ಗಳ ರೂಪದಲ್ಲಿ ಕಳುಹಿಸಬಹುದು. ಇದರಿಂದ ನೀವು ನಿರ್ವಹಿಸಬೇಕಾದ ಮತ್ತು ಸುರಕ್ಷಿತಗೊಳಿಸಬೇಕಾದ ಸೇವೆಯ ಸಂಖ್ಯೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ.
ಕಡಿಮೆ ಸಂಕೀರ್ಣತೆ Next.js ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ನಡುವೆ ವಿಭಜನೆಯನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ. ಫ್ರಂಟ್ಎಂಡ್ ಎಂಜಿನಿಯರ್ಗಳು middleware ಮತ್ತು caching ನಂತಹ ಸರ್ವರ್ ವಿಷಯಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಯಿತು. ಇದು ನಮ್ಮ ಕೆಲಸದ ವೇಗವನ್ನು ಕಡಿಮೆ ಮಾಡಿತು.
ನಾವು ಹಂತ ಹಂತವಾಗಿ ಬದಲಾಯಿಸಿದೆವು. ಸಾರ್ವಜನಿಕ SEO-ಪ್ರಮುಖ ಪುಟಗಳಿಗಾಗಿ Next.js ಅನ್ನು ಉಳಿಸಿಕೊಂಡೆವು. ಉಳಿದ ಎಲ್ಲವನ್ನೂ Vite SPA ಗೆ ವರ್ಗಾಯಿಸಿದೆವು.
ಬದಲಾವಣೆಗಳು (Trade-offs) ಸಣ್ಣದಾಗಿದ್ದವು: • SEO: ಲಾಗಿನ್ ಹಿಂದೆ ಇರುವ ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳಿಗೆ SEO ಅಗತ್ಯವಿಲ್ಲ. • Initial load: ಡೇಟಾ-ಭಾರೀ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಡೇಟಾಬೇಸ್ನಿಂದಾಗಿ ನಿಧಾನವಾಗುತ್ತವೆ, ಫ್ರೇಮ್ವರ್ಕ್ನಿಂದಲ್ಲ.
SEO ಮತ್ತು social previews ಮುಖ್ಯವಾಗಿದ್ದರೆ Next.js ಬಳಸಿ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಇಂಟರಾಕ್ಟಿವ್ ಆಗಿದ್ದರೆ, ಡೇಟಾ-ಚಾಲಿತವಾಗಿದ್ದರೆ ಮತ್ತು ಲಾಗಿನ್ ಹಿಂದೆ ಇದ್ದರೆ Vite SPA ಬಳಸಿ.
Default ಅನ್ನು ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ನೀವು ನಿಜವಾಗಿಯೂ ಏನನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ನಿಮ್ಮನ್ನೇ ಕೇಳಿಕೊಳ್ಳಿ.
Source: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
