What I Personally Love About Remix and React Router v7
I’ve recently been diving deeper into Remix and the new React Router v7, and I have to say—I really enjoy how they approach web development. Unlike many frameworks that abstract away the web platform, Remix and React Router v7 embrace its fundamentals. In this post, I’ll share a few things I personally love about them and why they click for me as a developer.
Learning the Web Platform: Request
and Response
One of the things I truly appreciate is how Remix encourages you to work directly with web standards. For example, when you define loaders or actions, you interact with the Fetch API's Request
and Response
objects. These are the same native objects you’ll find on MDN, and I think that’s awesome.
It’s not just about building apps—it’s about understanding how the web actually works. For me, this approach feels empowering. Instead of relying on framework-specific abstractions, I get to engage directly with the core tools of the web.
Understanding Caching and Headers
Another thing I find really valuable is how Remix makes concepts like HTTP caching more accessible. Rather than hiding caching logic behind layers of tooling, Remix encourages you to use standard HTTP headers to control caching and performance.
If you’re curious, Ryan Florence has a fantastic video on this topic: Remix Run - Introduction to HTTP Caching. Watching it gave me a clearer understanding of how caching works and how to utilize headers effectively. I personally value this because it helps me write better-performing applications while deepening my understanding of the web platform.
Rediscovering HTML Forms
I didn’t expect to enjoy working with HTML forms as much as I do now, but Remix and React Router v7 have completely changed my perspective. In today’s JavaScript-heavy world, it’s easy to forget that forms are a fundamental part of the web—and they still work great.
With React Router v7, form submissions are enhanced using JavaScript to provide a seamless user experience. When you use the <Form>
component, it leverages the browser's native form behavior, allowing for progressive enhancement. This means that even before JavaScript loads, forms can function correctly, and once JavaScript is available, React Router takes over to manage the submission, providing features like client-side validation and navigation without a full page reload.
For me, this integration feels refreshing. It’s a reminder that the web’s built-in features, combined with modern JavaScript enhancements, can create powerful and user-friendly applications.
If you’d like to see this in action, check out this video by Daniel Bergholz. It’s an excellent demonstration of how you can use forms effectively in React Router v7 without unnecessary complexity.
Simplified State with Loaders and Actions
Managing state can sometimes feel overwhelming, especially in client-heavy applications. What I really like about Remix is how it shifts much of this work back to the server using loaders and actions.
With this approach:
Your data stays in sync automatically.
You don’t need to juggle complex client-side state management libraries.
For me, this simplicity is one of Remix’s greatest strengths. When I update or submit data, Remix just reloads the necessary parts of the page. I don’t have to worry about manually syncing state or handling re-renders.
React Router v7: Bringing Remix Ideas to React
The release of React Router v7 brings many of Remix’s principles into the broader React ecosystem, and I think that’s fantastic. Some of the highlights I personally enjoy include:
Improved TypeScript support, making my code more predictable.
Seamless server rendering, which is now easier than ever.
Progressive enhancement, ensuring my app still works even if JavaScript is disabled.
React Router v7 feels like a bridge between modern frameworks and the timeless principles of the web. I appreciate how it makes these ideas accessible to React developers.
Why This Approach Resonates with Me
What I love most about Remix and React Router v7 is how they bring me closer to the web’s fundamentals. They remind me that the web is already an amazing platform and that I don’t need to overcomplicate things.
Here’s what stands out to me:
I get to work with native APIs like
Request
andResponse
.I have more control over performance and caching.
I can rely on standard HTML features like forms.
I don’t have to manage state unnecessarily.
This combination of simplicity and power really works for me as a developer.
Final Thoughts
I know every developer has their own preferences and ways of working. For me, Remix and React Router v7 stand out because they align so closely with the way I want to build applications. They’ve helped me rediscover the beauty of the web platform while still enjoying modern tools and frameworks.
If you haven’t tried Remix or React Router v7 yet, I recommend giving them a look. You might find that they click for you too—or you might not! Either way, it’s been a fun and refreshing experience for me, and I thought it was worth sharing.
What do you think? Have you tried Remix or React Router v7? I’d love to hear your thoughts!