Back to overview

Remix, React, and the Web Platform with Ryan Florence

Kent and Ryan Florence dive into the current state and future of Remix, the evolution of React Router, and the web platform’s growing role in modern web development. Ryan reflects on the changes in the ecosystem, the impact of AI, React Server Components, and the move towards standardized web APIs. He also shares insights on his shifting focus, the importance of in-person conferences, and how community-driven relationships have shaped his career. This conversation is packed with candid thoughts, deep technical insights, and a look at what’s next for web developers.

In this conversation, Ryan Florence, co-creator of Remix and React Router, joins Kent to talk about the evolving landscape of web development. He shares insights on:

  • The motivation behind moving core Remix features into React Router.

  • The rising importance of AI-driven development and how it affects frameworks.

  • Betting on the web platform as a long-term strategy for performance, portability, and future-proofing applications.

  • How Remix is being reimagined with a focus on web-native capabilities.

  • The role of conferences in building meaningful career relationships.

    Ryan also shares his personal reflections on balancing career, family, and the desire to step back from the spotlight. Whether you're a Remix user, a React developer, or just curious about where the web is heading, this discussion offers a fascinating look at the future of frameworks and the web.

Watch this episode.

Meet Ryan at Epic Web Conf.

Guests

Ryan Florence
Ryan Florence

Transcript

Kent C. Dodds (00:01.56)
Hey everybody, I'm actually happy that I jumped in before Ryan said, hey Kent, like last time. It's a good day to chat with Ryan. Ryan Florence spoke at last year's Epic WebConf and will be speaking at this year's. Maybe you ruffled a couple feathers last year with the let versus const thing. But Ryan, why don't you give us an intro to yourself before we get too far into this year.

Ryan (00:28.128)
Sure, I'm Ryan Florence, Ryan P. Florence. I should change my name in this little video thing that we're doing and include my middle initial too. More recent work, I was one of the co-creators and co-founders of Remix, co-author of React Router. Been doing web stuff for way too long, like two decades, so it's kind of wild. There's kids now coming to these conferences and stuff where like,

Kent C. Dodds (00:33.486)
Ha

Ryan (00:58.462)
I was writing websites before they were born. So I'm trying to figure out how to sunset my public presence and make more room for the young kids with broccoli hair to take over the space. So that's me.

Kent C. Dodds (01:01.774)
You

Kent C. Dodds (01:15.96)
Well, you actually, you have kids of your own who are almost to that age as well.

Ryan (01:21.588)
Yeah, my daughter's graduating high school this year. Yeah, it's crazy. It's crazy how busy you get when your kids get older too. You're always in the car.

Kent C. Dodds (01:28.344)
Yeah.

Yeah, I think that's part of maybe the motivation for sunsetting your presence as well, is you just want to hang out with the family.

Ryan (01:40.982)
So yeah, your kids get to this certain age and you realize like I'm almost done. This is almost it. Like it's it's time to like make sure that I'm I'm as present as I would like to be and I had a lot of great memories with my parents. Boating, hiking, soccer like they were there for everything and. And yeah, I want to, you know. Not be in front of my computer all the time.

Kent C. Dodds (01:53.441)
Mm-hmm.

Kent C. Dodds (02:06.89)
so that's one thing folks who are at the conference can talk with you about is why neither one of you want to be there and you'd rather be with your kids.

Ryan (02:17.174)
I'm there because Kent and I are good friends and I'm supporting him. I don't want to be here. My kid's playing a soccer game right now.

Kent C. Dodds (02:20.974)
Well, thank you, Ryan.

Well, yeah, I hope you don't miss anything too critical to come to the conference. But I am curious, I've been asking all of the speakers what it is that motivates them to go to conferences. And maybe, like you mentioned, you're kind of toward the end of that period of your life where you're really being active. You're at a stage where if you needed a job, you can get one relatively easily because of your standing in the industry and also just like...

you've developed the relationships that you want to develop at this point. But maybe talking specifically to the audience that will be coming to the conference, or are considering coming, what are some of the reasons why you think it's important for people to come to these things?

Ryan (02:56.617)
Yeah.

Ryan (03:09.204)
Yeah, mean, conferences really to me are the blood of any community. And I feel like we're still feeling the repercussions of all the lockdowns and not having in-person events. And it's been really hard to like, get that going again. But all the major relationships that I've made,

Kent C. Dodds (03:23.704)
Mm-hmm.

Kent C. Dodds (03:30.36)
Hmm.

Ryan (03:35.51)
I made at conferences. fact, Michael Jackson, my career counterpart, he and I met at Mountain West Ruby. That was first time I ever met him. My coworker went to college with him and was like, you should meet this guy. He's a JavaScript guy like you and Michael and I met and that started our friendship. I remember another time I was sitting there.

What conference was it? TxJS in Austin, like 20.

Ryan (04:08.969)
2011, was a long time ago. And I remember we standing in one of those circles or whatever and I was brand new. Like I didn't have a real job as a web developer. I was just like goofing around and I had a contract with the company and they were paying me to build stuff. I didn't realize I actually knew what I was doing yet. I just knew that people were paying me to do it. And...

Kent C. Dodds (04:09.538)
Hmm. Yeah.

Kent C. Dodds (04:25.486)
Mm.

Kent C. Dodds (04:29.449)
huh.

Ryan (04:35.254)
I remember in that little circle of people talking, one of the guys was like, can you believe that we get to write soft, like we get to build websites for a living, we get to write JavaScript for a living and build these cool things. And it's so much fun. And we get paid as much as like dentists and doctors and lawyers. And I was like, I don't get paid as much as those jobs. And so I,

Kent C. Dodds (04:59.406)
you

Ryan (05:03.644)
Started kind of like poking around a little bit and that's what inspired me to get my first like full-time developer job you know a solid salary and Yeah, it was because I went to that conference which no employer wants to hear right? You don't want to send people to conferences so they switch jobs, but

Kent C. Dodds (05:24.078)
On the other side, an employer hired that employee, right? So I guess you could send your employees to a conference and lose them to a better employer, or you could just be an awesome employer and win a bunch of employees to your company.

Ryan (05:29.557)
Yeah.

Ryan (05:38.718)
Yeah, yeah, you get you get those people. But so yeah, it's just it's just a great place to connect and meet people that will possibly be part of your entire career, like for me and Michael, and actually me and you, you came to I guess we met at a meetup first now Matt, Matt Zabriskie was always talking about you. came and worked with me.

Kent C. Dodds (05:54.22)
Hmm.

Kent C. Dodds (05:58.71)
Yeah, we met at a meetup, but yeah.

Ryan (06:05.654)
But yeah, my main memory of meeting you was that React Week that Tyler McGinnis put on. And that's where we met and we ended up co-founding Remix together and doing lots of other stuff together. So yeah, come to conferences.

Kent C. Dodds (06:05.667)
Mm.

Kent C. Dodds (06:11.245)
Yeah.

Kent C. Dodds (06:18.882)
Yep, yep, absolutely. It's those in-person relationships that AI can't replicate just yet. So yeah, very cool. what is probably the biggest topic that I think people will be eager to talk with you about at the conference, especially people who've been using Remix, is like, what is happening with Remix? I think a lot of people are just...

Ryan (06:25.802)
Yeah.

Ryan (06:42.614)
you

Kent C. Dodds (06:45.934)
They just don't know what the plan is there and are very curious. So yeah, what is happening with Remix? Is that gonna be kind of your, we talked about this before, so I'm like softballing you a question, but like, what is your talk about?

Ryan (07:01.908)
Yeah, yeah, I'm not 100 % sure what the talk is going to be about, but probably would be good to give people another talk about what the plan is with Reactor Islander Remix. So that's where I'm leaning right now. It was super fun to troll lots of people with let versus const, and that provided a lot of good laughs and actually led to change. I don't know if you noticed, but at

several conferences afterward of the same kind of group of people, lots of slides had let up there. And I saw lots of tweets where people like, I've always just wanted to use let and now I finally can.

Kent C. Dodds (07:38.67)
Well there you go, good, yeah, your let evangelism is miss working.

Ryan (07:44.982)
But anyway.

Ryan (07:52.918)
and what that all means and what the heck we did. I mean, we even got a little bit of concern internally at Shopify, because they let us operate really independently. And there some people over in product who were like, what the heck are you doing with your brand? And I was like, just trust us. It'll be fine. But like we've said before, remix isn't going anywhere.

Kent C. Dodds (08:05.838)
Hmm.

Ryan (08:20.982)
The brand's not going anywhere. We're about to launch.

I don't know. just did. We just announced remix jam at the end of the year. It's going to be a lot like tailwind connects and I like a full conference but like smaller low key one and we're mostly hand picking the talks and stuff and what we want to talk about. So it's basically us like wanting to like tell everyone hey look at look at what we're doing. Look at what you can do. We want to bring in some people from the community of two of two of course but yeah remix is very much around. So what the heck are we doing?

Remix launched at a really weird time for the internet. Because we'd launched at the time that new JavaScript runtimes also started popping up. Cloudflare workers had been around for a while, but hadn't really gotten a whole lot of steam. Serverless was pretty much all running on Node, but they had some restrictions.

Kent C. Dodds (09:12.248)
Mmm.

Ryan (09:22.582)
That were different than just like running a raw note server. So they're in some ways a little bit like their own runtime And then and then we've seen the kind of this explosion of front times Dino and bun and fastly has their own thing Amazon recently Released this like small JavaScript runtime that Yeah

Kent C. Dodds (09:28.13)
Yeah.

Kent C. Dodds (09:46.712)
Kind of like the V8 isolate sort of idea.

Ryan (09:49.19)
And what's been really fascinating and Cloudflare led the charge on this, and this is something that we talk about all the time, in Remix is that Remix launched looking at Cloudflare workers and looking at the web platform and saying, you know what? We got these requests and response objects, these constructors in the browser and in Cloudflare workers. And we followed Cloudflare's lead on this of like, I bet we can build a server.

on these APIs. We don't need to use nodes HTTP library. We can use the webs. And by the webs, I mean browsers. And we think it's been a really good bet. It's been a long bet. It's been difficult. We've had to maintain our own polyfills for it before. Undici, and even still, there's some compatibility differences between things. like,

That's what JavaScript is. It's global, it's everywhere, and it's got its own personality everywhere. But there are some abstractions that you can build on top of those web APIs and make it work out. sorry, I'm long-winded. We said I was gonna be quicker on this one. So Remix launched at a funny time for the web. First of all, because of all these new runtimes that are popping up.

Kent C. Dodds (10:44.962)
Hmm.

Kent C. Dodds (10:49.633)
you

Kent C. Dodds (11:01.974)
No, no, It's interesting.

Ryan (11:10.294)
And we made the same bet the cloud flare did let's do this on top of web API's like request response fetch There's a bunch of other ones. There's crypto if you go in your browser open up the console you can just type crypto dot random you you ID and Gives you this nice random Universal unique identifier that you can send as a client ID to your database And then track optimistic UI and lots of other stuff with that ID and we use

those technologies inside of remix. So that's number one. The second weird thing about the timing of launching remix is at our second remix comp, we demoed some in-progress scaffolding.

Kent C. Dodds (11:59.104)
Mm-hmm.

Ryan (11:59.22)
Right, we're kind of like taking Rails, Ruby on, I almost said React on Rails, Ruby on Rails lead there and we're like, scaffolding is super useful. But we never shipped it because like the next month, Chad GPT shows up and it's like, and Copilot actually started to get good. It's like, we don't need scaffolding, the AI like, and now if you use cursor.

Kent C. Dodds (12:18.754)
Mm-hmm.

Kent C. Dodds (12:23.246)
scaffolds it well enough.

Ryan (12:25.214)
Yeah, like compare rail scaffolding to what cursor can do for the people that are like. Like really trying to use it to build things or even people in replet. And what's his name? Austin? He's doing some crazy stuff with his AI gauntlet or something. He's got people building apps in two days, so it's sort of like the idea of. yeah, yeah, and both are new, which is a remix app. You've got all of these.

Kent C. Dodds (12:43.63)
And stackboots has their bolt.new step two.

Ryan (12:55.082)
things now that make scaffolding just seem hilarious. And so those two major things were happening. And then a third wild thing for us, maybe this isn't unique, this is just technology, but these three things feel like huge to me, totally unexpected. The third big thing was RSC showed up in React, React Server Components. And then on top of that, actions.

Kent C. Dodds (12:58.039)
No.

Kent C. Dodds (13:13.911)
Hmm.

Ryan (13:23.828)
like form actions and stuff, And even smaller features, so those are things that we had in remix. It looked different, but like same use cases. But even smaller features like our links export on a route module to like hoist the links up to the top of the page, React just does that now on its own. And so you got these three things happening where React has like taken a lot of our

Kent C. Dodds (13:23.862)
Mmm. Yeah.

Kent C. Dodds (13:41.07)
Hmm.

Ryan (13:53.91)
feature set and put it straight into react and then you've got AI that shows up it can write tons of code for you and so like what is scaffolding what is like I don't know it just makes you question everything about what you're doing and then you've got all these rent times that we kind of made this bet on. So considering all three of those things you look at like well what's the future of remix do we keep on trying to build. Like framework features like scaffolding or do we.

Kent C. Dodds (14:06.252)
No.

Ryan (14:23.846)
look at what React is doing, like, we can still do that better or whatever and like extend React. If you keep extending React, how much of that makes it back into React? And then you're left again with this weird thing of like, okay, there's the remix way and there's the React way, what should I do? And so with all that stuff, we did a lot of research and experimenting and building. We built so many versions of Remix before announcing.

the big thing that I guess we haven't even gotten to so far in this conversation that we decided let's move everything that's in remix that's not already in ReactRouter over to ReactRouter. And just give all those abstractions and those ideas a home, a place to put it, like this is reliable, this is a 12 year old, 11 year old project.

Most of remix already existed in react router anyway, so it was mostly just like bundling that we moved over and a few server concepts that we moved over. Everything else was already there. But it was like, let's put this over here, give it a home and a future where like this is react router starts with V7.

Kent C. Dodds (15:21.102)
Mm-hmm.

Kent C. Dodds (15:29.336)
Mm-hmm.

Ryan (15:39.334)
It's we don't have it yet, but it's going to have RSC in it. It's going to have server actions. You can use all the React 19 features over here. And like rely on that, right? It's not like this. We've got a history with ReactRouter. We have supported our old versions with bug fixes for years the whole time.

Kent C. Dodds (16:03.672)
Mm-hmm.

Ryan (16:04.308)
like v3 we supported that for like you can go look at our releases and you'll see like v4 and you'll see like v5 releases and then you'll see a v3 release. Something changed in React that we needed to do and then you'll see v6 releases and then you'll see a v5 release right after one of those. So we maintain those even old major versions. So put everything we have been working on over in React router and

Kent C. Dodds (16:14.594)
Mmm.

Kent C. Dodds (16:20.814)
Mm-hmm.

Ryan (16:33.526)
essentially make a promise, say we're gonna keep maintaining this, and you can use all the future React APIs in it as well. That gives us the room over here in Remix. We said in my talk at ReactConf that we're putting Remix to sleep, giving it a nap. But it'll come back. It's just taking a nap. Remix is gonna take a nap. We're gonna move all this over to React Router. And then it'll come back.

Kent C. Dodds (16:39.799)
Mm-hmm.

Kent C. Dodds (16:52.342)
Not putting it down like you do with a dog.

Ryan (17:02.934)
And so with those three major things, RSC, AI, and the web platform making it onto the server, that gives us room to build remix with those three things to us are the future. Maybe not react in every single way, right? Like people are gonna be building apps with.

Kent C. Dodds (17:22.67)
Hmm.

Ryan (17:30.46)
solid and preact and other things. And so our biggest thing over there is of course, we'll have stuff for React over there. the main thing is we're betting on AI and AI is like the entry point to the web, right? Instead of Googling and getting a server entered page, instead you're talking to a thing and getting widgets in front of you.

Kent C. Dodds (17:56.963)
Mm-hmm.

Ryan (17:57.694)
And for that SSR isn't as big of a deal, but server components, that concept is pretty intriguing. But the biggest bet is on the web platform, where if you're building stuff for the future, even the way we used to, but the way that we anticipate in the future, really nice for both us and the AI to not have to think about two different.

abstractions of like, oh, I've got a Python server, but then I've got a web UI. How do I bridge that gap to present things to the user in a chat or to integrate with a chat or to integrate into my current product? Any of that kind of stuff. We're really going all in on the web platform, particularly for servers, but anything you build for a server can run pretty much in the browser or in a service worker in the browser.

Kent C. Dodds (18:39.875)
Hmm.

Kent C. Dodds (18:53.079)
Mm-hmm.

Ryan (18:54.708)
So that's what remix is in the future and you can see we've been working on a repo right now. It's not in our organization, it's under Michael's GitHub. So mjaxson slash remix the web with dashes. And you can see a bunch of really low level foundational pieces like form data parsers, file storage. We're gonna have our cookie and session abstractions and things like that there.

Kent C. Dodds (19:22.294)
Mm-hmm, headers.

Ryan (19:22.848)
Hype safe HTTP headers. So yeah, Remix, when it wakes up, is really just a huge bet on the web platform being the target that we want to build AI driven user interfaces. Whether that's a server that's just kicking out HTML, or a React server component server, or something that wants to integrate with Preact, or some JSON endpoints that

Kent C. Dodds (19:40.837)
Mm-hmm.

Ryan (19:51.913)
an LLM wants to consume to then display something, you're gonna want some abstractions back there. And we think the web platform is that abstraction.

Kent C. Dodds (19:55.032)
Mm-hmm.

Kent C. Dodds (20:01.74)
Yeah, I've seen a lot of talk from people who are very much into server performance and things saying that, the web APIs, can't be made fast or whatever. And I see Michael coming back and being like, well, I don't know. I did it, and it's pretty fast. Which is very encouraging to me, because when I'm faced with using Node's HTTP module or just the Web Fetch API, I'm going to choose the Web Fetch API every time, because it's just

Ryan (20:09.855)
Ahem.

Ryan (20:18.454)
you

Kent C. Dodds (20:30.636)
so much, maybe it's just a familiarity thing, but I like it a lot better.

Ryan (20:36.148)
yeah, mean familiarity is important. Like at the end of the day, you're building on the web. So like, why change context? If it's capable, so yeah. Sorry, my throat just got really dry. Little cough.

Kent C. Dodds (20:43.7)
Mm-hmm. Yep.

Kent C. Dodds (20:48.782)
Yup.

Ryan (20:54.068)
And so yeah, with all those with the performance thing. We're never coming out of the gate on any of things saying this is the fastest form data parser. But what Michael has been finding, he's been writing pretty much all the code. Is a. When he builds it on those APIs. Without even thinking too much about it in the beginning, it's usually pretty close to on par. With the node ones and then with with a little bit of.

Kent C. Dodds (21:02.371)
Hmm.

Kent C. Dodds (21:17.666)
Hmm.

Ryan (21:23.882)
fine tuning on it, they're turning out to be faster, especially on the runtimes that have those APIs natively already, right? So that's the other funny thing is like you can take something like Busboy, is a multi-part parser, streaming multi-part parser, and run it in Node, and then run it in Cloudflare Workers, and wildly different performance profiles.

Kent C. Dodds (21:32.118)
Mmm, yeah.

Kent C. Dodds (21:50.924)
Hmm. Yeah.

Ryan (21:53.542)
And so, yeah, it's kind of interesting. our goal is not to go and beat everything that's out there. It's just we want to make a bet on the web platform. And we're making sure that out the gate, it's fast enough already.

Kent C. Dodds (22:10.69)
Well, I'm really looking forward to the Remix Jam coming up later this year. I think that'll be really exciting to see all the cool stuff that you have been working on. And I'm looking forward to hearing what you have to share with us at Epic Web Comp coming up here really soon. yeah. Yeah, yeah. I was talking with Aaron Francis. He's very excited to meet you in person for the first time.

Ryan (22:27.422)
I'm looking forward to hanging out with everybody.

Ryan (22:35.914)
Aaron's gonna be there? All right.

Kent C. Dodds (22:36.972)
Yep, Erin's going to be there. So yeah, very exciting and super excited to for people to come and just meet people, get out of our homes and get to know each other a little bit. So thank you, Ryan, for being a part of that. And thanks for giving us some time to get to know you today.

Ryan (22:53.77)
Yeah, man, thanks for putting the conference on. Excited to be there.

Kent C. Dodds (22:56.588)
Yeah, me too. Bye, everybody.

Sweet episode right?

You will love this one too.

See all episodes

Featured episode

Networking Through Twitch with Leah Thompson

Season 6 Episode 8 — 11:57
Leah Thompson