David.dev

Next.js Review


In the past month I lead the effort to migrate three major projects from Express/Node.js to Next.js.

Why Next.js and not Svelte, Gatsby, Hugo or another Jamstack and...why move from Node.JS to Jamstack ?

Starting from the last question Express/Node.js with MySQL is an excellent stack that served these projects well for years. However, the limitation of such a stack is speed and database dependency.

Speed can be sorted with caching e.g. cloudflare or fastly. What is more complex is having a reliable solution in case that MySQL or your database engine is down.

A database cluster can mitigate this issue but Next.js coupled with a serveless database like Fauna or Cloudflare KV workers can provide a globally distributed solution at a resonable cost.

On the Jamstack selection I had to exclude Svelte. It is great for my hobby projects but, the fact that the new version is not stable yet, is a big drawback.

Few months ago I was in the middle of an hobby project and Sveltekit broke backward compatibility within a day. I asked on discord and I was told "is beta what do you expect? It is your responsibility.." no thank you.

Next.js is not just server side, it can be easily used to export fully static websites as you would do in Gatsby but with a faster build time and very vibrant community.

Another reason why I think Next.js is a great option is Vercel: I have been using Vercel for a few months and the service is great. Pricing is also very competitive (even free for hobby projects). So in case that you need some server side functionality, it is very easily to deploy your Next.js projects on Vercel.

Next.js can also be used in cloudflare pages. The only limitation is that the only static exports are supported.

For my projects it was relatively easy to find a team of developers with knowledge of Next.js. The market for Svelte freelance developers seems to be considerally smaller.

Next.js is also very mature with a lot of functionalities out of the box. My favourite is the possibility to use Markdown or .mdx easily so without having to depend on an API to fetch your data.

Documentation is excellent and having a company behind the project is a great plus.

My experience so far has been very positive so I would certainly recommend it for serious, production projects.


11

made with ❤ī¸ by david.dev 2024 RSS Feed