Recently, I was planning to start working on a personal project, which is small but an interesting one which will also have a nice impact on my CV. While planning to work on it, first I had to identify which technologies will be the best fit for it. Thanks to the open source communities, today, we have a pool of option for every development aspect. So, in the stack I decided to work with NodeJS as the backend and PostgreSQL for the database and reactJS for the frontend.

Now, the dilemma is, for NodeJS and reactJS both, there are many different frameworks available in the community. For NodeJS, I had to choose between Express.js and fastify. And for reactJS too, I had 3 options, client-side-rendering, NextJS and Gatsby. For choosing the best fit for my use case, the obvious approach would be to study the pros and cons of them and then select accordingly, but the twist in choosing between these technologies was that these has almost the same features with very little difference.

For example, I compared Fastify and ExpressJS (NodeJS Frameworks), and my research concluded that fastify has many new and fascinating features but its community is smaller, thus, bug fixes and support is hard in fastify, and on the other hand ExpressJS doesn't have all the features of fastify but it has a big community around it to discuss, share and solve. After discussing about this on various forums, I chose ExpressJS for the big community support it has. And for frontend, I felt in love with NextJS for the way it has revolutionised the server-side rendered content delivery.

So, these days we have many options to choose from and it is good but brings some confusions too. After all, I am really glad that I have these many resources to work with and get my projects done effectively and more quickly.