
Live at Remix Conference with Dan Abramov
A chat from Remix Conf 2022 explores performance, server rendering, React 18, and frameworks while featuring insights from Dan Abramov
Episode Description
Live from Remix Conf 2022, developers discuss Remix's performance focus, the server-client pendulum, framework competition, and the future of full-stack web development.
Episode Summary
Recorded live at Remix Conf 2022, this JavaScript Jam Twitter Spaces session brings together developers, speakers, and community figures to discuss the state of the Remix framework and the broader web ecosystem. The conversation opens with observations about the conference's unusually strong focus on performance, with multiple speakers noting how often network waterfalls appear in Remix-related talks compared to typical React conferences. Dan Abramov joins unexpectedly and shares the React team's perspective on server components, explaining how React aims to provide powerful primitives that frameworks like Remix and Next.js can build upon rather than competing with them directly. The discussion then shifts to production adoption, with Hampton Catlin articulating a pragmatic "wait for two people to take it to production" approach that mirrors enterprise decision-making. Tanner Linsley of TanStack fame reflects on the ecosystem's pendulum swinging back toward server-side work, while conference speaker Shaundai Person explains how Remix blends server-rendered and client-rendered approaches to eliminate loading spinners. The conversation takes a sharp turn when Theo offers a contrarian perspective, arguing that Next.js offers better modularity and migration paths, and that developers should consider vendor lock-in and ecosystem stability when choosing frameworks. The session closes with predictions about a coming fracture between app-focused and website-focused tools in the React ecosystem.
Chapters
00:00:00 - Opening the Live Session at Remix Conf
The JavaScript Jam crew kicks off their live Twitter Spaces broadcast from the floor of Remix Conf 2022, expressing excitement about returning to in-person events after years of remote-only interactions. The hosts note the energy in the room and the unique feeling of finally meeting online friends face to face.
Ishan Anand highlights a standout observation: roughly 30 percent of the conference talks have a performance angle, with speakers frequently showing network waterfalls to demonstrate how Remix parallelizes data fetching. This performance-first ethos, he argues, sets Remix apart from typical React conferences and reflects a deeper shift in how the community thinks about the client-server relationship.
00:04:42 - Hampton's Pragmatic Take and Production Adoption
Hampton Catlin, creator of Sass, shares his perspective as a tech executive who evaluates frameworks through a production-readiness lens. His personal rule is to wait until two trusted people ship a technology to production and report positively before committing, and he senses Remix is approaching that threshold. The conversation turns to the challenge of enterprise adoption.
Ishan connects this to his experience working with larger companies, noting that businesses with legacy stacks are cautious about framework migrations and want proven production stories before making commitments. The group invites conference attendees who are running Remix in production to join the discussion, underscoring that real-world validation remains Remix's biggest remaining hurdle for broader enterprise buy-in.
00:07:47 - Dan Abramov Drops In: React's Relationship with Frameworks
Dan Abramov unexpectedly joins the space from his car, and the hosts immediately ask about React's relationship with Remix. Dan explains that React's goal is not to compete with frameworks but to extract powerful primitives like server components and streaming that any framework can build on top of. He notes overlap between Remix's goals and React's own work on the data-fetching story.
Dan candidly acknowledges that React 18 is more of an architectural foundation release than a feature-packed one, and that it will take time for the ecosystem to align with new capabilities like streaming and suspense. He points to the upcoming Next.js layouts RFC as an example of frameworks beginning to integrate these architectural pieces, predicting that excitement will increasingly center on what frameworks do with React's primitives rather than on React itself.
00:15:06 - Conference Speakers Weigh In on Vibes and Performance
Henri Helvetica and Shaundai Person, both conference speakers, join to share their impressions. Henri emphasizes the strong vibes created by a new framework buzz combined with the return to in-person events, and echoes the earlier observation that seeing so many performance-focused talks at a non-performance conference is refreshing and unprecedented in his experience.
Shaundai describes her talk on how Remix gets users to interactivity by behaving like a server-rendered app on initial load and a client-rendered app during navigation, eliminating loading spinners regardless of connection speed. She also promotes React Robins, a community for women and non-binary folks in the React and JavaScript space, and shares her experience at Netflix where teams have autonomy over their tech stacks and she encourages people to apply for jobs even without meeting every requirement.
00:21:34 - The Web's Identity Crisis and Return to Craft
Hampton Catlin frames the current moment as the web getting comfortable with itself again after years of trying to mimic native applications. He sees Remix as emblematic of a renewed focus on the craft of website-making, combining full-stack integration with strong web fundamentals rather than chasing the heavy client-side interaction model that dominated the previous era.
Ishan builds on this by describing the SPA era as the web's "teenage years," an identity crisis triggered by the rise of mobile and native apps. The group discusses how the architectural purity of one backend serving many clients has its place, but not everyone is building mega-scale products every day, and having frameworks that embrace progressive loading and web standards offers a welcome balance to that worldview.
00:24:29 - Getting Started with Remix and Community Connections
James Quick and an audience member share practical advice for newcomers to Remix, recommending the framework's built-in tutorials and noting that learning React Router first provides a nearly one-to-one foundation since Remix essentially extends it with data-loading primitives. The audience member notes the abstractions feel natural once you're working inside Remix, though approaching it cold can feel intimidating.
The conversation briefly touches on the hallway track phenomenon at conferences, where balancing talks with spontaneous networking is amplified by years of pent-up desire to meet online friends in person. Multiple participants describe the emotional experience of connecting face to face for the first time with people they've built relationships with entirely through screens over the past two years.
00:31:48 - Tanner Linsley on Open Source, Meta Frameworks, and Headless UI
Tanner Linsley of TanStack joins from the conference lobby and shares his view that the meta framework landscape will remain competitive, which he sees as healthy for driving innovation. He explains that his open source work grows directly from real problems encountered while running a lean SaaS company, where maximizing developer velocity with a small team forces him to build tools when existing options fall short.
Tanner agrees with the pendulum metaphor, noting the ecosystem is swinging back toward server-side work in a way that's now cohesive with front-end developer workflows. Looking ahead, he's most excited about headless logical components and framework-agnostic state machines that decouple complex UI behavior from specific rendering libraries, hinting at new TanStack projects to come after finishing the rebranded TanStack Table.
00:40:12 - Chris from Everfund on Framework Differentiation and Edge
Chris from Everfund, attending his first-ever tech conference, argues that Remix and Next.js should maintain distinct identities rather than converging, because differentiation drives innovation. He shares his own experience migrating from Gatsby to Next.js for incremental server-side generation, only to realize with Remix that always-server-rendered pages might be the simpler and better approach.
He envisions a future stack where edge functions, serverless databases, and distributed infrastructure all come together seamlessly through a CLI, making geographic distribution invisible to the developer. The discussion touches on how frameworks should be matched to use cases rather than defaulting to one tool for everything, and Chris mentions considering Remix as a replacement for parts of Everfund's Next.js setup.
00:45:49 - Theo's Contrarian Take: Vendor Lock-In and Framework Feel
Theo offers a sharply different perspective, arguing that framework selection should weigh migration paths and ecosystem stability alongside technical features. He describes using Next.js as lightly as possible with TRPC and React Query, treating the framework almost as infrastructure rather than buying deeply into its opinions, which he estimates would let him migrate off Next in a weekend.
He contrasts this with Remix, which he says you "feel" more when building, noting practical issues like the lack of hot module reloading and arguing that Remix's strengths lie outside app-like experiences. He highlights Vercel's close relationship with the React core team as a strategic advantage for Next.js and predicts a coming fracture where app-focused development consolidates around Next while website and marketing-site development shifts toward tools like Astro, Solid Start, and Marco.
00:59:22 - Predictions, Plugs, and Wrapping Up
The session closes with Theo's prediction that the React ecosystem will split more clearly between app-oriented and content-oriented tooling, with emerging frameworks like Solid.js and Astro capturing the website space while Next.js dominates applications. He briefly teases controversial opinions on Flutter and mobile development that the group tables for another day.
Scott wraps up the hour-plus live session by thanking all the speakers and audience participants, encouraging listeners to follow the guests and tune into JavaScript Jam's weekly Wednesday sessions. Theo plugs his own Web Dev Wednesday Twitch show, and the crew signs off to rejoin the conference, leaving the door open to continue the framework debate in future episodes.
Transcript
00:00:00 - Ishan Anand
We are live. I wish we were on video. You could actually see we're live at the Remix conference. We got Scott sitting there with his setup. Oh, there's Michael Chan.
00:00:09 - Scott Steinlage
Yeah. Hey, Michael Chan. You can come up if you want and just speak later.
00:00:14 - Hampton Catlin
You don't have to speak right away.
00:00:16 - Scott Steinlage
All right. All right. There we go.
00:00:19 - Ishan Anand
We are live at Remix Conf 2022. I don't know, I feel like this is the second really big in-person conference this year after we just had React a few weeks ago. And it's such a change to actually meet and see people in person for the first time in so long. It's just been really great, and it's really reinvigorating after all these years of remote. So it's been really great. I don't know about you guys, but
00:00:44 - Anthony Campolo
I mean, I'm having the time, that's for sure.
00:00:46 - Ishan Anand
Great. For the audience who will probably mostly be remote, Anthony, what has jumped out at you, or what have you enjoyed so far the most at Remix?
00:00:54 - Anthony Campolo
Oh, I'm having a lot of fun because all my friends are here. That's great. But the talks have been super great. Like they've been entertaining, they've been educational, there's been a lot of awesome stuff and I'm just soaking it all in right now.
00:01:07 - Ishan Anand
So I will tell you what I have liked about Remix is I think I counted something like 30% of the talks today all have a performance bent to them, which just speaks to how much this community and this framework really seem to care about performance and front-end performance. I came from old-school JavaScript and performance, and I'm used to looking at waterfalls in WebPageTest, and we had Andre from WebPageTest even speaking this morning. But even outside of his talk, when people talk about Remix, whether it's Ryan or Kent or Michael or anybody else who's just adopted it, what we do see is they show a waterfall very often and they show, look, all this stuff is happening in parallel now and it's a lot faster. I can't remember when I have been to a React-focused talk and there was as much focus on waterfalls and decoupling and unlocking performance. That's one of the things that I found the most refreshing, and I think as people are seeing it, the results speak for themselves in the way Remix is delivering faster sites. Michael, what are your thoughts?
00:02:13 - Hampton Catlin
Honestly, the same thing. It feels to me like this year is the first year that we're seeing kind of full-stack frameworks that we've been talking about. What is going to be next? What's the big paradigm shift after kind of client-side SPAs, like really client-heavy apps? And it just really feels like a lot of things are converging on edge. And it's really interesting to see what an edge-first framework looks like: Remix. And seeing Ryan's talk about Deploy today, it's all just really exciting stuff. It's really cool to see all of it come together into what looks like a really new, promising, fast full-stack paradigm for us to build websites in.
00:02:54 - Anthony Campolo
Yeah, I'm so hyped on that because some people may know I host a podcast specifically with the term full stack in it, Full Stack Jamstack. So I've been watching this paradigm shift as well, and I very much bought into it early on. And the edge stuff is a big part of it as well. And when Deploy first came out, I spun up a little simple hello world with it. And then we had a Hydrogen talk, which was really cool. We've had Hydrogen on FSJam. I kind of placed a bet on the ecosystem going this direction, and now I'm starting to see the fruition of that actually come true. And to be at a conference, it's also a trip for me. I remember the day Remix was announced. This was April 2020. Being able to remember that and then now be at a conference with hundreds of people, like this thing that didn't even exist when I was first getting into web development, it's just like that velocity and that change, and just getting to see it all be reified is just...
00:03:46 - Scott Steinlage
Dude, that is so awesome. I can totally see where you're coming from, just seeing that kind of come around full turn or whatever you want to call it. I just think that's such an amazing thing when you can witness that, be there from the beginning through the whole entire process to where it is now. It's just such an exciting thing. And man, I'll tell you what, this event has been nonstop. So much excitement from everybody I meet. Just smiles everywhere. Everybody's looking at each other, yes, this is it, guys. We're here together. This is so much fun. Loving the networking part of this. We're going to have some really great people on here. We already do right now: Michael Chan, Hampton, Anthony. So many people on here. But we also have some more coming later on. Stay tuned in here. If you're listening to the replay, then, hey, you gotta follow all the way through on this sucker because we got some good people coming. Kent C. Dodds is gonna be joining us. We've got so many other great names as well. And I'm just so excited for all this to come together today.
00:04:41 - Ishan Anand
So we've been talking a lot about the perspective from here at the conference. Hampton, I'm really curious, what has your impression been of Remix so far? And you've got a long, storied history in the web ecosystem creating Sass. It's a preprocessor language. And I'm curious. I don't think we've ever really chatted much about Remix. What have your thoughts been on the framework?
00:05:01 - Hampton Catlin
Honestly, I know almost nothing about it except the router is better, which is probably the stupidest way to phrase it.
00:05:10 - Hampton Catlin
But I'm firmly in tech executive
00:05:12 - Hampton Catlin
land these days, which doesn't afford a ton of time to get to learn about the stuff that you all get to do and more on, like, HR policies and making a business case for a new technology. I think for me it's definitely one that keeps coming up and I'm interested in. For me, the rule I've always had with any new technology is I want to hear two people I know take a new technology to production and then say, oh wow, I'm so glad I did that.
00:05:37 - Hampton Catlin
About a month after they launch.
00:05:39 - Hampton Catlin
And I feel like, from what I'm hearing, Remix is going to get right on that edge pretty soon.
00:05:43 - Hampton Catlin
Mostly I'm just going to listen and learn and find out more.
00:05:46 - Ishan Anand
You couldn't have set it up better because that was actually one of the things I was going to get to. And Scott, you and I were at breakfast, and the question I was asking people at the table is, okay, what are you using Remix for? And then who here is using it in production? And that's one of the things I'm actually, like, everyone I talk to, I'm asking, oh, what are you using right now? And I'm hearing a lot of interest. It's halfway through the day. I'd love to get more folks that I can meet. If you're here at the conference and you're using Remix in production, I would love to chat with you. It's for exactly that reason, because in my day job at Layer0, now Limelight, now Edgio, folks that are in your shoes, that are in management land now, when they adopt new technology it's a big commitment, and it's not as easy to change where you go. And so they always want to see somebody else who's done it first. And that is, I think, the remaining thing left for Remix to do. Remix has a great, great community.
00:06:37 - Ishan Anand
There's great technology behind it. And last time we had Kent on the JavaScript Jam podcast, not the Twitter Space but the podcast, and that was, I think, November of last year, that was our question. It was like, okay, who's on this? In fact, when we had any of the full-stack frameworks, whether it was Redwood or Blitz, that's one of the key questions, because I know that those stakeholders care about it. Nobody wants to, not nobody, but big businesses are usually hesitant to blaze that trail. So that makes a lot of sense. I'm really curious to get more people who are using Remix in production. I'd love to hear from them. So if you're at the conference, heck, if you're in the lobby right now and I see a few people from the conference, I would love to chat with you, or just join us on Twitter Spaces and put a request in to come to the panel. We'd love to hear about people's production experience.
00:07:19 - Chris (Everfund)
Oh, my gosh.
00:07:20 - Hampton Catlin
Yeah.
00:07:20 - Scott Steinlage
Hey, I think I just saw in the audience Dan Abramov.
00:07:24 - Hampton Catlin
Wow.
00:07:24 - Scott Steinlage
Hey, man, so cool of you to join us today. I went ahead and invited you up to speak if you'd like to come up. We'd love to hear from you. I'm sure everybody else in the audience would love to hear from you too. So come on up, man.
00:07:36 - Anthony Campolo
No pressure, though.
00:07:38 - Scott Steinlage
Yeah, no pressure.
00:07:38 - Anthony Campolo
If you just chill, chill. There he is. But yeah, obviously I saw him hop on.
00:07:42 - Tanner Linsley
I was like, oh, my gosh.
00:07:43 - Chris (Everfund)
Dan Abramov.
00:07:47 - Ishan Anand
So, Dan, welcome to JavaScript Jam. Are you at the Remix conference by any chance?
00:07:51 - Hampton Catlin
Or not?
00:07:51 - Dan Abramov
Oh, no.
00:07:52 - Tanner Linsley
Hi.
00:07:52 - Dan Abramov
Yeah, no, I'm in the car. I was just reading Twitter and I saw the thing and I didn't know what it was, but I clicked it.
00:07:59 - Ishan Anand
Yeah. Totally stoked to have you. So just to set the stage here, this is JavaScript Jam. Basically, JavaScript Jam is a JavaScript podcast, and we've turned it into an open mic on Twitter Spaces that we host basically every week at this time. And people come and talk about what they want to talk about in JavaScript and web dev. But today is Remix Conference for the framework. So we are here, a bunch of us, live at the conference, just chatting specifically today, mostly about Remix and its impact on the ecosystem. I'm curious, you guys are essentially the core that everybody wraps around, whether it's Next or Remix. What are your thoughts on Remix?
00:08:39 - Dan Abramov
Oh, you're just putting me on the spot, don't you?
00:08:41 - Ishan Anand
Oh, totally. I went right for it.
00:08:43 - Dan Abramov
Yeah. I think there are definitely things they make... First disclaimer: I haven't actually worked with it, so I don't have firsthand experience. I only know some things that I've read about it, some things that other people have said about it. I think I have a medium-level, maybe, understanding of the architecture. Definitely not. I definitely don't know everything about how it works. I think there are some parts that I like about it, and I think there are some parts that I think could be improved. But React doesn't really give you the tools to improve that. So I think with things like server components, where a lot of our focus will be over this year, which I think would be awesome if they were eventually supported in Remix, but it may be too early to do that now, I think it's interesting because some of the problems that Remix wants to solve are also the problems that we want to solve. But we can approach it in parallel. And I think there are some cases where the solutions end up being similar. There are some cases where we would prefer a slightly different solution.
00:09:45 - Dan Abramov
And I think it's quite likely that Remix will kind of evolve to include those things as well. I think if you were picking a framework today, I think it's a good choice. So definitely, I think, check it out.
00:09:59 - Ishan Anand
So thank you for that answer. What's an example of something that you guys feel like you're doing kind of the parallel development or innovation on, or the same types of problems that they've tried to solve that you guys want to solve, but maybe are doing it in different ways? Is there one that comes to mind?
00:10:14 - Dan Abramov
I think it's general. It's the data-fetching story. I think Next kind of does the server-client split as well. Remix does this on the data layer with separating, like, here's the thing that runs on the server where you fetch the data, and then here's the part that runs on the client that actually renders it. And I think we were hoping to blend the two a bit more, and we kind of hit some setbacks where we just weren't sure how to solve some of these things. So it might, like, getting to the solution that we want might take longer. I think there are some differences in how much we want to do on the server and on the client, and I think we were hoping to do more of the rendering work on the server as well in some cases. And so this is why server components are designed this way. But then I think some of the things in Remix offer pragmatic solutions today that we don't actually know how to do in a more granular way. So I think overall the thing that we are working on, I don't think is even comparable, because the things that we're working on are really to empower frameworks that build on top of React and that are able to take advantage of those features.
00:11:26 - Dan Abramov
So we don't really compete with frameworks. We just want to extract the most powerful primitives so that different frameworks can make different opinionated choices on top of those primitives. And of course there might be some disagreements or misalignments in what exactly those primitives should be and how they should work, but hopefully we'll be able to work that out and then you could see both Remix and Next, Gatsby, and any other framework that kind of wants to build on top be able to do less work in the framework itself and delegate more to React itself. So I think that's why it's not directly comparable. I'm just saying that we started working on that problem space a while ago and we have some results. You can see Next.js is starting to try some of those things internally. Remix is also starting to try some of those things internally. But it will just take time before the things that we're working on are stable and other libraries can use them.
00:12:22 - Ishan Anand
What is the thing you're most excited about in React 18? It sounds like it's React server components. You brought it up here twice and is that safe to say the thing that you think is the most exciting new development or is it the streaming piece of it? What do you think is the most interesting and exciting thing the whole React community should be looking forward to?
00:12:41 - Dan Abramov
Yeah, so I've brought up server components just because we're talking about Remix, and I think those three approaches sometimes get compared. Like even on the Remix blog, that was supposed to be server components. I think in general React 18 is not very exciting to a lot of people because it doesn't really give you many features you can directly use. It's more of an architectural release that sets a bunch of foundational architectural pieces and fixes that were necessary. But then if you want to use server streaming, for example, today, if you use some CSS-in-JS libraries or something like this, maybe it doesn't support it yet, maybe some do. But in general it's going to take some time for the ecosystem to catch up, especially with regards to data fetching, because we still don't have a fully recommended story about how to do it on the server. I think the biggest question is: is it going to require server components for that, or is it not going to be required? And I think we're still working that out. You can still use the existing solutions. They work today. They're fine.
00:13:45 - Dan Abramov
But if you want to take advantage of the new React features like streaming and so on, it's going to take some time for the ecosystem, for us to figure out the recommendations and for the ecosystem to follow these recommendations and align with them. And so that's why I think the React 18 release is not super exciting. It's like it's out there, but you can't broadly use everything that it allows. And if you saw there was a Next.js announcement about layouts, it might have been slightly buried in the post because the post very much needs to explain the concept itself. But this will be integrated with Suspense, with server components, with streaming, and with all of those things, which I think the second post is supposed to talk about. It's not out yet. But what I'm saying is this is an example of what I think you will start seeing over the next months, as the frameworks are able to use those architectural pieces and as we fill out some of the missing primitives that the frameworks still need to actually take advantage of them.
00:14:47 - Dan Abramov
I think you'll see that the React team, maybe, like React does not become the focal point anymore, because it's really about what the frameworks can do on top that is powered by all the primitives that React provides. But really I think the hype is mostly going to be about the framework functionality.
00:15:05 - Hampton Catlin
Thanks so much, though, for jumping in.
00:15:06 - Anthony Campolo
Your input, that was very cool and interesting stuff. Okay, Henri up in here, we have a speaker from the conference.
00:15:15 - Scott Steinlage
Yeah, exactly. Henri. Hey, what's up man? What a great talk today.
00:15:22 - Henri Helvetica
Oh, thank you so much. With regards to the conference, honestly for me, and this is obviously just my personal opinion, but I think the vibe is just strong. I think with the conference, the timing here is just so perfect in the sense that you had this brand-new framework that was just like the buzz of the town. On top of that, timing calendar-wise, you're looking at, I guess we're in like late spring or summer now.
00:15:47 - Ishan Anand
I can't.
00:15:49 - Henri Helvetica
But the timing there was good. And on top of that I think this sort of signals the return to in-person conferencing. So you put that all together and I think you just have a really strong environment of people that are excited to be here. So from the success and everything that it's done to, again, people coming together for the first time in a couple of years, I don't know if you guys looked out the window, but it's nice and sunny out there.
00:16:17 - Scott Steinlage
Thank you so much man. Greatly appreciate you sharing all of that. Thank you so much. Henri, man, you've been so good. Loved your talk. Anybody else have anything to say?
00:16:26 - Ishan Anand
Henri, you weren't here at the beginning, but before you joined, one of the things I was saying is what's interesting about this conference compared to other React conferences I've been at is I think something like 30% of the talks today have some performance aspect to them. And it's the first time in a while that I've been at a front-end conference that was not focused on performance where I saw so many waterfalls. Like the number of waterfalls I see when people talk about Remix is really refreshing to me as somebody who's worked in that performance space for so long. And I think it goes back to what Dan was saying, which is I think when you take a broad sweep of what kind of movement seems to be afoot is we had this time where everyone adopted this SPA kind of architecture and tried to be as front-end as possible, and the server just served everything statically from the CDN, and talking to the server was just an API. But the relationship between the client and server is now evolving and getting a lot deeper, and I think the importance is borne out in that focus on waterfalls.
00:17:25 - Ishan Anand
I'm curious what your perspective on that is, and if you feel the same way that when you're at this conference, there are more waterfalls than you normally see at a React or a front-end conference, or maybe that's just me.
00:17:34 - Henri Helvetica
Thank you for bringing that up. I was actually going to follow that up with that very same comment. You literally took the words out of my mouth. For someone who's been around performance for a little while and having sort of sat back and watched conferences have one performance talk and essentially call it a day, to have something like Remix, I remember finally taking a look at the talks and the abstracts and thinking, oh wow, this is actually performance-tinged, and this is performance-tinged, and he's definitely going to talk about performance, and she's bringing it up. And even last night during the pre-recorded talks, young lady, I'm totally forgetting who, but she gave a pre-recorded talk and it was basically about performance, and she said that she was happily joining this space and looking forward to learning more. This is the kind of content I only got at pure performance conferences like PerfMatters, like Velocity back in the day. So this is absolutely refreshing. And like you mentioned, the waterfalls. Anyone who understands performance knows how important the waterfall is. So to see so many come up on the screen, I think it's just indicative of where we're going.
00:18:45 - Henri Helvetica
As you mentioned,
00:18:50 - Hampton Catlin
I'd like to push into that a little bit more because I think that you're totally right, and this is really interesting. There's a vibe that I really like, and it's shifting to the craft of website making. And I'm going to say some stuff, and I don't mean it to have negative connotations that it may just by saying it. But I think it's really interesting how it feels that Remix is really focusing on just building great websites again, which we got away from in the time where we were focusing on interactions. And I think that's what a lot of the new-wave component libraries brought to web application development was interactions and really nice interactions. But now we're seeing this full-stack integrated interaction type of thing. They're getting married together again in Remix, but with a really big focus on the web, which I think is fun. And I think a lot of the energy here is that kind of I love the web, that classic web. These are the things that we learned. Henri and I talk about this, just being at this point, we think about the web differently maybe than someone who's just coming into it now.
00:19:57 - Hampton Catlin
And this kind of consolidation of interaction and integration, like full-stack websites, it just seems really cool. I like it as an alternative to the model where you have some kind of GraphQL and then everything is just a big client that attaches to it. Because I think that there's definitely space for things that are just a website or a web app. And I think that's what I'm excited about. As someone who really does love the web and isn't someone who is trying every day of my life to build some mega-startup, I think that's something that I'm really excited about.
00:20:37 - Ishan Anand
I think that trend you were talking about was a reaction to the web doing an existential soul-searching in its place. With the rise of native applications and as mobile traffic took over, there was an attempt to mimic and copy as much as we could and try to be as much like a native application in terms of the experience. And native apps are great, and they do have a great experience, and they've really raised the bar and expectations for performance. But how that translates architecturally to a website, they're not distributed the same way, they're not downloaded all at once. You don't have that download transaction like you do, except maybe now with PWAs. But when you first load as a webpage, you have to do it more progressively, which gets back to the theme that you were talking about. So I think that's maybe the trend here, or maybe the trigger, is that finally the web maybe is getting more comfortable with itself again and to stand on its own.
00:21:34 - Hampton Catlin
I really like that framing a lot. If you think about that as the teenage years of, oh, do we need to be native? I really do. That framing, that idea of, yeah, we're just getting more comfortable with ourselves. And maybe it's not like you can't have it all, have everything. And there is this architectural purity, I think, of saying, oh yeah, we have one backend and as many clients as we want. And that is definitely a way to build a huge product. But not all of us are doing that every day. And so having some balance to that worldview is super exciting.
00:22:16 - Scott Steinlage
Or just in general, any kind of topic you want to bring up, Remix would be appropriate with what we're doing right now. Here we go. A regular, by the way, guys. There we go. What's up, my regular?
00:22:28 - Speaker 10
Hey, thanks for the add. Yeah, Remix is excellent. I did the various tutorials. Once you get into it, it's a lot of fun and it makes a lot of sense with the loaders and the mutation functions. I forgot what that's called now. Once you're into it, everything's all just right here. It's like these perfect abstractions, and it's so easy to work with. But I will say, if you get out of it and then try to come back in, it's a little bit...
00:22:54 - Tanner Linsley
What's the word?
00:22:54 - Speaker 10
Intimidating to approach from the outside, unless you take an entry point that's more simple, at least for me. At least I'm more of a student than a pro. But yeah, once you get in there, the abstractions are really nice. It's very straightforward.
00:23:10 - Henri Helvetica
That's really good.
00:23:10 - Ishan Anand
Well, actually, on that topic, we've talked a lot about Remix, but most of the people here probably haven't used it day in, day out or even gotten started with it. What would you recommend for the best way to get started?
00:23:22 - Speaker 10
I did their simple example and then the jokes one, which is more of a full app. But before I did the big jokes one, I did the React Router invoices to figure out how... I'd not even used React Router before,
00:23:35 - Ishan Anand
to be honest with you.
00:23:35 - Speaker 10
So I got up to date with that, and then once that really ports pretty much one for one to Remix, it's just like React Router with some primitives for loading data.
00:23:46 - Ishan Anand
Thank you. I see James Quick just showed up. I know he's here at Remix Conference. Love to hear from you and get your reactions and thoughts. Hey, we're just talking, as you know, about the Remix Conference, so thanks for joining. What have your thoughts been so far? I don't know. I've gotten to meet the most amount of people that I've known online in person ever at this conference, which is really special. And I feel like it's a buildup of not being able to be in person for a couple of years, but this just happens to be the perfect fit for the type of content and the conversations that I have online for the people that are here in person. So it's been really amazing.
00:24:29 - Hampton Catlin
I think I want to chime in on that too a little bit. I was talking with Austin Crim about that, how a lot of times there's always that hallway track. And it's really hard because you got to balance seeing all your friends, building those relationships, and then also the talks that you want to see and supporting the people who have dedicated their time to speaking. But it's on steroids right now because I'm seeing people that I've formed online relationships with over the last two years that I've never met in person. It's just out of control right now. That energy and excitement of seeing people for the first time in person is just crazy. It's really great.
00:25:10 - Ishan Anand
It definitely feels like it's coming back, and it's great to make those connections again. So, Shaundai, you were a speaker at the conference. I have to admit, I wasn't able to catch all of it because I had a meeting that happened right in the middle. But what I caught was great. Do you want to tell the audience a little bit what you were talking about and then your thoughts on the conference so far?
00:25:28 - Shaundai Person
Yeah. So I have had a very busy couple of days. And just really reiterating James's point, this has been. This is actually my first tech conference in person. I've done tech conferences virtually and spoken at some, but this is the first one.
00:25:42 - Scott Steinlage
Yeah, you did amazing on stage. Like, you did not make it look like it was your first time.
00:25:47 - Hampton Catlin
So congratulations. That was awesome.
00:25:49 - Shaundai Person
Thank you. Thank you so much. Yeah, this has been a really fun experience, and it's been great to meet all of the people that I've learned so much from and grown to have these real, genuine friendships with in real life. I'm like, man, I talk to you all every day and it's just so weird to see people. Not weird, but I'm feeling really... my heart is full this week. So yeah, it's been really good. And my talk was the third talk. Michael Jackson talked, and then Henri spoke. Henri, you did an amazing job. And then it was me, and I talked about how Remix as a web framework gets your users to interactivity. So Remix adopts the properties of a server-rendered application when you're doing that initial page load, but it optimizes on that and gets you to interactivity quicker. And then as you're navigating between different pages, Remix adopts the properties of a client-rendered app to get your users a more personalized and interactive experience as you flip between pages. So it sounds fancy, but it's just a bunch of big words for your users...
00:26:56 - Shaundai Person
Don't have to see a bunch of loading spinners, whether they're on high-speed internet or whether they're in some remote region of Utah like we are right now. They're able to have the benefits of a very performant and pleasant experience no matter what, and Remix gives you that out of the box. So that was what I did. I did dance on stage, which was awesome. I danced to TLC's "Waterfalls" and...
00:27:22 - Scott Steinlage
Oh yeah, don't go chasing waterfalls.
00:27:31 - Shaundai Person
I love it.
00:27:34 - Ishan Anand
That's the part I missed. Was that a pun on, like, performance waterfalls?
00:27:38 - Shaundai Person
No, actually it had nothing to do with anything. It was just the music in between. And so while there was a gentleman setting up my computer and plugging everything in, and "Waterfalls" was the music that was on when I came on stage, I was like, I have to dance, what else am I gonna do? Yeah, so I just did the dance from the video. But yeah, that had nothing to do with waterfalls. I wish I had caught that before. But no, that's really good. That's a really good analogy. But no, different waterfalls.
00:28:08 - Ishan Anand
Yeah, I think there's actually maybe, Henri, you know who it is? I can't remember who it is, but they have a performance podcast called Chasing Waterfalls. It's one of the common jokes around performance, the networking waterfall and then the song, so really cool. And then I know there was mention about React Robins on stage. Do you want to just tell people about that?
00:28:32 - Shaundai Person
React Robins is a community dedicated to the personal and professional development of women and folks who identify as non-binary who are React and JavaScript enthusiasts. You don't have to be in the industry yet. It's a very welcoming community. But it's a series of meetups, usually we'll do once a month, and also people will reach out outside for networking purposes. But if you're interested, React Robins on Twitter, I think the handle is React Robins. But if you look up React Robins on Twitter, you'll be able to find their handle and then join us for meetups, and you have the opportunity to speak or hear some really talented people speak about React and then also get to meet people and network in the community and find your next job.
00:29:22 - Tanner Linsley
Very cool.
00:29:22 - Ishan Anand
This JavaScript Jam Live grew out of another thing we call JavaScript Thursdays, and I would say every other week session it was run as an open mic, just anything JavaScript and web dev. But every other session there was somebody wanting to go to the next step in their career or break into web development, and they were wanting to learn or get started. So resources like that are really helpful that can break down the barriers and make it less intimidating. You work at Netflix, is that correct?
00:29:50 - Shaundai Person
Yes, that is correct.
00:29:51 - Ishan Anand
So what framework are you guys using day to day, or day in day out for you, like personally in your role? Just out of curiosity, what does your stack look like?
00:30:00 - Shaundai Person
Yeah, that's a great question. Overall at Netflix, just know that the stack that I'm using may be completely different from somebody on the same team as me. As engineers and as an org, meaning like the org within an org, we have the autonomy to decide what tech stack we'll be working with. And so the one that I work with is still the same stack that I've always worked with, which is React and TypeScript. And then I've been learning GraphQL. I'm used to REST APIs, or I originally learned REST APIs, but we're very heavy GraphQL, federated graphs, and things like that. That was something that I've been learning on the job. And I guess the takeaway there too is when I applied at Netflix, the job description said React, JavaScript, and GraphQL, and I didn't know any GraphQL. I hadn't touched any GraphQL. Before I applied, I looked up to see what GraphQL does and what it compares to, and that was all that I knew about it. But I didn't have to know the entire tech stack to get in. If you see a job and you meet like 60% of the requirements, just go ahead and apply.
00:31:08 - Shaundai Person
And the worst that can happen is that they tell you no. But to answer your question, yes. React, TypeScript and GraphQL for me on the front end.
00:31:17 - Ishan Anand
Got it. They don't have their own meta framework you guys use internally or something like that? The equivalent of a Remix or a Next or something similar?
00:31:24 - Shaundai Person
We make a lot of tooling that other companies will use, but it's more of, it's not like frameworks or unique languages and things like that. It's more tools that people can use to build pipelines, write security tools, all different kinds of things, just tooling that people will build off of. But no, we don't have that, as far as I know. We don't have any framework like that.
00:31:48 - Ishan Anand
Okay, thank you for your talk and jumping into JavaScript Jam Live. I noticed we have Tanner Linsley. Yeah, TanStack himself.
00:31:56 - Dan Abramov
I love him.
00:31:57 - Ishan Anand
Are you actually at Remix Conference?
00:32:00 - Tanner Linsley
Yeah, I'm sitting near Chan.
00:32:02 - Ishan Anand
Oh, you are? Oh, I have to walk over and then I'll shake your hand. Oh, and there's Chris too. Okay. Yeah. I'm trying to avoid audio bleed here.
00:32:08 - Tanner Linsley
We all talk together.
00:32:09 - Ishan Anand
Everyone in one space. [unclear] from afar.
00:32:13 - Tanner Linsley
It's a little weird when you're close proximity.
00:32:16 - Ishan Anand
Yeah. Tell us your thoughts so far on the conference.
00:32:19 - Tanner Linsley
I think it's fantastic. It feels a lot like React Rally, and that's exactly what I was hoping for. The biggest thing about this conference, and I really think any other React conference, is just the people. The minute that I step foot into the venue, I'm just seeing faces that I've known for so long on the internet, and it's just a good feeling. You feel like you're among family and among friends, and everybody is just interested in the same things and pushing forward as a collective. It's a great feeling. I have never really felt that in any other conference I've been to, and I'm really glad that it has the same feeling here.
00:32:53 - Ishan Anand
That's great. As somebody who's built a lot of popular open source tools, folks have started calling it the TanStack. What are your thoughts on Remix and the meta-framework ecosystem?
00:33:05 - Tanner Linsley
The meta-framework ecosystem is and will forever be a very competitive landscape, in my opinion. And I like that. I think that everybody pushing each other forward is really what's going to be best for our ecosystem. And it's not necessarily an area that I want to get involved in personally, but I'm super grateful for those that do. I think it requires a lot of dedication, a lot of people, bright minds to be able to take a meta framework in the right direction. I'm just glad that we have organizations that are capable of doing that. I think meta frameworks in general are driving forward the innovation in our space. I think that's fantastic.
00:33:46 - Ishan Anand
How do you decide, you've built a number of popular tools, how do you decide what I'm going to invest my time in building, whatever the next thing is? You're not quite building a meta framework, but you've built things that other meta frameworks have incorporated. So where do you see your efforts? Or is it literally like, I have this problem, I'm going to solve it? Or do you have a, shall we say, a work thesis as to where you think your work sits?
00:34:10 - Tanner Linsley
Yeah, a lot of it honestly has to do with running my own company and my own business, is you run into problems as a company and they're real-world problems. Within open source sometimes you can think of it like, oh, I have all the time in the world to work on this product or this library or whatever and ship it to help people. But when you're in the weeds and you are trying to build a product that has nothing to do with our open-source ecosystem or whatever, like it's just a SaaS product, you just run into situations where you need to ship quickly, you need to get things done, and whatever's going to increase the agility and momentum of your team is going to be a worthwhile investment. And for us, the time that I've spent in my company, we've been a very lean team, below 20 people, over the last seven years. So we don't have a lot of people working on big problems. It's very few people. And so I always look for tools that are going to hopefully maximize the amount of effort that we put in.
00:35:11 - Tanner Linsley
And if I can't find those tools, or if I can find the tools and they're not built in a way that we want, or everybody's opinionated, so am I, but if we think that they can be polished, then we'll try and contribute. And ultimately maybe I'll create an open-source library. I will admit it's definitely not the first thing that I want to do. It just creates more work. But there is a process to it, and a lot of it just involves problem-solving to move faster. And that's exactly how all of my libraries have come out so far. React Query, it may not have been this massive revolution of building a meta framework, but it was solving a very real-world problem, a direct problem, that the vast majority of the React ecosystem was feeling at the time, including myself. And while I would have loved to invest a year and a half or whatever into building something that would solve many more problems, I had to ship a product to hungry customers of my own and I needed to do that very quickly. So it's a balance. A lot of it is balancing open-source work versus privatized work for a company and just striking a happy medium where you can push the needle forward for both of those at the same time.
00:36:19 - Ishan Anand
It's interesting, especially when you bring up React Query, because we were talking earlier before you joined that with Remix and a lot of the bigger trends in the ecosystem, in terms of streaming and stuff like that, they're all about the relationship of the client to the server. And that relationship is now maturing beyond just simple requests. And how do we figure out when to fetch appropriately and actually show the right thing? And React Query really is part of that. But I wonder, do you agree that seems to be the theme of the last, say, 12 months and going forward another 12 months, or is there, or...
00:36:53 - Ishan Anand
would you disagree with that?
00:36:54 - Ishan Anand
That seems to be like when I broadly look at it, maybe it's just because I look at waterfalls and performance, but maybe you have a different view of it, given your perspective on the ecosystem.
00:37:03 - Tanner Linsley
No, I think I totally agree. We're on a pendulum that's constantly swinging back and forth, and hopefully the amount that that pendulum is traveling is getting shorter and shorter every year. But we're definitely swinging back towards performing more work on the server if possible. And before it was very difficult to do that in a way that was cohesive with what front-end developers do with designing and building UI and providing a great user experience. But tools like Remix and tools like Next are making that easier. And so as those tools start to bridge the gap between backend code and frontend code, that's becoming less of a problem. And clearly it makes sense to do more of the work up front, offload the work from your users, and get a faster experience. So I think what we're seeing is a very natural shift, the pendulum swinging back to the server, and I think it's a good one. And I hope it continues because I think all we're going to see is just better products coming out, a better ecosystem, and overall just happier users for all of our products across the board, whether they're users or developers or non-developer users all over the world.
00:38:08 - Tanner Linsley
I think it's fantastic.
00:38:09 - Ishan Anand
Last question for you. You've done a lot of really cool tools in the TanStack, React Query, or React Charts, TanStack Table. What would be like either the next piece of gap, either broadly in the React ecosystem
00:38:23 - Ishan Anand
that needs to be solved, or you're
00:38:25 - Ishan Anand
like, there might be this niche thing that I'd love to do, but I don't have time to do it. What do you see as the interesting open gaps looking forward? A lot of...
00:38:31 - Tanner Linsley
The interesting gaps to me are very specifically related to complex components and complex interactions that users have with most applications. Things like building a table is something that everybody does. It comes in so many different forms and flavors, but tables are just one small part of it. Data visualization, obviously, is another one that I'm still digging into. Because React Charts is still beta, I'm still exploring that topic. And other areas generally just have to do with headless, headless logical components. I guess you could say I'm really interested in headless UI, and I think that there are a lot of workflows and state machines and a lot of expectations that users have out of UI components that we're just rebuilding all of the time in our own kind of random little ways simply because they're tied to a specific UI or tied to a specific framework. And I really want to be able to keep investing myself into tools that are going to unlock those capabilities for anyone, regardless of framework, regardless of UI component library, whatever. I just want us to be able to say, yeah, you know what, this is a great tool that you can use to build a table or just whatever other component you want, and use whatever component library you want, styles, use it in React, use it in Svelte, doesn't really matter.
00:39:52 - Tanner Linsley
Those are the kind of utilities that I have my eyes set on, and I have a lot of ideas. I don't really want to spoil too many of them. But after I'm done with React Table, I guess I should say TanStack Table because I literally just rebranded it yesterday, once I'm done with this big push, I'll be investing myself into some new ideas and new tools. So you just kind of have to wait and see.
00:40:12 - Ishan Anand
Okay, we look forward to it. Thanks for jumping on JavaScript Jam Live. Chris from FSJam and Everfund, I see you there as well. I'd love to get your thoughts on Remix.
00:40:21 - Chris (Everfund)
I find it funny that you say I see you there, and I'm literally looking around the lobby like, where is there?
00:40:26 - Ishan Anand
I see you there. I see you. I see you there physically and I see you on my screen.
00:40:32 - Chris (Everfund)
Yes, I was hiding in the darkness. I was hiding in the dark restaurant.
00:40:37 - Ishan Anand
It was the most isolated in terms of audio that I could find. But yes, tell us your thoughts so
00:40:43 - Ishan Anand
far on the conference and maybe what
00:40:45 - Ishan Anand
you're most looking forward to in the conference coming up.
00:40:48 - Chris (Everfund)
Yeah, I feel quite humbled to say that this is my first technology conference I've ever been to, so I find it very hard to compare this to anything else because coming over to the United States is like a big monkey-brain moment for me. It all doesn't feel real. It feels fake, in terms of these tools that I'm using every day. And I'm looking at it, I think that Remix has such potential to push the ecosystem forward, but I think it does not and should not become merged as like it's a one-to-one battle or something like that. They should both keep their separate USPs, and yeah, they can share what they do and features and functions. But when we think about pushing the ecosystem forward, if we just join together, what's the difference between Gatsby and Next at this point? Not much. And if it's like, what's the difference between Remix and Next right now? There are quite a lot, because it's a very different way of thinking. But obviously Next.js is introducing features that get a bit closer to Remix. I think to keep innovation up and to keep the industry pushing forward...
00:41:57 - Chris (Everfund)
I think that Remix is one of the best bets we have right now, and I'm very excited to see how it's going, how it's growing, and I can't wait to see what happens in the space of edge functions. Will we finally get to a perfect stack of Netlify with edge functions, with a database hosted on a serverless database, and everything is distributed across the world, never having to worry about it, and all just done from a CLI? Maybe that's the future that we all want.
00:42:26 - Ishan Anand
So I hear what you're saying about they shouldn't be pitched against each other in terms of these frameworks, and I love the sentiment, and I think it's great that they're all pushing each other. But at the end of the day, we meet a lot of companies that don't have the benefit of starting from zero. They've got a legacy stack and they have to make a decision as to where they invest, and when they make a leap, it's a leap. They want to make sure it's the next one that's good for as long as possible. So at some point they do compete. I want to just push on it. What would you think are the right ways to maybe make that decision, if you've got a sense of it?
00:43:00 - Chris (Everfund)
Yeah. I think that competing is always relevant and natural. Whenever we have two new frameworks, we'll always compete. We will always put one versus the other. But what I think is better, and to always look for, is a unique benefit of why we should use one over the other. Why should I build X or Y if I'm building a blog? I personally don't think we should always say Next.js is the website builder of choice, always. No matter what product it is, we pick Next.js. I think it's very much that we need to figure out what framework has the right benefits for the right use cases. I think that's a really hard thing to define at the idea stage and also the mass-production stage. We had a talk with Michael Jackson this morning saying he doesn't want you to build two apps, he wants you to build one app that will always work. Instead of you build it in Next.js and go, it's no longer good enough, time to rebuild it in Remix. I really feel like figuring out where each framework thrives will really help out the industry, if that makes sense.
00:44:07 - Ishan Anand
Yeah, that does. I don't know that we've settled on where those thrive points are for each one. I think there's still some changing, it feels.
00:44:15 - Tanner Linsley
Yeah, yeah.
00:44:16 - Chris (Everfund)
I feel like it's changing always, and it can be so incremental. Gatsby 2 to 3 was such a big leap that brought it up to more like Next.js. But I think the biggest thing with it all is that we need to always try to remove our biases at the same time. Of, oh, new shiny thing that says it's going to be the fastest thing in the world. Is it going to be the fastest thing in the world when there's 10,000 pages? Because even a Next.js website with 10,000 pages still takes 10 minutes to build or longer. Performance will always be there. And I think the biggest thing I can say is that I'm trying to always be mindful of this stuff. But I'm very interested in potentially how Remix can replace Next.js in certain parts of Everfund and to potentially build Remix apps into Everfund in the future.
00:45:08 - Ishan Anand
Oh, wow. So you're going to try and merge them together?
00:45:10 - Chris (Everfund)
Not necessarily together. I think there's definitely a replacement strategy for something like what we use Next.js for, because we went from Gatsby to Next.js because we said we want incremental server-side generation. But actually now when you literally look at it from Remix, you think, does it even need to be incrementally server-side generated? No, it could be just always served from the server. And I think there's a lot of benefits and dividends that would probably come with that.
00:45:38 - Ishan Anand
Yeah, I could go on actually forever on that. Do you need ISR, or just better standard caching and use it in a smarter way? But I see Theo has his hand up. Theo, go ahead.
00:45:48 - Theo
Can I half-agree really hard? Because there's a lot of good points in here, but there's a lot that I think is like drinking the Kool-Aid a little hard.
00:45:57 - Ishan Anand
I want to hear the half that doesn't agree because it's always more interesting.
00:46:01 - Theo
Okay, so the first one is it seems like we're almost a little too focused on the technical, what the intended design use case is of each of these frameworks. And when I make decisions for the teams I'm running and for the tech that I'm working on, there's a lot of other aspects of that decision that I feel like we're ignoring here. One of which is how replaceable is this piece of technology, and another is how overridable are the decisions that were made by the creators of this technology. With something like Next.js, which is what I tend to use at this moment, I use Next.js or an SPA builder like Vite if I need something that doesn't need any SSR generally, though I don't use most of Next's primitives and opinions. I'm actually adamantly against getServerSideProps. I consider it a bad pattern, and the way that they prescribed it in Next page components is not great. I'm really happy with the direction of the RFC, actually. I have a video on my YouTube channel reacting to it. But I generally believe that Next provides really powerful primitives to build on top of, and doesn't prescribe decisions in a way where I can't opt out or work around them if I or my team has different needs or desires, compared to something like Remix where you can't even do hot module reloading.
00:47:13 - Theo
When I save a file in my editor, my page reloads itself entirely. I'm building a video call app. I can't do that in dev. I can't disconnect and reconnect a video call every time I change a video file in order to have a good development experience, and my team would hate it even more. It's really important to be considerate of how these decisions are made by the maintainers of these technologies, and is this being made in a way where I as the developer using them can work into them, around them, and over them when I need to do different things?
00:47:44 - Ishan Anand
That's really interesting. So let me extrapolate. You're basically saying the lack of module reloading is an issue in what we'd call a more app-like experience, more thick-client. Is that correct?
00:47:59 - Theo
Yes. I firmly believe that Remix's strengths exist outside of app-like experiences. I'm not saying you can't make a good app with Remix. I'm saying the benefits of Remix don't really help when you're in an app environment and there's a couple of gotchas that you can't work around, such as this immediate reloading whenever you save a file.
00:48:16 - Ishan Anand
Chris was just talking about different frameworks have different areas they do better in, as it relates to Next and Svelte, which is like Svelte is for websites, React and Next are for applications. It sounds like you're saying something similar here. Or could you break it down to a key litmus test here? Is it that thick client versus thinner client, or are there other things where you think one is better than the other?
00:48:37 - Theo
I think this is a higher level rather than, like, I'm not thinking in terms of Remix versus Next. I'm thinking in terms of I as a CEO and CTO deciding what makes the most sense for our team. It's not just Svelte and Remix are best for websites and Next is best for web apps. It's the way that these decisions are made by these companies. How much am I buying in? I think a better comparison here would be something like PlanetScale versus something like FaunaDB, where with PlanetScale I'm buying into a standard, and I know I can swap off of PlanetScale back to RDS and move my SQL database and my SQL data over to something else without having to take a heavy hit on my server side. I can relatively easily make that transition. With something like Remix, you're buying into a lot of new ideas that are not necessarily going to stick and that could have a lot of thrash. And when you look at the relationship between the Remix team and the React team compared to the relationship with the Next team and the React team, it makes a lot of sense that Remix is so upset right now because there is, for any of many reasons, a tighter relationship between Next and React.
00:49:36 - Theo
So by betting on Next and then having that internal buy-in on the standard, similar to PlanetScale, it's more likely that this bet will stand the test of time, and if it doesn't, there will be better migration paths off it. That's something that's like in VC world.
00:49:52 - Ishan Anand
Got it. Okay, so this is really interesting because you're hitting on something that comes up when we talk to a lot of our customers and prospects, who tend to be larger companies, often with a legacy stack. And when they're buying, they're looking for a couple things. I don't want to unpack there. One of them is vendor agnosticism, or the ability to move off the vendor if they need to. That's one you talked about, have a migration path off, and then the second is the strength and size of the ecosystem. Am I correct in extrapolating those are the two things that you're basically bringing up there, the decision points?
00:50:25 - Theo
Yeah, absolutely. I will say that vendor lock-in goes beyond portability of platform, but portability of technical workflow as well. In our codebase we are using Next.js. But I really think that even though we have at least like 50 to 80k lines of code in production that are regularly being changed out, I honestly think I can move us to Express plus a single-page app provider like Create React App or Vite super quickly, like over a weekend, because we use Next in a way where we're basically writing functions and then calling them on the client, rather than buying really heavily into the features that Next provides. When Next makes our lives easier, we use it. But when it doesn't, we're not scared to work around it in a way that lets us theoretically move off in the future. People refer to my stack as the Ship of Theseus as a joke sometimes because I replace every part regularly.
00:51:14 - Ishan Anand
I love that. Can you explain the Greek myth to those who aren't familiar with it?
00:51:18 - Theo
Yeah, of course. The Ship of Theseus is the famous myth of a boat that, as it was sailing across the ocean, continued breaking, and they had to replace and rebuild every single part. And the theory is, is this the same boat on the other side now that every single part of it has been replaced? Is it still the same boat?
00:51:36 - Ishan Anand
So then you're intentionally staying away, you're using, shall we say, Next as lightly as possible.
00:51:42 - Theo
Yes. I really like that.
00:51:44 - Ishan Anand
Okay, got it. So you wouldn't use things like ISR, for example, or ISG.
00:51:49 - Theo
I use them incredibly lightly, for performance reasons. Never for something that's business-critical, where if we lost it, it would kill us. But to keep our reads down and to make performance on a page slightly better, I'll add more lines of code, but I'll usually leave a comment saying what it's for and what the consequences are of deleting it. So in the future, if we do deprecate that or move off the framework, we know exactly what the consequences will be.
00:52:14 - Ishan Anand
Got it. So I fixate a little bit on that because we've done the work to allow people to use ISR and SSR with Next on our platform. But if somebody really wanted to use Next as lightly as possible and have the easiest migration path off it, you could get a lot of the same benefits just doing proper caching. Is there a reason you didn't try to just see if you could replicate something similar with the right setting of cache headers and the right kind of handoff and that kind of stuff?
00:52:43 - Theo
I have played with building my own Next.js alternative a few times. Tanner was here, he left right when I got up, but I've played a bunch. I'm really pumped with the stuff that he's working on, generally speaking. And obviously there's awesome stuff going on in Remix land, but caching's caching. If I can throw a header on a response and it sticks around for a bit longer, cool. Being able to invalidate a cache is really important to me, and I think that's one of the proprietary things Vercel has right now that's really nice, being able to programmatically hit a thing and say, hey, make this fresh again, and it does that reliably. That was one of the coolest releases for me that made me rethink my philosophy here and consider adopting more of what Next is up to. But generally Next is the easiest way for us to deploy a backend and a frontend that have a type-safe boundary between the two of them as quickly as possible. And we use Next and Vercel for the deploy side and for the resiliency there more than anything.
00:53:39 - Ishan Anand
Okay, yeah, I know that invalidation is really important. You'll forgive the plug, we actually support that as well. And actually, I've supported it for a while. It's really important for our enterprise clients who are trying to do lots of pages or they're doing frequently changing pages so they keep as much data at the edge as possible. And that's actually a key part of what I'd call an intelligent use of caching. You don't actually need ISG or ISR to invalidate, but I totally hear you. That's the best way to essentially leverage caching. That's what ISG and ISR wrap in a much easier-to-use way. So that's really interesting. So that was the migration path part, and then there was the ecosystem part. And you were alluding to what you viewed as the differences between, I don't know if the word is the energy or the feeling, of the Next versus the Remix ecosystem. Do you want to elaborate on that a little more?
00:54:33 - Theo
I don't know how much there is to elaborate on. Vercel has cornered so much of the important core React talent and just has the brainshare of even the Meta teams directly. It seems like Next kind of is the next React in a way. And on top of that, I have the personal bias of being very frustrated with React Router. I feel like it got adopted more for the name and the presence in Create React App than for the technical superiority or benefits that it offered. There's lots of other great routers that work totally fine, and React Router did some weird things around naming of its patterns that conflated with actual web-standard names, and now they're pushing web standards. I don't want to rant too deep about that, but generally speaking I feel like Remix's core is React Router and Next's base is React itself. And it shows a lot in how the frameworks are architected and how the decisions are made around them, that Remix started with React Router and Next started with React.
00:55:30 - Ishan Anand
So I see. Chris, you have your hand up. Do you want to jump into this or. Yeah, go ahead.
00:55:35 - Chris (Everfund)
Yeah, of course. Just to reflect on what you're saying, Theo, I totally agree. I'm not going to go switch out Remix today. I think there are still very much certain things Remix needs to do to truly feel like it's a safe option in certain areas. But also it's probably not advised. I would probably not advise it. It's better to make money than waste time swapping frameworks at the end of the day. And I just want to bring up a quote that Kent C. Dodds said on my podcast, and he said that the biggest migration path for Remix is not actually Next.js to Remix, it is Create React App to Remix. Because there's 9 million downloads of React Router, and they believe that Create React App is an old default that could be replaced by something like Remix in the long term. That's paraphrasing and probably using some of the wrong words, but the episode of FSJam is out there with Kent C. Dodds on where you can listen to him say it. So yeah, thanks for your time.
00:56:36 - Theo
Yeah, I totally agree. I think that Remix is a very happy path to do things as simple and opinionated-ish as possible while following web standards. When your previous experience is Create React App, the migration path there is pretty happy. I find that Next is more different in that way, but I find that with Next it's also more modular as well, like the ability to use the API directory and do crazy stuff. What we do at Ping is we have a tRPC endpoint served through Next that serves at least a hundred different API endpoints directly, and we just write a function and then we call it on the front end. React Query is the layer around that, so we have loading, error, and all the different state-management-type behaviors. But we also have full type safety because the function was written in the same codebase and it's importing the types over the file boundary in dev. The result is we never have desynchronization between our backend and our frontend ever. We have a single lambda, which is a single endpoint that's deployed automatically on Vercel for us, and we really don't feel Next when we're working in Next a whole lot.
00:57:40 - Theo
And Remix, you feel a lot of Remix when you're working in it. If you like the way Remix feels, that's cool. But I don't like feeling the framework when I'm building. I like feeling what I'm building.
00:57:51 - Ishan Anand
Oh, I just want to, I know we run close to the end here, but one last question just to throw to Theo. If you were to make a prediction for the ecosystem, your hot take, what would it be for, say, the next 12 months or 24 months in terms of what we're going to see in the framework?
00:58:05 - Theo
I think we're going to see a fracture a lot harder from apps and websites, where Remix has made it clear that there's a hunger for more performance solutions for non-SPA-like React applications. I think we're going to keep going back to realizing React isn't the fastest thing for that. We're going to see a surge in the interest in technologies like Marko and Qwik. With Ryan Carniato going over to Netlify, we're definitely going to see Solid.js continuing to gain traction. My suspicion would be we see in e-commerce, the blog, the marketing site space, they move over to tools like Astro combined with Solid or tools like Marko and all the other things I mentioned there. And in the app world we see Next just taking over right now. I still feel like Next is seen as a semi-static site builder. The comparisons to Gatsby will always kill me. I couldn't consider those two things more different. And I see the role Gatsby built and, to an extent, the role Remix is filling being overtaken by Astro adding SSR and by SolidStart and some of the Svelte camp stuff. I really think we're going to see a fracture there, and we're going to see Next dive more into app, which we really saw with the new Next RFC.
00:59:22 - Ishan Anand
Very interesting.
00:59:22 - Theo
Mobile is going to be totally forgotten, and Flutter is the scourge. But those are rants for another day.
00:59:26 - Ishan Anand
You think Flutter is the scourge?
00:59:28 - Theo
Oh wow.
00:59:29 - Ishan Anand
Okay.
00:59:30 - Scott Steinlage
All right, hold on.
00:59:31 - Ishan Anand
Yeah, we're going to. Yeah, we might have to pause that. I'll let you get back to Scott.
00:59:34 - Scott Steinlage
Yeah, I think, no, I think this conversation is amazing. Simply put, seriously, I can't stress how much more we want to continue talking about this, but I want to say that we've been going for a little over an hour and 20 minutes and we are live at the Remix conference. So we do actually have the conference to get back to. Yes, it was super awesome to be able to sit here and chat with some amazing people. We had several of the speakers that were here at Remix come and join us today and talk on JavaScript Jam Live. It was such a great time. Really enjoyed everybody who participated, those who came up from the audience and really spoke as well. I do want to encourage everybody who's listening in on this live as well as those who are listening to the replay of this or the recording, feel free to click on those that you really feel like you got value from and follow them if you're not already. I feel like a lot of those people that have been up here talking, you probably already are following. But if you're not, hey, you know what, there's another banger for you and more value.
01:00:31 - Scott Steinlage
Be sure to do that. And hey, you know what, let's throw it out there. Follow JavaScript Jam as well because we do this every Wednesday at 12 p.m. Pacific Standard Time, where we just talk about everything there is about JavaScript, anything web-development-related. And whether you're a beginner or you've been doing this for a very long time, we'd love to hear from everybody. In fact, if you want to pick up on this conversation where we left off here, Theo, please join us next week and we can continue on with this as well.
01:00:59 - Theo
Definitely. Also a quick self-plug. I run a show, Web Dev Wednesday, every Wednesday at 3:00 p.m. PST. That's on my Twitch if you want to hear me rant about things there. It's a good place. We'll actually be ranting about React Native with Charlie Cheever from Expo today, so if you want to hear that, go check it out.
01:01:12 - Scott Steinlage
He's live on Twitch Wednesdays at 3. You heard him. So thank you all so much. Greatly appreciate everybody. This was so fulfilling, so amazing, and let's continue pushing this forward. Share this if you did get value too, tweet it. We love it. Bye, y'all, and we'll see you next week.