Copy of PodRocket - Jimmy Lai === Paul: [00:00:00] Hi there and welcome to Pod Rocket, a web development podcast brought to you by Log Rocket. My name is Paul, and today I'm joined with Jimmy Li. He is a manager of the next JS team, and we're gonna be talking about next JS across different platforms. Specifically the adapters. API. And that's not the whole story. ~I'm, ~I'm excited to have Jimmy here 'cause we're gonna be going over like the next JS community and the direction of next Js ~uh, ~'cause I'm sure all of you have heard about 16.2 that has come out recently. And here we are in April, 2026. So Jimmy, excited to have you on and dig into what the team's working on. Jimmy: Yeah. Super excited to be here. Thanks for having me. Paul: ~So, manager of next JS team. Are you Jimmy? Are you the guy? Are you the guy of all the guys who manages next Js?~ Jimmy: ~Um, um, I, I think I'm the least important person in the team. Uh, I'd say, uh, like I, um. The way I think about my job is that I'm just literally just, um, just trying to fill in the gaps. They're, they're all incredibly smart, and so like, uh, you know, I'm happy to sit in a room and sort of get the, the magic happen for the most part, and to go on podcast and talk about the, the work the team is doing really.~ Paul: ~How long have you been involved with the next team?~ Jimmy: ~Um, so. It's pretty, uh, shocking to me the other day I was thinking about it, but it's, uh, I've been at Versal for close to like four years now. Um, and uh, I basically started as an IC on the team. Um, just, you know, right when we launched the app route and after a year, uh, I started managing the team, supporting them.~ ~Um, and so I've been, yeah, it's been like three years of like two, three years of management at this point.~ Paul: ~Got it. Okay.~ So you've seen Next Js through some of its major changes, I guess in the past few years. Would you say that we're in a more turbulent time of next development, or are we in a coalescing time? Because I remember when S first dropped, it was like, it was pretty confusing, right? Jimmy: Yeah, I think we're in coalescing times now. ~Um, ~I think when I joined the team right around the time when the team was working on the app route,~ uh,~ we were. Essentially [00:01:00] like building a whole new framework, a whole new ~like, ~yeah. Paradigm with like rcs and ~like, ~there are like so many unknowns, right? ~There's, ~there's not a lot of frameworks that kind of go for ~like ~a full, ~you know, uh, ~shift ~in the, ~in the way that they do things. And ~so, uh, ~every, I remember every single team meetings we'd count, ~you know, ~we'd ~sort of like ~discuss like ~a, ~a whole new feature. And then we'd have to think about ~like, uh, ~the implications on the entire model and. I think, yeah, now after ~like ~a few years,~ we,~ we, I think ~we know, ~we know better now, you know what we're ~sort of like, um, the, ~the North Star that we're heading in,~ like, you know, ~we're, we know explicitly ~sort of like ~what features we're still missing, what we're still working on. ~And um, and it's only been,~ I think in the past 2, 2, 3 years, like it's only been ~sort of like, uh, ~improving. ~We've, ~we've ~like, sort of like ~iterated a lot on the model and, ~um. Like, ~I think the experience was pretty bad when we,~ uh,~ came out with it,~ uh,~ two, three years ago. ~Um, ~like ~the, ~the, ~you know, ~the initial version of the app rather. ~And I, you know, ~today ~I'm, ~I'm genuinely proud of the work. ~I, ~I do,~ uh,~ really enjoy sort of like working with,~ well, our, ~our framework. ~Uh, ~I'm a little bit best,~ but,~ but I think ~we, ~we are, we're getting to a very good place. Yeah. Yeah. Paul: ~I, ~I like to hear the positivity and ~I, ~I'm sure a lot of people listening also play around,~ like,~ we have an audience, Jimmy. Everybody uses [00:02:00] everything. This is like a vibrant developer web developer community, ~so. ~We have a lot of people listening right now that do use the op router. I'm sure like me, they feel the same way about the coalescing of how much better it's become. ~And, ~and it's really a great tool in the tool belt. ~Um, ~so that theme ~of, ~of things getting better, you guys coalescing on some ideas. Maybe that's why. We got the title that any of you listeners are seeing. The adapter's. API. Right? This is something about coalescing, it's about making next palpable ~and, ~and adaptable. Not to use the same word,~ but,~ but for everywhere it could go. What is the adapter's? API I've never heard of this notion before this. I just knew that next work in a bunch of places. So like where did it come from and why do you guys call it the adapters? A P. Jimmy: Yeah. ~Uh, ~so the adapter zpi is not something,~ um,~ super new. ~Like, uh, like, ~like we, we've adapted the term I think from ~like, uh, ~other frameworks like Astro remix. ~Um, ~and ~mostly, ~mostly a lot of other frameworks. And the, so the, the origin story there is,~ um,~ NextGen has always been sort of like,~ sort of like, you know, uh, ~deployable on like many types of ~like, so like~ platforms and ~like, um, or, sort of like~ [00:03:00] infrastructure, right? ~Um, ~but,~ uh, the, ~the way n Access works is that ~like, ~it's kind of designed to ~kind of ~take advantage of like where you're running it. ~Um, so, um, ~whether you, if you're running it, ~you know, ~on ~like, sort of ~like a $5 VPS ~on, ~on ner,~ um, like, you know, ~it's like a single process and so it's just, ~you know, ~it's just a regular node,~ um,~ server. ~Um, ~you'll ~like ~send a request to it. It'll just work locally. You get ~like, ~access to all the features. ~Um, ~it's a little bit different when you ~kind of ~want to,~ um,~ for example, ~like ~make it work with a CDN or just multiple instances,~ uh,~ of your server, right? ~Um, ~and,~ uh, any, ~any web framework ~kind of ~has to, ~you know, ~account for that. ~Uh, like, ~I don't know what the other frameworks we're doing in their adapters, but, ~you know, ~if you're exposing any kind of like caching capacities,~ um, I think, ~I think maybe ~like ~Astro has like a key value,~ uh,~ library. ~Uh, ~but maybe I can be fact checked. ~Um, but you know, that kind of, ~that kind of like library for example, that needs to translate into like.~ like.~ ~Um, ~something, right? It can be like,~ uh,~ in memory,~ um,~ key value storage, ~which is, ~which is fine if you're like, just again on ~like ~one instance. ~Um, ~but if you have ~like ~five servers, five neg servers running, you might want to ~like ~synchronize ~the, ~the reads on the rights, [00:04:00] right? ~Um, and so, ~and so as ~you know, ~as probably the people listening here, like they know ~like, like.~ Neg,~ we,~ we like caching,~ uh,~ and a lot of,~ like,~ our capacities are somewhat tied to it. ~Um, ~and so we, we basically never had like a sort of like very explicit contract about like how you would go on, about, like tapping into ~like ~all of the negs features,~ um,~ in that way. ~Uh, ~and so that was like ~the, ~the core motivation, like ~'cause, ~'cause it was. Effectively, it made it somewhat difficult to adopt it,~ um, uh, ~on your platform ~as, ~as, as well as you could have. ~Like, um, ~if you were like,~ uh, you know, uh, ~one of our partners like CloudFare or Netlify, they, they were spending a heavy, ~I think, ~I think a heavy amount of time, ~sort of like, um, ~analyzing our code and ~sort of like ~trying to understand like exactly how you would want to pipe,~ um, those, ~those sort ~like ~features ~to, ~to the platforms and, ~um.~ I think the, they were pretty unhappy about it. There, there were a bunch of, ~you know, ~of like complaints and ~like, ~this led to ~like ~the creation of ~like, um, ~open Next, which was, ~you know, ~just this slower sort like library at first that was meant to be a layer on top of like next, that could help you kinda adapt it to your own platform. ~Uh, ~yeah, ~so.~ Paul: Is it? Is this [00:05:00] why, ~you know, I've, ~I've seen on fire ship, I've seen on a couple. Blog posts here and there in Twi tweets. Next JS is hard to self-host. That's like a common trope that we've seen bubbling around the internet, especially in the past few years. So Open Next was ~sort of ~the first dip in our toe into the pond of trying to coalesce and adapters. API, you're saying is ~sort of ~like this next generation of being more intentful from the next JS side, from Versal side. Jimmy: Yeah. Yeah, exactly. ~Um, ~like the next is hard to sell. First was always a bit of,~ um, sort of a, ~a little bit of a meme I'd say in the sense that ~like, um. ~That can mean a lot of things,~ uh, right. Uh, and, and, and, ~and like we always stood by it and ~like, uh, like, ~like nex is actually pretty easy to,~ uh,~ to, to self focus on. Like ~sort of ~like normal kinds of like setups. ~Uh, ~like there, they're, ~you know, ~NEX is one of the most used web frameworks in the world today. There are like many sort of ~like, uh, ~like ~sort of ~companies like,~ um,~ at the top of my head, I don't know, like things like Washington Post or. The verge, maybe at the time,~ maybe,~ maybe it's not so true anymore. ~Um, ~but they already ~sort of ~like they were running,~ uh,~ NJA [00:06:00] set a, ~you know, ~pretty good scale. ~Uh, ~you can already ~sort of like, um, ~use ~sort of ~like next on your own sort like servers with next start, as long as you, yeah, maybe as long as you don't want to go too deep into ~like the, ~the set of like next gen features that ~we, ~we added over time. ~Um. ~But Nge was certainly difficult, I think on ~like, um, ~other ~sort of ~like serverless,~ uh,~ like platforms,~ uh, like, like ~like net re,~ um, so, ~so when you wanted to kind of~ kind of ~recreate ~sort of ~like that, that ~like ~manage infrastructure experience,~ uh,~ I think that's when things ~kind of ~get ~like, uh, ~would get like kind of hard. ~Uh, ~but yeah, ~we ~we're sort like. Community ~kind of, you know, ~was really vocal about this,~ uh,~ in the past few years. And,~ uh,~ and we saw ~like, you know, ~like that was like one of ~the, ~the main things I wanted to fix as I started to,~ um, you know, ~lead the team. ~Uh, ~like ~the, ~the idea ~right, ~is that we still want n anxious to be,~ well, the, ~the most popular framework. And like we, we want you to have ~like ~no reasons for you to explore,~ uh, uh, ~any other framework. And so ~part of that, ~part of that is making it work well everywhere. ~Uh, ~and so like the reason why ~I'm, I'm, ~I'm very happy we sort, like,~ like,~ push through this is,~ um,~ that, that's kinda like our commitment publicly about ~like ~making n or ~like ~as, as open as we [00:07:00] can make it Paul: And I know ~like ~every time ~you, ~you might look up a comparison of web frameworks. A lot of it is taste right in, in what you're used to, which is the developer developing, but you don't want, Hey, it's hard to host as a rumor, ~kind of ~like having ~its ~its hand ~in the, ~in the hat here. ~Um, ~and so adapter's API is ~sort of ~like your direct solution to that end. Maybe some people might look at that and go,~ well,~ this is just like for a handful of like big hosting providers to ~sort of like ~make their job easier or whatever. That doesn't really affect me. How, what's your perspective on that take Jimmy: ~Um,~ Paul: it permeates into the more common community? Jimmy: I think it's definitely fair in the sense that ~like, um, ~it's not gonna affect. You if you have ~like ~a simple setup. ~Um, right. So, ~so ~like, ~maybe ~like ~not the average or like hobbyist,~ um,~ but,~ uh, well ~actually nevermind actually, it will affect you because if you're using next, you might want to go for ~like ~one of the sort of platforms. And the worst case,~ the,~ the worst thing that could happen to you is you develop your app locally and you deploy it on ~like, you know, sort of ~like ~the, ~the main platforms that we're working with [00:08:00] could be, you know,~ you know, sort of ~Google, ~um. ~Amplifi and you push it and then suddenly you have ~like ~the worst experience ever and it doesn't really translate to what you were having with like next start locally. ~So, um, this, this, ~this allows us to kinda ~sort of like ~standardize, like how you would want to support like Nexts in a very sort of explicit way. And so ~I think, ~I think this actually, yeah, this does affect,~ um,~ the average user. ~Um, ~but I do think ~the main sort of like. ~The main people that are gonna work with this API are definitely like ~the, ~the platform engineers or any, ~you know, ~any sort of ~like ~DevOps that needs to, ~you know, uh, make it, ~make it work well with their own sort of like custom infrastructure. ~So, ~for example,~ um, they're not, ~they're not in our ecosystem working group. ~Um, ~but I don't think it's a, I don't think it's a secret that like,~ um,~ for example, meta ai. ~The, ~the new website they, through which they launch their new models,~ uh, which, ~which I think is like their competitor to ~like, you know, ~g PT Cloud, et cetera. ~Um, ~that runs on Nge, but that runs on Nge on the meta infrastructure. ~So I think it's quite, um, like, ~I think those people definitely benefit from the adapter. A p,~ um,~ yeah. Paul: Got it. Okay. Now the,~ uh,~ adapters API [00:09:00] evidently platform level wear next can run making sure it runs well. Would you say it's something that like, if you're just using it, you should be familiar with. ~Um, ~like I know you had that blog post about it and there was some hooks mentioned,~ like,~ oh yeah, it does like config modifications. It's like after the build completes it can do some stuff. ~Is this, ~is this something that like anybody listening to should go read up on? And regardless if you could give us a quick summary of each one of those steps that you pointed out. Jimmy: Yeah. ~Um, ~I'd say ~I wouldn't, ~I wouldn't like over rotate ~on the, ~on the API ~as a, ~as a user. ~Um, ~like those are like, ~you know, sort of ~like pretty nitty gritty details about like how NextGear builds and like it goes app, ~uh. ~I do think if you're interested in,~ uh,~ how a framework actually works and how, ~you know, ~it plugs in, ~I think, ~I think you should read it right? ~Like, um, ~this kinda allows you to really ~sort of ~reason about ~like, well, ~how n kinda works under the hood. ~Uh, ~and I guess as a framework offer, I shouldn't be telling you this, but ~like, uh, 'cause, like ~like, uh, 'cause, 'cause like the idea is that you can use the framework and you don't need to think about this, these kinds of things at all. ~Um, ~but. I do think,~ like,~ engineering wise,~ it's,~ it's [00:10:00] very interesting. ~Um, ~for example,~ like, uh, ~one of the things that we added as part of ~like the, ~the API work is that we,~ uh,~ have been documenting a lot more,~ um,~ how you would want to tap into like much more advanced features of je ~like, um, ~p pre rendering,~ uh,~ which is the idea that, I don't know how familiar you are with it, but it's about ~like, um, ~combining,~ um,~ a static, ~like.~ Email page and also being able to ~kind of ~kind of stream in dynamic contents,~ uh,~ straight in there. ~Um, ~which basically,~ uh,~ just ~the, ~the big TLDR here of this feature ~and, ~and why I think it's like ~kind of ~revolutionary is that like you, you are able to give an access to the adapter's, APIs that you're able to,~ um,~ put. Like a static shell,~ like,~ like a loading ~sort of like, you know, ~screen ~or, ~or ~you know, ~like actually ~like, ~maybe like a 90% form page,~ um,~ close to your like,~ uh,~ user,~ um,~ be it like, ~you know, uh, ~on the CDN for example, all over the globe. ~ um, and, ~and then you're also able to ~kind of ~make it so that like when the user hits,~ um, this, ~this particular page that you want to serve, they get ~like, you know, ~the re the response in instantaneously. ~Uh, you know, like ~30 milliseconds depending on like how far you are. ~Um, ~but then we're still able to kinda [00:11:00] seamlessly like stream in ~the, ~the dynamic content. ~Like, you know, uh, ~maybe you're logged in, maybe you just want like the content,~ uh,~ of your page. ~Uh, ~and this kinda allows you to get like the best of both words and that's. That's not really doable if you don't have access to the adapter API, if you don't really ~sort of like ~understand how you should be, how your infrastructure should be plugging those static and dynamic pieces together. ~Um, ~yeah. Yeah. Paul: So ~like ~to fully grasp partial pre rendering and make sure that however you're hosting makes the best use. It could be worth a look just to familiarize yourself 'cause it's a good, it ~kind of ~like sheds light, I guess with a flashlight for you as a dev. Okay. Jimmy: yeah, exactly. But,~ um,~ one, one of the big things we, we've discussed is,~ um,~ amongst the, like the provider is that,~ like,~ not everybody might want to, ~you know, ~go the extra mile to support this. ~Um, there's, there're like, you know. ~On its own. ~The, ~the feature still works. ~Like ~if, whatever, ~like ~if you're using nextdot, we're still gonna,~ even,~ even if it's not on CDN,~ we,~ we still could be able to return to you like this instant,~ um,~ this pre-generated,~ um,~ page and then like streaming ~the, ~the [00:12:00] content. ~Um, ~but CDN part is like mostly a performance optimization sets,~ like,~ and that's why it's like very separate and that's why ~it's, ~it's in the adapter API test. It's just like we just give you the choice to. Leverage this or not. ~Um, ~in the same way that, ~you know, I, ~I was talking about the caching capacities earlier. You might want to be, to share with your cache across consensus. You might actually not want to. ~Um, it's not really, ~~~Um,~~ it's not really ~sort of like, um, ~our choice. ~Um, we, ~we don't want to force you to, ~you know, ~plug in,~ uh,~ like Redis or something. ~Um, ~but you should be able to tap into it if you want to. Yeah. Okay. Paul: Now I run a couple websites on my favorite cloud provider. This is not sponsored. I just love fly io 'cause it's simple. I can put like multiple machines, docker images, blue greens, whatever. And I don't have to think about all the AWS crap. Now, like for me, what I wanna ~like ~leverage the adapter's API or look at it. Maybe I can do caching in a more nuanced way that I'm just missing right now, and I don't even know it. Is that a reality? Probably. Jimmy: ~Yeah, ~yeah, exactly. ~Uh, ~you might have ~like, ~for example, 5 cents and maybe ~they're, ~they're serving your website fine, right? If you're just doing something, sorry, [00:13:00] simple. ~Right? ~Just ~like, uh, ~reading from. The same database or something. ~Um, ~but as soon as you start,~ like, you know, ~getting into those complex use cases where,~ um,~ you might leverage,~ uh,~ static generation more and the incremental, like static, ~uh, re, re~ regeneration methods of next,~ um,~ on one instance,~ uh,~ and you invalidate that page, ~you ~you're saying, ~you know, like, um, ~oh, I'm gonna refresh this page every five hours and still serve the site content. But I might also choose to update it if someone in my,~ uh,~ someone updates my CMS and says ~like, ~Hey, let's publish ~this, ~this article right now. ~Um, ~you might need to synchronize this thing across your five next instances. And so that's, this is where like having the adapters API is very useful basically. Yeah. Yeah. Paul: who can contribute to the adapter's? API. Jimmy: ~Um. ~Anyone,~ uh,~ really ~like, uh, the, ~the nice part of ~like ~this work is ~it's, ~it's, it is that it's not done. ~Um, ~the adapters API is, ~you know, ~meant to ~kind of ~evolve as we add more and more features to next. ~Um, ~and it's also meant ~to be, uh,~ to basically address like, ~you know, ~the continuous feedback that we get from like our ecosystem working group that we've created as part of this,~ uh,~ which includes like CloudFare Google. ~Like ~every time [00:14:00] they, ~you know, ~they have ~like, sort of ~like requests, ~um. We, ~we want to take a look at it and we wanna see ~like, ~can we make sort like their lives easier,~ um,~ to, so that they can support next better. ~Um, ~so for example, one of the things that,~ um,~ I talked about ~like ~was, ~you know, ~how the adapters API is used to, well adapt to how you want to deploy on your infrastructure. ~Um, ~another angle we're exploring right now is how you might want to use the adapter, GPI to customize. ~Um, ~how you use NS in development. ~Uh, ~so one example of that is,~ uh,~ let's say you, everyone mostly use NS on node today, right? ~Um, ~and so that's like kinda like our standard environment. ~Uh, ~but let's say you're developing with like bun,~ uh,~ which might have ~like ~some customer Ps ~uh, ~but we kinda want to allow you to ~kind of ~seamlessly integrate there. ~Uh, ~maybe you want to develop like next, share some ~like. Um, ~Dino or,~ um,~ or,~ uh, well, ~worker D, which is like the CloudFare platform,~ uh,~ which has like extremely different semantics from Node. ~Uh, well, ~we ~kind of ~want you to also be able ~to, ~to customize this. Maybe you want to access like a, I think, ~you know, ~worker D for example,~ um,~ allows you [00:15:00] to,~ uh, well, ~it has a bunch of like bindings,~ um,~ that allows you to tap into like more of the Cloudera features. ~Well, ~the idea is that ~like, ~we kinda want you to. Be able to have this experience as you develop locally. ~So, uh, ~yeah, so ~we're, ~we're truly going for ~like, ~I dunno if you see like the just next kind of works everywhere kinda angle there. Yeah. Paul: Do you see the ~um, ~adapters. API process in any way playing a role in like security ~and, ~and after the fact, ~sort of ~like things it would look for at that abstraction level of ~like, ~after the build or before you actually kick it off and going ~like, ~Hey, like ~that, ~that's no good. Jimmy: ~Um, ~no. Paul: like on bun not com, ~you know, ~bundling in source maps ~or,~ Jimmy: Yeah. Paul: ~or something.~ Jimmy: ~Um, ~I don't. I guess API does help you ~sort of like, ~organize or like how ~like ~n exposed like some of the work. ~Um, I don't, ~I don't think anything specific ~um, ~could not ~sort of like ~be gu though from like just, ~you know, ~having ~like ~a, an analysis step. ~Uh, ~yeah. It's funny you bring up ~the, ~the source map thing. ~Uh, ~yeah, I guess I know, yeah. I guess I know what you're talking about. Yeah. ~Um. ~And also like [00:16:00] our goal as a framework is also that ~like, you know, ~for the most part, like you don't need to think about security issues. And ~like ~out of the box we come out with ~like, you know, the, ~the best presets, ~the best, ~the best recommendations for you there. So if there was anything bad, we actually, we usually make the case to like just,~ uh,~ error. For example, if you're doing unsafe,~ um,~ yeah, ~like. ~Yeah. Paul: ~Um, ~one thing on your Twitter, Jimmy, is you mentioned the adapters. API is cool, but the thing that stokes you the most is like ~the, ~the wherewithal of the community to do this. You're like, oh my gosh, if it was possible and we're actually doing it, can you comment a little bit on like why that is a notable thing in your head? ~Like, ~was this just impossible before? Was there enough weight put on it? ~Like, ~what do you feel. With this coalescing ~of, ~of the community around the adapters, API. Jimmy: ~Um, ~I think what's super exciting to me is,~ uh,~ the idea that like we can ~sort of ~all cooperate together. ~Um, ~I think before we were, I think we're slightly antagonistic,~ uh,~ toward each other. Like you might have seen like ~sort of like, you know, ~drama ~on, ~on Twitter here and there between ~like, um, well, like ~Sok. For sale and like [00:17:00] other companies or ~like ~netlify,~ uh,~ publishing articles ~against, or like, um, ~about why ~they, they, they sort like don't, um,~ they have issues like supporting n and ~um, and that's like ~if you work ~on a, on a, ~on a product, right? ~Like this, this is gonna,~ this just not great. ~Like, ~like ~I, ~I, ~you know, ~we want to ~kind of ~focus on like just making it better. And,~ uh, this.~ The adapters work working group has ~pretty, so like ~allowed us to kinda build like, ~you know, ~strong connections ~with, ~with each other. ~Like we, um, we were not,~ we were just not talking to each other, even though ~people,~ we were all working on Nge, right? ~They're, they're like, you know, ~they're maintainers of nex in the same way that like, we are like in maybe like an extended family kinda way. ~And, uh,~ and now we have ~like, uh, ~the student, you know,~ you know, ~biweekly,~ uh,~ meetings. ~Uh, we. ~When they have like issues,~ uh,~ when we've broken ~like, you know, ~some of their setup,~ uh,~ they can ~like ~flag it to us and we can ~sort of like, you know, ~fix it forward. ~Um, ~we, any new features that we're planning on, like shipping,~ uh,~ we, we share it,~ uh,~ with them ahead of time so that they, ~you know, ~they get like reasonable heads up so that they can support it the best. ~Um, ~and so. What I'm excited then is ~like ~as for you, ~as a, ~as a user, regardless of ~like who, ~who you're gonna choose to like host nex with, is that you're gonna have a nice experience or a nicer one at least. ~Um, ~and,~ uh,~ and so that's, I think that's the really exciting part.~ I just, you know, we, we.~ Paul: ~It's, ~it's almost like you're describing it in [00:18:00] like a societal. Inflection point with the way we're all ~sort of ~figuring out the framework thing is what I'm picking up. Jimmy: ~Yeah, ~yeah, exactly. Like the,~ um,~ just for us, it's, it was a big change,~ um,~ internally,~ like, uh, to, ~to get ~like, you know, ~like transparently, right? Like you,~ uh,~ I was, I had to convince my leadership like, Hey, I'm gonna split a lot of time into making N access work better on potentially like platforms,~ uh,~ too, right? ~Uh, ~and so that's ~like, you know, ~a bit of a controversial idea. Not a lot of ~like, uh, ~people would say yes. And so ~we, ~we pushed through and it took us like, ~you know, ~quite some time to, to get there. 'cause that's ~like, ~that was like a moment,~ um,~ monumental amount of work ~on, ~on the Nexus that we kinda had to rewrite the entirety of like how we were,~ um,~ compiling nexus and sort ~like ~compiling your apps. ~Uh, but, ~but ~it was, ~it was worth it. ~Um, ~I think in the end, basically, yeah. Paul: Do you think that,~ um,~ the adapter's API versus like open next or versus nothing is gonna be the thing that really brings next JS into this realm of ~like, ~if it works this good in verse, it should work this. Good for you? Jimmy: Yeah. Yeah. Yeah.[00:19:00] Paul: Let, let's go.~ Let, ~ Jimmy: ~Like, uh, ~yeah,~ that's,~ that's the idea, right? Like we are working,~ um, you know, ~part of ~like ~the ecosystem working group is that OpenX maintainers of OpenX are working with us,~ uh,~ on this. They helped us design it,~ uh,~ and,~ uh, we're, ~we're basically working with them so they, so that even OpenX can itself uses,~ uh,~ the adapters API. ~Um, ~and ~so, so, ~yeah. That this, it has to be a hundred percent better. ~Um, otherwise, ~otherwise, ~you know, ~there was like no point in it and ~like, ~I don't want to, I want that to happen. ~Uh, ~so yeah. But ~uh, ~and from what we've seen, it does make things,~ uh,~ really easier. ~Uh, ~so I'm pretty confident in that. Yeah. Paul: What about,~ uh,~ limitations of the adapters? API, when I say a limitation, ~I mean like, ~I mean ~we're, ~we're talking about caching and workers and. Where things are stored, how you can elicit updates based on paths or requests or hashes or whatever it might be. Jimmy: Yeah. Paul: It's infrastructure. There's some infrastructure involved. And the adapter's, API is not terraform, right? But ~there's some, ~there's some flavor ~of ~of infrastructure as code in there. Do you guys have a very clear line [00:20:00] in the sand about where you stop and where you start? Is it something you're still sort of exploring? ~Uh, ~what do you have to say on that? Jimmy: Yeah. ~Um, ~that's a great question. I think like what you're, you are asking is,~ um,~ I guess ~like, um, ~how much ~do we, ~do we plan on like pushing, Paul: I guess, yeah. Jimmy: infrastructure,~ um,~ and ~uh. ~I guess we're like, we're not planning on stopping anytime soon, basically. ~Uh, ~which is why it's important, ~you know, ~to really set ~the, ~the foundations correctly with the adapter. API,~ um, like ~the whole motto of ~like, ~next Js ~uh, ~and the reason why I truly believe we, we stand apart in terms of ~like the, ~the work that we do is that ~we're, ~we're like, we're not satisfied with ~like, ~what you can do with ~like, uh, ~today's ~sort of like. ~Like conventions, right? ~Um, like, ~just ~like, you know, uh, ~either hosting only on a server or only hosting on,~ um,~ like A-A-C-D-N,~ uh,~ with just like a SBA or just like an,~ uh,~ a regular server side render app. ~Like, ~like the idea is that we can do, I want us to do everything. ~Um, so that, like, 'cause ~'cause that's,~ that's, ~that's just how, ~you know, ~modern and websites ~are, ~are built across ~like, uh, the, the, ~the big companies ~like, and we kinda want to. Yeah,~ we want to push,~ uh,~ the way we do infra. ~So, um, ~yeah. And interestingly, I think, ~you know, ~in a way, like a lot of people,~ uh,~ it's always been like ~a, ~a bit of a running joke. I think [00:21:00] it, ~like ~a lot of people are,~ uh, you know, ~saying ~like, ~oh, versa is like pushing nja to,~ um,~ use server to, ~you know, ~use server, use caching so that like we, we can sell more servers, ~right. Um. ~But ~it's, ~it's really the reverse. ~Um, ~if anything,~ like, it's more, ~it's more so that like we have ~like ~a very clear idea of like ~how we want, um,~ how we imagine the websites of the futures ~to be, ~to be served. And we're pushing the virtual like infrastructure,~ um,~ to ~kind of ~account for that. ~Um, ~which creates this bit of tension,~ uh,~ because then like also everybody else needs to kinda integrate it ~in the, ~in the same way. They need to do,~ like,~ do the same amount of like research work. ~Um. Uh, ~but that's, I think ~that's, ~that's what makes it,~ like,~ somewhat fun. ~Like, uh, ~if I can give you an example,~ um,~ for example is,~ uh,~ I don't know how familiar you are with, like, how feature flags,~ uh,~ work, Paul: I've always outsourced the feature flag thing. Jimmy: right? ~Well, um, the, ~the feature flag, yeah. ~The, ~the way it works, right for most people is that,~ um,~ you are gonna build your app separately from this. ~Um, ~you're gonna ~like, you know, ~query another,~ uh,~ another service so that it, it returns to you like ~the, ~the values there. ~Um, and, ~and so like [00:22:00] on a client side app, for example,~ like, um, you know, ~on a regular SBA, which is gonna not have access to ~like ~the server, what's gonna happen is that you're gonna need to,~ um, like ~initialize your SBA run the code in the browser then. Call your service provider so that it returns to you the flag values,~ uh,~ and then you're gonna render accordingly, right? ~Um, ~and that might take, that, that's already gonna take some time, right? You're gonna have your loading screen,~ um,~ you're gonna have ~like the, ~the network back and forth to, to, to the service. ~Uh, ~then you are gonna execute the codes. ~Uh, ~there's also,~ um,~ there's also the issue that like,~ uh,~ in the next PA for example. Now you're gonna ~kind of ~have to ship everything,~ um,~ like ~your, ~your entire admin panel. ~Uh, ~even though your users might not need it in the case that like your service says, oh, actually you need it. ~Um, ~or you must also want to just ~like, you know, ~bundle split, right? But in which case you still need to wait for the value to return before you start downloading,~ uh,~ that code. ~Um, ~so ~that's, ~that's like quite inefficient. ~Uh, ~and the way they do it,~ uh,~ on like very ~sort of like. ~Advance infrastructure, like at Google or at Meta is,~ um,~ that it's [00:23:00] done at request time. ~Um, ~like the moment you hit ~sort of ~like ~the, the, ~the Facebook servers for example,~ um,~ they're gonna compute every sort of ~like, ~feature flags that you get, and then they're gonna return to you like the most personalized page possible. And they need to do this because,~ um,~ they're computing like, ~you know, ~millions of ~like, ~feature flex. ~Um, ~and so it's like impossible to just ~like ~serve,~ like, you know, ~like maybe. ~Uh, ~admin version or a user version. Like essentially when you and I load the Facebook websites,~ we,~ we have like totally different d different sort of like feature flags. Different experiments are, maybe different ab tests are that will be running on us. ~Um, ~and so I ~just, ~just describing, ~you know, ~the two examples of ~like, um, ~the two extremes of like how you would want to like, serve,~ um,~ and ~the, ~the way Facebook does it today, the way Google does it too is. It's inaccessible for anyone else in the world today. ~Um, ~you can only do this when you can fully control,~ um,~ the server that like has to like,~ uh,~ handle your requests. You can only do this when you have full control over how you're,~ uh,~ bundling your JavaScripts. ~Um, ~I didn't mention it earlier, right? But like the thing with the, when you have millions of like feature flags is that ~you, ~you can't ship. The JavaScript for ~like ~[00:24:00] every features there. ~Um, ~because that would ~like ~be, ~you know, uh, ~hundreds of megabytes. ~Uh, ~and ~you know, ~especially for like companies at scale that like do care about, like the experience for ~like, um, uh, ~lower end devices or users in India, it's extremely important that you are as efficient as possible. ~Um,~ Paul: Right. Jimmy: and ~so. ~One of the goal, like one of the, one of my favorite plans,~ uh, for, ~for us in the future is that I want nex to kinda let you do this. ~Um, ~and,~ uh,~ like I want you to be able to kinda declare like a feature flag in line and basically have it sorted. Like ~when you're, ~when you're serving like an N page, it automatically,~ um,~ sends down to you like ~the, the right, ~the right content, but also in the fastest way possible. ~Um. ~So if you're like a, again, like if you're like a, an admin for example, or like a logged out user, we could already send you like, ~you know, what's, ~what's coming? Like ~the, the loading, ~the loading shell,~ um,~ and Paul: it being like an iron curtain of ~like ~needing to grab ~the, ~the feature flags, then shake it down. Jimmy: yeah. ~Hmm. ~ Paul: Okay. Jimmy: In a way that like really composes well with like server components and all. And,~ um,~ if we went really further ahead in times, ~like ~what we [00:25:00] could have is,~ um,~ we could have servers all, all over the globe that, ~you know, ~run like, or compiler. So that, like when you hit ~the, when you, when you hit like your sort of like, um, like ~your endpoints and then you have ~like, you know, ~thousands of like feature flags to evaluate and all, ~you know, ~all those JavaScript files that you might be able to use. We're able to kinda compel them just in time and return to you. Exactly. Sort ~like ~what you need as a user. But that's the kind of thing you can really only do when you have full control of the infrastructure. ~You know, ~there's no way or that you would do this. Paul: down into the infrastructure layer. And you know what's another popular one, Jimmy? I know people are gonna wonder about this,~ uh,~ Kron. That's like the universal, oh man, okay. I'll go ~like get a ~get a worker, I'll go get a insert provider. And Versal ~kind of ~started to tackle this and it's been one of those things that's just ~like, ~yeah, ~I mean, ~I guess you could go do it on Versal. Does this fall into that bucket, into that category of next JS capabilities that you guys are looking at,~ uh,~ to open? Jimmy: ~Um, ~I'd say this one is like something ~we, ~we've only started to lightly explore so far, I think, ~you know, ~like CR jobs are like very [00:26:00] much like into the. The backend,~ uh, sort of ~like realm of like features ~that, ~that a user might need. ~Um, ~and ~uh, ~I think right now ~we're, ~we're, ~you know, ~it's n is a full stack framework, but I don't think we're as complete as we ought to be ~on, ~on those backend capacities. ~Like, um, ~yeah, like you mentioned, like we're, we don't have like ~sort of ~like a cr job like kind of system yet. ~Um, ~we don't have ~like. ~Good authentication,~ uh,~ or database like, ~you know, um, ~features quads. ~Uh, ~but this is like absolutely something that we're ~sort of like ~starting to look into now. ~Um, ~but right now, for example, what I would recommend is like the, I don't know if you've seen this,~ the,~ the workflows dev kit,~ uh,~ which we, I don't know if you saw the used workflow directive thing,~ um,~ which is like another library basically,~ um,~ made by, ~uh.~ Worked on by pne, who also works at Versal. ~Um, and, ~and the whole, his whole like concept was to ~sort of ~generalize ~the, ~the concept of ~like, ~workflows and ~like, um, you know, ~steps that might need to run ~at, ~at ~like some, uh, some, ~some regular interval. ~Um, ~but like with a layer added on top so that you can have like things like, ~you know, uh.~ Retries,~ uh,~ out of the box or ~like, just, ~just easily ~audit, ~audit, those things. It's like a layer above, like just CR drop. ~Um, ~and the nice thing about this, for example, is that it plugs really well into [00:27:00] nha. ~Um, ~'cause Nhas is not that opinionated about it. Got it. ~Um, so, ~so I think of this as like next ~plus, ~plus ~like, ~just ~like, uh, ~sort like next plus,~ uh,~ a lot more backend capacities. Yeah. Paul: Awesome. ~Well, ~it's interesting to learn where you guys are headed. ~Um, ~I think this cross intersection area of starting to give more standardized backend to the next users is gonna be game changing and, 'cause there's so many SaaS services that like, they're really good at what they do, Jimmy: Yeah. Paul: they're too good. You're just a guy wanting to make a website, ~like ~calm down, ~you know? ~And if that can be included ~in, ~in something like next ~and, ~and managed with the adapters API made accessible man, that would be game changing. It would be really great. ~Um, ~so thank you to you and your team for pushing, evangelizing this, getting the buy-in. ~Um, ~so what are your plans for like~ like ~the next two quarters? Jimmy: ~Um, well, uh, there's, ~there's a lot of them. ~Um, but like we, you know, we're. We basically,~ we have ~like, ~I think honestly we have plans over ~like, ~for probably the next two years. ~Uh, ~there is, depends on like ~how, ~how AI can install our jobs,~ uh,~ quickly enough or not. ~Um, ~but the main thing we're focusing on right now is,~ um, this, ~this [00:28:00] sort cache components mode. ~Um, ~I dunno ~if you, ~if you're familiar, but,~ uh,~ it's basically taking all the learnings that we had from the initial app rather. Version ~and, ~and ~sort of like, uh, ~evolving it into ~like ~a, ~you know, ~a more easy ~to, ~to understand ~a, ~a better, like a better model for how you think about like your server components and how they integrate with your apps. ~Um, ~so we're like really heavily, sorry, polishing ~the, ~the model ~and, ~and it's, ~you know, ~it gives you like out of the box. It's just ~like, is ~is a lot easier to understand a lot. ~Um. Uh, ~a lot less like foot guns around like how you would want to serve, like performance pages,~ uh, and, ~and like ~the, ~the best experience possible for your users. And so the team is going all in on ~sort of like, ~basically finishing the swing here and we'll have ~like ~a lot of like nicer announcements for ~like the, ~the next one or two releases there. ~Um, ~and,~ uh,~ the other big part ~that, ~that we're heavily investing into is, ~you know, ~how does Nexts work for. ~Um, ~agents, right? ~Um, ~what we've seen, what we're seeing, I think today,~ right,~ is like not a lot of people are almost like writing code ~by, ~by hand. I don't know about you,~ uh,~ how you feel about it. ~Um, but,~ Paul: Mostly agents. Jimmy: yeah. ~Uh, ~and so [00:29:00] our goal there is ~well ~make, where we make ~the, the, ~the framework better by itself. Like just by providing more of ~the, ~the raw capacities that we're talking about, so that ~like.~ You can use it to build anything you want, is that we also are investing into,~ um,~ making like ~the, ~the Agent dx basically as seamless as possible. ~Um,~ Paul: agentic dx. That's the first time ~we've, ~we've heard that here. So that's in my head now. Age Agentic dx. Ooh, Jimmy: ~like there's, ~there's a lot more there that, that can do. ~Like, um, ~I think obviously ~like ~if your framework is good for ~like, you know, ~humans, ~um. ~Like for ourselves it is best, but like there, because of the way like the agents work there, there are a lot more capacities that we can unlock. ~Right. Um,~ Paul: totally. Jimmy: so for example,~ like, uh, ~one things we've been discussing right now is that ~like, ~it's much easier to teach like an agent, like the best practices, but like how you wanna, ~you know, ~what's the best way to achieve ~like, um, ~like the,~ well, the, the, ~the fastest performance. ~Uh, ~for your website, ~right. Um, ~and,~ uh,~ we're, so today when you create like a next app, we ~kind of sort of ~like pre-B bundle, the docs,~ um,~ in, in, and ~sort of ~like ~the, ~the agents and we file and like in the node modules so that ~like ~out of the box you can write like idiomatic, like React, react and NS code. ~Um, ~or your agent can do [00:30:00] it basically, and you don't, ~you know, ~you don't have to think too hard about it and you can just say ~like, ~Hey, I want, I just want you to create this feature for me. ~Um, ~and I think that's kinda like ~the, ~the end goal. ~Um, ~ideally, I think you were mentioning earlier, like a lot of people go today for ~like, uh, you know, ~are gonna mix maybe a framework like just vibes ~and, ~and taste. ~Uh, ~I think ~what ~what truly is gonna differentiate,~ like, um, ~sort ~like, uh, like ~the, how you choose like ~a, ~a framework or a tool in the future is more about ~like, you know, ~what does it allow you to do? And in which. What capacities, what primitive does it exposes? ~Uh, so, ~'cause ~I, ~I don't know, for myself, for example, I'm like, I've been moning mainly like a JavaScript engineer, ~right. Uh, ~by trade. ~Um, ~but Russ has become much more accessible to me now. ~Right. ~And if I need,~ like, you know, ~high Rupert,~ um,~ so like memory efficient work,~ um,~ now I can do it. ~And, ~and ~I think, ~I think about like web ~in the, ~in the same way, right? Like right now we're at. ~We're, we're, ~we're stuck with ~like ~JavaScript,~ uh,~ for the most part. And we're stuck with ~like, ~our own frameworks, but ~like, um, ~yeah, all of this is getting abstracted away. ~Uh, ~if you think about it, like before you were like choosing,~ uh,~ UI components libraries, right? Paul: Oh yeah. Yeah. Jimmy: ~you know, ~not what happened to this. Everything kinda died overnight because ~like ~those [00:31:00] things became like things you. Didn't want to think about anymore. Now,~ the,~ the, so agents can kinda, so ~like, uh, you know, ~iterate for those and it's gonna, the same thing is gonna happen at the framework level. It's like you, I don't care if I'm using like, ~you know, ~next or ~like, um, ~any other framework. I'm just, I just want the best tool. ~Uh, ~that just allows me to kinda scale as much as I can. And ~so, ~yeah,~ we're,~ we're heavily,~ uh,~ investing into this, I think. Paul: ~Well, good, ~good to know, because that is typically what we talk about on this podcast. ~Uh, this, ~this was a nice refreshing,~ uh,~ change of speed and to get an inside look for, ~you know, ~you who's on the, on, on the next JS side,~ uh,~ and on the inside. ~Um, well, ~thanks for sharing some of the next plans that you guys have going. It's good to know you have two years of plans, so there's like rich pickings for the next while. ~Um. ~Jimmy, you had a blog post. That's where we learn about the adapter's. API. Do you typically blog on the Versal blog? Do you have your own blog? Is it mostly Twitter? Where can people find more from Jimmy? Jimmy: ~Uh, ~most of my personal writing probably is done through x Paul: ~Mm-hmm.~ Jimmy: Twitter, [00:32:00] so if you wanna follow me like ~a, ~a direct fitzer gym. ~Um, ~this is where ~I, ~I communicate most of the time, otherwise, mostly through the access blog posts. ~Uh, ~really, Paul: Great. ~Well, ~Jimmy, thanks for your time. ~Uh, ~I definitely learned a lot about what the team is doing, and it's got me excited. So hopefully we'll have you on in the near future to see how things are going with the adapter's. API. Jimmy: yeah. Thank you.