Recently, I needed to create a web app for a company outside of the technology field. The company had never built custom software before. As always, it was important for me to make a wise technology decision. That allows me to empower my team and client to have an efficient and productive project. I ended up choosing Next.js, using a similar framework to the methodology John Fisher describes here.
Although the Next.js framework was new to me, I found a lot of things to like.
High Community Support
I was consistently able to find help online with problems and bugs I encountered. I also found great guides to things like setting up a linter, testing framework, and mocking tools. In particular, I found a lot of guides for using Google Firebase Authentication and Google Analytics, both used heavily in my project. Also, I noticed that because Next.js is rather new, I was unlikely to stumble upon really out-of-date solutions that no longer worked.
Ease of Tracking Changes
How many times have you submitted two pull requests to ship one user feature? You then go on to see the front-end builds not working as expected because the API doesn’t exist in the deployed branch of the API. Sure, there are plenty of technical solutions to that, like deploying both artifacts in one pipeline. But, those solutions take time to create and, in my experience, complicate the development process. In Next.js, your React code lives in the same repo as the API code. For me, this made it easy to concurrently develop front-end features while I created the API endpoints needed to support those. On my small, poly-skilled full-stack team, this worked really well.
Support for Deployment on Vercel
I was able to deploy our app on Vercel and set up a full CI pipeline with lining and tests in less than 15 minutes. This also included connecting our GitHub account. That meant pull requests contained build status and preview deployments so that our designer and other stakeholders could validate features. I found this a huge time saving and was really happy with the ease of using Vercel.
Attracging Top Developer Talent
In my experience, there are a lot of high-quality developers who would like to work in React. Further, the Mono-repo aspect is particularly appealing to developers who want to work in a poly-skilled full-stack team. That’s how my team works, so aligning our technology with the values of our team makes it easier to retain and recruit more developers who want to work like that.