ਤੁਹਾਨੂੰ NextJS ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ

Next.js React ਐਪਸ ਬਣਾਉਣ ਲਈ ਇੱਕ ਡਿਫੌਲਟ ਜਵਾਬ ਹੈ। ਇਹ ਇੱਕ ਵਧੀਆ ਫਰੇਮਵਰਕ ਹੈ। ਪਰ ਡਿਫੌਲਟ ਹੋਣ ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਕਿ ਇਹ ਜ਼ਰੂਰੀ ਵੀ ਹੈ।

ਗਲਤ ਪ੍ਰੋਜੈਕਟ ਲਈ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਸਾਡੀ ਰਫਤਾਰ ਘਟ ਗਈ ਅਤੇ ਟੀਮ ਵਿੱਚ ਅਸਹਿਮਤੀ ਪੈਦਾ ਹੋਈ। ਅਸੀਂ ਡੈਸ਼ਬੋਰਡਾਂ ਅਤੇ ਚਾਰਟਾਂ ਵਾਲਾ ਇੱਕ ਡੇਟਾ-ਭਾਰੀ (data-heavy) ਪ੍ਰੋਡਕਟ ਬਣਾਇਆ। ਲਗਭਗ ਹਰ ਸਕ੍ਰੀਨ ਲੌਗਇਨ ਦੇ ਪਿੱਛੇ ਸੀ।

ਇਸ ਕਿਸਮ ਦੀ ਐਪ ਲਈ, server-side rendering (SSR) ਨੇ ਬਿਨਾਂ ਕਿਸੇ ਫਾਇਦੇ ਦੇ ਖਰਚਾ ਵਧਾ ਦਿੱਤਾ।

ਸਹੀ ਟੂਲ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੀ ਬਣਾ ਰਹੇ ਹੋ।

Content-first ਪ੍ਰੋਜੈਕਟ: • ਮਾਰਕੀਟਿੰਗ ਸਾਈਟਾਂ • ਬਲੌਗ • ਸਟੋਰਫਰੰਟਸ • ਡੌਕਸ (Docs) • ਇੱਥੇ Next.js ਦੀ ਵਰਤੋਂ ਕਰੋ। SEO ਮਹੱਤਵਪੂਰਨ ਹੈ ਅਤੇ ਕੰਟੈਂਟ ਸਟੈਟਿਕ (static) ਹੁੰਦਾ ਹੈ।

Application-first ਪ੍ਰੋਜੈਕਟ: • ਅੰਦਰੂਨੀ ਟੂਲ (Internal tools) • ਡੈਸ਼ਬੋਰਡ • ਐਡਮਿਨ ਪੈਨਲ • SaaS ਕੰਸੋਲ • ਇੱਥੇ Vite-ਅਧਾਰਤ SPA ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਐਪਸ ਆਥਰਾਈਜ਼ੇਸ਼ਨ (auth) ਦੇ ਪਿੱਛੇ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ APIs 'ਤੇ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ।

ਅਸੀਂ Next.js ਤੋਂ Vite SPA 'ਤੇ ਚਲੇ ਗਏ। ਇਸਦੇ ਕਾਰਨ ਹੇਠਾਂ ਦਿੱਤੇ ਗਏ ਹਨ:

  1. ਡਿਬੱਗਿੰਗ (Debugging) ਕਰਨਾ ਆਸਾਨ ਹੈ ਸਰਵਰ ਦੀਆਂ ਗਲਤੀਆਂ (errors) ਤੁਹਾਡੇ ਕੰਪੋਨੈਂਟਸ ਨਾਲ ਸਹੀ ਤਰ੍ਹਾਂ ਨਹੀਂ ਜੁੜਦੀਆਂ। ਕਲਾਇੰਟ-ਸਾਈਡ ਗਲਤੀਆਂ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਸਪੱਸ਼ਟ ਸਟੈਕ ਟ੍ਰੇਸ (stack traces) ਦੇ ਨਾਲ ਹੁੰਦੀਆਂ ਹਨ। ਇਸ ਨਾਲ ਬੱਗ (bugs) ਨੂੰ ਠੀਕ ਕਰਨਾ ਤੇਜ਼ ਹੋ ਜਾਂਦਾ ਹੈ।

  2. ਬਿਹਤਰ ਟੈਸਟਿੰਗ ਤੁਸੀਂ ਉਸ ਸਰਵਰ ਕੰਪੋਨੈਂਟ ਦਾ ਆਸਾਨੀ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟ (unit test) ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੋ ਹੋਰ ਸਰਵਰ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਰੈਂਡਰ ਕਰਦਾ ਹੈ। ਅਸੀਂ ਸਿਰਫ਼ ਟੈਸਟ ਕਰਨ ਯੋਗ ਰਹਿਣ ਲਈ ਡਿਜ਼ਾਈਨ ਚੋਣਾਂ ਕੀਤੀਆਂ। ਇਹ ਇੱਕ ਗਲਤੀ ਸੀ।

  3. ਸਰਲ ਆਥਰਾਈਜ਼ੇਸ਼ਨ (Auth) SSR ਲਈ ਹਰ ਰਿਕਵੈਸਟ 'ਤੇ ਸਰਵਰ ਦੁਆਰਾ ਟੋਕਨਾਂ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹ ਵਧੇਰੇ ਅਟੈਕ ਸਰਫੇਸ (attack surfaces) ਅਤੇ ਗੁੰਝਲਦਾਰ ਕੁਕੀ ਲੌਜਿਕ (cookie logic) ਬਣਾਉਂਦਾ ਹੈ। ਇੱਕ ਕਲਾਇੰਟ-ਪਹਿਲ ਵਾਲੀ ਐਪ ਆਥਰਾਈਜ਼ੇਸ਼ਨ ਨੂੰ ਇੱਕੋ ਜਗ੍ਹਾ 'ਤੇ ਸੰਭਾਲਦੀ ਹੈ: API।

  4. ਘੱਟ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਖਰਚਾ SSR ਨੂੰ ਹਰ ਰਿਕਵੈਸਟ ਲਈ ਹਮੇਸ਼ਾ ਚੱਲਦੇ ਰਹਿਣ ਵਾਲੇ ਸਰਵਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਸਟੈਟਿਕ ਫਰੰਟਐਂਡ CDN ਤੋਂ ਫਾਈਲਾਂ ਵਜੋਂ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਚਲਾਉਣ ਅਤੇ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਇੱਕ ਘੱਟ ਸਰਵਿਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

  5. ਘੱਟ ਗੁੰਝਲਦਾਰਤਾ Next.js ਸਰਵਰ ਅਤੇ ਕਲਾਇੰਟ ਵਿਚਕਾਰ ਵੰਡ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ। ਫਰੰਟਐਂਡ ਇੰਜੀਨੀਅਰਾਂ ਨੂੰ ਮਿਡਲਵੇਅਰ (middleware) ਅਤੇ ਕੈਸ਼ਿੰਗ (caching) ਵਰਗੇ ਸਰਵਰ ਸੰਬੰਧੀ ਕੰਮਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਪੈਂਦਾ ਸੀ। ਇਸ ਨੇ ਸਾਡੀ ਰਫਤਾਰ ਘਟਾ ਦਿੱਤੀ।

ਅਸੀਂ ਪੜਾਵਾਂ ਵਿੱਚ ਮਾਈਗ੍ਰੇਸ਼ਨ ਕੀਤਾ। ਅਸੀਂ ਜਨਤਕ SEO-ਮਹੱਤਵਪੂਰਨ ਪੇਜਾਂ ਲਈ Next.js ਨੂੰ ਰੱਖਿਆ। ਅਸੀਂ ਬਾਕੀ ਸਭ ਕੁਝ Vite SPA 'ਤੇ ਤਬਦੀਲ ਕਰ ਦਿੱਤਾ।

ਸਮਝੌਤੇ (Trade-offs) ਬਹੁਤ ਘੱਟ ਸਨ: • SEO: ਲ