Changelog #1 react-router v7 migration

3 min read

This is the first in a series I’m planning to write whenever I make a major tech shift in my projects. Think of it like a public changelog, with a twist. Like, if I had to justify a tech decision to a product manager, this is what I’d say.

But, of course, the impact of this is lower. Since this is a personal project, I don’t have to sell any changes to anyone. And that’s the beauty, and curse, of building things on your own.

You're free to break things, test new ideas, and pick any shiny tool you want. But if something goes wrong? It’s all on you.

How it started

I must admit that before I started with this project, I had never built a static website before, a web whose main purpose was sharing content and not dynamic user interfaces and data flows.

This blog began with NuxtJS, mainly because I was prepping for a company that used Vue, so I wanted to start my new journey with a little advantage, basically, real-world experience, before stepping into the role. Nuxt made sense. It worked, I liked it, and I still have the original scaffolding buried somewhere on GitHub.

But as my career evolved, so did the tech stack behind this site. From a product point of view, was a new breaking change necessary in the tech stack? definitely not.

At some point, React became unavoidable in the job market. That’s when I moved to NextJS. It was the React version of what I liked in Nuxt: static-first, hybrid rendering, and solid routing. The transition felt natural.

That’s also when I moved hosting from Netlify to Vercel. You can run NextJS on Netlify, but using a tool with its native platform just feels smoother.

NextJS stuck around for a while. I wasn’t bored. It worked.

Until I found Remix.

When code just makes sense

The shift to Remix was different, it felt natural and simpler from the first sigh.

There wasn’t a job or a requirement pushing me into it. I was just genuinely curious. I remember reading the docs and thinking, “Oh. This makes sense.” It wasn’t about learning new patterns, it felt like a return to the fundamentals.

Remix felt closer to the platform. APIs, routing, and data loading all just clicked. It didn’t try to be clever for the sake of it. It felt clean.

I wanted fewer dependencies, fewer abstractions, and a long-term vision I could believe in. And Remix gave me that.
I am now curiously waiting for what's coming on Remix 3, the hype is real!

The latest evolution

Eventually, Remix and React Router merged. Both tools had been solving similar problems, and bringing them together just made sense. What started as a router became something much more powerful, especially with Vite integration, making setup smoother than ever.

Honestly, I didn’t notice major performance shifts, but I wasn’t chasing performance metrics. I was chasing clarity. As a solo developer, I was looking for something easy to maintain.

The site stayed the same, just a blog tied to Notion as a CMS, but my developer experience improved.

The Remix Discord was another pleasant surprise. Active, helpful, and friendly. That made the migration even smoother.

Right now, it feels like I’m running a router on steroids. And the only piece I’m waiting for is React Server Components. Once those are stable, this transition will feel fully complete.

No regrets

Would I go back? No.

Would I recommend Remix for everything? Also no.

But for something like this, a small personal project, it’s been a perfect fit.

Simple, predictable, enjoyable to build with.

Get posts in your inbox

Subscribe to my Substack newsletter for the latest posts and updates.

Subscribe on Substack

Written by Manu

I am a product-driven JavaScript developer, passionate about sharing experiences in the IT world, from a human-centric perspective.

Follow Me

Other articles