Next.js

July 03, 2021

I try to be pragmatic with my technology choices. I think that’s why, for the longest time, Ruby on Rails has been my go-to. I still love RoR, and personally feel productive in it, but I will recognize that more than one team I’ve been on has grown frustrated with it. These teams have wanted a “more modern front-end” and felt, for them, Rails wasn’t delivering.

As an engineer that’s worked on several teams and in several tech stacks, I’m very open to exploring frameworks and tools outside of Rails. I think its valuable to know how our industry is changing and what tools are replacing or augmenting our current set.

When I surveyed the current front-end landscape, one particular framework caught my eye: NextJS.

While minimal, it still follows a set of conventions and brings enough to the table for someone to be productive immediately.

It’s made enough choices to help free you from some technical decision making and allow you to quickly GSD - something I look for in any framework.

The community using NextJS is impressive and the community interaction I’ve had so far has been great.

I’ve appreciated the conventions next has created around building out API Routes and can see how this could help teams avoid confusion and adopt better practices when integrating with other API’s that support the front end.

My only critique at the moment (and this might just be my ignorance) is that middleware is only supported for API routes. I’ve found guidance on middleware support here, but nothing for non API routes. The community approach seems to be implementing a custom server which, while straightforward, felt a bit overkill for a recent need that middleware could have provided.

All in all, NextJS feels like a good fit currently. I’d consider myself still in the Trial camp, much like thoughtworks, but feel optimisitic about its use and would bet on this moving to adopt.

If you’re evaluating a front-end framework, I’d give NextJS look 👍🏽


Written by Dave Shah A Husband, Father, Software Engineer, Product Developer, Distance Runner, and most importantly, loving Christian. You can connect with Dave here.

© 2021 Dave Shah