> Breaking backward compatibility isn't collateral damage, it's the point.
LOL, if you say so.
Honestly, I don't know how anyone decides to build something on top of the software the react router team puts out. I went through approximately 2 major version upgrades of react router then decided I was done with it unless I had no other choice.
Why do people think being left with huge upgrade tech debt time and time again is worthwhile? There are just so many other choices out there these days. Why you'd choose this "different future" now is beyond me.
Yeah, React Router keeps changing and keeps not quite feeling right. Like they make bad abstractions and then get trapped by them.
We’re looking at Tanstack Router when we get around to it.
I went through the same pain with React Router. I would never consider using Remix or anything else from this team. It doesn't matter how great it might be or how much I might agree with the architectural principles. Who knows what shiny new idea they'll be chasing in Remix 4? I'd have to be crazy to trust them.
This is my feel as well, I have to maintain a somewhat complex custom SSR, and each update of react-router has been a pain, basically when they moved from using regex URLs to simpler paths, it was a reasonable decision, but the docs of the new supported patters were lacking, newer docs versions are barely searchable, or directly you won't find mentions to some existing APIs anywhere.
I tried their "get started" project with the newly typed routes, and it feels too complex, and unintuitive, the purpose of a framework is to make your life easier, and it's sad to see people with this much talent missing the goal, I won't be using react-router for future projects.
Honestly, it was often that I just hated NextJS enough to deal with the schlep of the Remix/RR churn.
But now TanStack Start is a thing, so they've lost the 'only viable alternative' angle.
React Router v4 was released in March 2017 (more than 8 years ago!). v5 was released in May 2019 with no API changes. v6 was released in November 2021 with a new API based on React hooks (this API was much better than the previous). v7 was released in November 2024 with the "Remix" APIs (most importantly the "framework mode"). So, the gaps are 4 years and 3 years - that's doesn't seem that crazy.
It's kinda wild to take something people really like and just keep re-writing it while keeping the same name.
They were around when Angular 1 -> Angular 2 right? No one liked that. Angular 2 is good but calling it Angular 2 when it was so different put a bad taste in everyone's mouth.
Google did that because they wanted the Angular userbase, but that alienated a bunch devs and many decided to switch to React (me included) instead.
Seems the remix/react router team is trying to do the same. They built something popular, and they want to use that to launch their new ideas.
They want to have their cake and eat it too, a built in userbase and explore new ideas. I get it, but why not use another name so people don't get confused or frustrated?
It's just exhausting