Next.js Conf 2022 Recap
Dax, do you use Next. Js?
Speaker 2:I don't use Next. Js, but I did watch a conference.
Speaker 1:Yes. You
Speaker 2:did. Because I don't use Next. Js, I was pretty confused for most of it. So I honestly would just love for you to explain to me everything they're talking about. Oh, yes.
Speaker 2:Percent I do understood, but probably more than I did.
Speaker 1:I use Next all the time. I think that's been my default for, like, three years, and I'm so confused. I like, the all the React 18 stuff has been confusing me for weeks, months, I don't know, a long time. And now I'm just I've I've I've I literally just finished watching all of the react all of the Next. Js Conf videos.
Speaker 1:So my headspace right now is I'm swimming in information. Overwhelmingly, feel like it's so much to take in and yet so little. Like, if you think about the big the big conference, like or the big keynote, like, bullet points or the three things, it's like Turbo Pak. So all the rebuilt, we'll talk about all the build tooling. It's like the Apple Silicon move.
Speaker 1:They're doing it all in house. They're building it all in Rust. Then there's the the Layouts RFC, so there's that's, like, the whole routing. Next 13, like, the core of it is this Layouts RFC, which we'll talk about. And then the third thing was like components that make things nicer, like using images and fonts.
Speaker 1:It's like higher level web stuff, okay? Yeah. So the first one, I I think the the the reason I feel so overwhelmed and confused oh, jeez, my I just woke up and started watching videos this morning. Dax is having a look at, like, my my hair's everywhere, mad scientist style. Overwhelming feeling I have, I think, is because of React 18.
Speaker 1:I think it's just I still don't fundamentally understand. Maybe you understand some of the React 18 stuff. That's where I really struggle is, like, high level, I understand server components, but trying to parse out what is React versus what is Next versus what is Vercel just feels like this impossible task. So that's like my high level meta comments and thoughts. I don't know.
Speaker 1:You asked a specific question and I'm just rambling because it's early and I don't know.
Speaker 2:I don't know. Mean, that overview is helpful. Yeah. On that last point, what is next? What is React?
Speaker 2:What is Vercel? I think the thing you said is accurate. They're kinda like Apple trying to, like, own every piece of it all the way down to build tooling, which results in probably really cool experiences, like, very cohesive. If you're in the next world, it's probably gonna be as good as it can possibly get. But there's some interesting I don't if you're following along with the conversation the other day.
Speaker 2:There's some interesting implications of it for it because technically, React isn't, like, owned by Vercel. And at least for
Speaker 1:Technically. Yeah.
Speaker 2:At least for the history of React so far, it was, you know, shepherded by Facebook. Facebook never really directly needed to monetize React. Right? Right. So it was somewhat neutral.
Speaker 2:But now it seems more and more governed by a company that, you know, directly monetize React. So I think there's lot of questions around, you know, what level of influence is Vercel having over the React roadmap? I think some people pointed out yesterday. Yeah. It is a little weird they merge React server components and release it as a beta to time with, like, a marketing effort by Vercel.
Speaker 2:That doesn't seem very, very neutral. I think as an end user in the short term, it's like, oh, that's great. Like, everything's working together. That's good. But it does bring up questions for, I mean, other frameworks.
Speaker 2:You know? I think the only other framework using RSE is is hydrogen right now. Which I
Speaker 1:haven't heard of before all this. I've heard about it now.
Speaker 2:But I've been hearing about them forever. And it was always just like, they're waiting for React server to be a thing, and there's waiting and waiting. And all of a sudden, like, needs in. It's like, boom. Ready to go.
Speaker 2:Right? Yeah. There's like yeah. There's some kind of I'm curious how that plays out in the long term. If this, like, level of influence and bias ends up actually hurting the ecosystem and
Speaker 1:Yeah.
Speaker 2:And even the core framework.
Speaker 1:Yeah. They had the live q and a right after the keynote and the React what's his name? I forget the React core contributor that was on the panel. He didn't actually Leroy didn't introduce the people on the panel, so I couldn't even watch the video and get the names. It's like, I know I know who Tim is.
Speaker 1:I've seen his face on GitHub, but the other was
Speaker 2:Yeah. Me neither. You're talking about the guy I think it was on plaid shirt?
Speaker 1:Yeah. Yeah. Yeah. Yeah. Yeah.
Speaker 1:He's he's like a he made Redux maybe with Dan Abramovich.
Speaker 2:Worked on it with Dan. I I'm blanking on his name too.
Speaker 1:Yeah. Well, he sat there and said that Next JS 13 is like the real React 18 release. Yeah. And he backed up on Twitter and tried to say like, well, what I should have said was but if you listen to that answer, I mean, he very like lays out the case that this is actually what we needed to showcase all of React 18, and we really couldn't show it any you know, until Next 13 came out. So there's a lot of coordination there.
Speaker 1:I don't know. Yeah. I don't
Speaker 2:know how I feel about it. I don't Yeah. And and there was a thread with I think it was from Dan Abramov. He was talking about, okay. Like, let's step back and zoom out and talk about what React is.
Speaker 2:And he describes it as, you know, an an architecture with certain patterns, and it leaves room for implementation. So there's a core architecture that you could take advantage of, but it's up to, like, last mile frameworks like Next. Js to, you know, assemble everything together that fully takes advantage of it. And he phrase it as Next is the first framework to do this and give you a fully packaged thing, you know, which is great. And I think it's Yeah.
Speaker 2:A realization of that vision. But it also makes me wonder, is it the first or is it the last? Right? Yeah. Think when you build this, like, big reusable thing, but only ever use it once because how many variations of it do you really need?
Speaker 1:Yeah. Yeah. And that's a good segue into, like, bullet point number one, I guess, in in terms of Next. Js Conv Turbo Pak. It's a good segue because I think the big question is, like, is this just the Next.
Speaker 1:Js build tool, or is it going to be a bigger thing in the ecosystem? Are other people gonna use it? Like, they they say a lot in the conference and in the talks. There's, like, one very specific Turbo Pak. Mia gives a talk about the details of Turbo Pak.
Speaker 1:Like, dives into the it's gonna be so extensible in the plug in system and, like, all this, but that's all just kinda like talk. And I think that's the biggest thing about Turbo Pak. I was very excited reading through the docs, like, looking at Turbo Pak early and and thinking, this could be this could be really great, but then you you quickly realize it's, like, it's still very early. I think it's one of those deals where there's a date on the calendar where there's gonna be a conference. They're going to announce Turbo Pack.
Speaker 1:They've got all the cool visuals explaining the performance benefits and all this stuff, but, like, it's just gonna be what it is right now. It's they're calling it alpha. It doesn't support some things. There's there's, like dynamic isn't supported. There's it's only dev mode, so there's no production builds yet.
Speaker 1:But, basically, Vercel has decided they're gonna build all the tooling for your JavaScript stuff. So all of it is gonna be built with native technologies, Rust mostly, and that they're gonna own that thing. They're not gonna use Vite. They're not gonna use any of the community kind of, like the stuff that, like, people are mostly moving to. Right?
Speaker 1:Like, most of the frameworks are kinda congealing on Vite, I think.
Speaker 2:Mhmm.
Speaker 1:Is that accurate?
Speaker 2:Yeah. I would say so.
Speaker 1:And they're just gonna sorta, like, carve their own path. So they've got the successor to webpack is how they're coining it. Yeah. All written in Rust. They're gonna the the Turbo pack, kinda like a play on TurboRepo.
Speaker 1:It's all gonna be one thing someday, Turbo. They're rewriting TurboRepo in Rust. There's just a lot to take in, but I think the overwhelming thing is, like, feels very Apple silicon. Like, they're gonna do it all in house. Maya, in her talk, I felt like she only lacked the, like, cool room that the guy the Apple m one guy talks about the processors.
Speaker 1:Like, they needed that. She was just sort of like a little circle in her talk. But, yeah, I don't know. What are your thoughts on TurboPak? Yeah.
Speaker 2:I think part of me is really excited for it. And let me try to I have a very specific reason why. Because So like like you use CDK, you know, I work on SST. There's a challenge when using something like CDK or SST because, you know, with these tools, you're defining, infrastructure you need, and it's gonna get deployed in AWS, but you're also describing the build artifacts you need. You're like, I need this function built, I need this function built, I need this front end built, etcetera.
Speaker 1:Yep.
Speaker 2:So these tools end up being both a infrastructure as code tool, but also a build tool. But they don't have advanced build tool capabilities like what TurboRepo has, right? It doesn't
Speaker 1:Yeah.
Speaker 2:There's no like built in way to do caching or skipping builds that, you know, where nothing has changed. And CDK builds can be pretty slow. And I've when ever since I started using TurboRepo, I'm like, wow, I wish this functionality worked inside of CDK. Because from TurboRepo's perspective, CDK builds just one thing. It's either gonna build all of it or it's gonna build it's gonna skip it because it's cache, which is helpful, but, know, it's not granular.
Speaker 2:Yep. So I've been looking for a way to take all the learnings from TurboRepo and put it in CDK. So only rebuild functions that have been that have changed, only rebuild front ends that have changed. But there's a lot of work to build that. So with this Turbo Pack thing, I'm kinda hoping, oh, if they expose those library, I can suck in all that functionality into SST and get all that great all that great stuff that they've built and even integrate with some of the remote caching stuff.
Speaker 2:It can be compatible with any of the remote caching providers that they'll eventually do. So it seems very promising, and I'd love to, like, centralize on that instead of kinda continuously rebuilding everything they've already done. At the same time, it's kind of like like you said, there the scope is so broad. Right? I would have been happy with just, like, TurboRepo, the kind of polish up and made more as a library.
Speaker 2:Yeah. But also, like, building their own, you know, transpiler, like, doing all these things, building their own dev server, like, their different approach of how they hot hot reload, all these things. I'm sure for their very narrow specific use case, once they hit that, it's gonna be amazing. But it's kind of impossible to really build something great if you're not dogfooding it. And I'm kind of wondering how much are people in Next.
Speaker 2:Js and in Vercel thinking about non Next. Js users and like thinking about their workflows and what they need. Whereas Vite is a much more decentralized thing, right? Every framework kind of centralizes on it, builds optimal workflows, contributes back. So I'm like I like the structure of the Vite project more.
Speaker 2:And I think Evan, you also had a good thread on comparing, and I think he made some good counterpoints to acknowledge the stuff that Turbo Pak is doing well.
Speaker 1:Yeah. It's I don't know. The all the examples, like, of this very early TurboPak thing, when they talk about the performance, it's the starting point is, like, 3,000 modules. So, like, you you have a React project with 3,000 files. Is that a lot?
Speaker 1:That's a lot for me. I can't imagine having is that am I just like Well, it includes
Speaker 2:your node depths.
Speaker 1:Oh, okay. Okay. So that's more realistic.
Speaker 2:We all have roughly a million of, so Yeah.
Speaker 1:Exactly. Okay. That makes way more sense then. I'm thinking like in my pages directory and my components directory having 3,000 files, and I've never worked on anything like that. Okay.
Speaker 1:So that makes way more sense then. I guess the Parcel I'm gonna totally blank on everybody's name, but the creator of Parcel tweeted that he was disappointed they didn't reference because the the big thing about Turbo Pack is the incremental it's the same with TurboRepo, like incrementally building only building things that change. Right. And he was he tweeted that he was disappointed they didn't mention it at nextjsconf as, like, inspiration for the incremental build stuff. They mentioned Bazel at Google.
Speaker 1:Actually, Maya, in her talk, does mention it because she wrote it for Parsley, which I didn't know. This is all very fascinating. She works at Versal now because everyone works So at Versal there was some inspiration taken there, the incremental build stuff. But he also pointed out or maybe it was Evan that pointed out, we're talking about, like, going from point nine
Speaker 2:Yeah.
Speaker 1:Or point o nine to point o one seconds in terms of the HMR reload, I think, is what the example it was Evan. So how much does all this matter in practice? Like, how much does I mean, Rust, I know there's a lot of benefits besides performance, like building all their tooling in Rust, probably easier to maintain. I think Rust is really good about that. Right?
Speaker 1:So there's reasons, but I do wonder the big question for me is, is this just Next. Js build tool or will it become a thing in the broader ecosystem? Will people write plugins for it? Will that be a thing? I I think point people point out SWC like there are no third party plugins for SWC.
Speaker 1:It's all been written by Vercel. And is that another is that what's gonna happen here? Does it matter? I don't know.
Speaker 2:Yeah. I do wonder about that too. And even I don't if you saw that thing about, I think it was one of the Webpack core contributors. And he was saying, it's weird they branded this as a successor to Webpack because I'm still working on Webpack and me doing releases. Yeah.
Speaker 2:So positioning is definitely weird in in a few places. And, yeah, I do wonder, like, some these other rich ecosystems, I think you do have this thing where when with a completely open ecosystem, 99% of the plugins are garbage, and you're sifting through them to find the 1% that are good. Yeah. Whereas with something like Vercel, I'm assuming every single thing that they publish is gonna be pretty good. So Yeah.
Speaker 2:It's honestly the same thing as the Apple versus Android thing. It's it's very familiar to that. Fewer choices on Apple, but everything's gonna work together. It'd be great. But if you ever need to go outside of what they think you should be doing, it's just gonna be a pain.
Speaker 2:So Yeah.
Speaker 1:Yeah. Classic I do I do use Apple stuff, and I guess I do use Next. Js, and I deploy it oversell. What am I talking about? I have no complaints.
Speaker 1:It's all gonna get better. One thing that's missing from Turbo Pack in this very early alpha release is tailwind. You have to, like, run it in a sidecar. That bummed me out. I don't know.
Speaker 1:Maybe it's a little thing, but I feel like everyone uses Tailwind. Right? And there was a thing in the QA where Maia actually answered a question about Tailwind support in Turbo Pack and made it sound more ominous like, oh, yeah. That's a JavaScript thing. How are we gonna like, we're gonna have to create some system for running JavaScript y things, like JavaScript plugins in this Rust thing.
Speaker 1:I don't know. Like, maybe it's not just as simple as, they didn't get to it. There's actually, like, a whole thing they have to Yeah.
Speaker 2:It is tricky because an ES build and SWC also run into this. People wanna write the plugins in JavaScript, which makes sense, but the core is in Go or Rust. Yeah. And the interop might slow things extremely down unless you build a fairly limited plug in system. So, yeah, I can definitely see the challenges with that.
Speaker 2:It did sound like at least I I I've been seeing the talk you're referring to, but at least when they were up on stage altogether, it sounded like, oh, yeah. It's gonna come. We just haven't gotten
Speaker 1:to it. Oh, I think so. They don't want everyone, like, package JSON scripts looking like that with Concurrently
Speaker 2:and Concurrently.
Speaker 1:Yeah. Yeah.
Speaker 2:Yeah. I definitely just having done this thing where you, like, have a big event. I don't know if a company as big as Vercel has a more sophisticated way of doing this, but at some point, you just have to pick a date for the conference because you need to, like, lead up time to do marketing, like, all the stuff that goes into planning that. You sound like randomly pick a date, and then you just try to get as much package into that date Yep. As you can.
Speaker 2:And which is why I think a lot of these conferences, it's like very exciting, but then it's always like, oh, this is an alpha or this is coming out soon or this is like, you know, partially complete. It's hard to time everything together like that.
Speaker 1:Oh, for sure. I think Apple does a really good job with it where like,
Speaker 2:you can
Speaker 1:order now, but they're Apple and everyone else is trying to be Apple or at least Vercel is.
Speaker 2:Yeah. And even play harder with software. It took them a few years to get to that. Right? I mean, the first few conferences, it was always like
Speaker 1:Coming in fall of next year. Yeah. I can remember some of those. Yeah. Last thing on TurboPak.
Speaker 1:I thought I had one last thing. Oh, yeah. Yeah. I love the graphics and all the the talking points around, like it's like 700 or 600 times faster than Webpack. I feel like that's such a self burn because the only reason anyone uses Webpack anymore is because of NeXT.
Speaker 1:Like Yeah. Exactly. Who uses Webpack? And Tobias works there, and I don't know. I just thought that was funny.
Speaker 1:Like, you might as well say a million times faster than Webpack.
Speaker 2:Yeah. Some of this performance stuff, I think, in practice is binary. It either feels instant or you go and do something else while you're waiting for it to and once you pass that threshold, I don't know how much these tie like, Veep hit that threshold of, I start it and I know it's gonna be ready right away. I build it. I know it's gonna ready pretty much right away.
Speaker 2:So, yeah, I'm sure these incremental things are good to do, but as, like, an end user is doesn't feel like a game changer for me.
Speaker 1:Yeah. So that's so that's Turbo Pack. I did I I said last thing. There's one last thing. SvelteKit.
Speaker 1:So Rich Harris at Vercel, and and the whole SvelteKit has already changed bundlers twice, once. I don't know. And now Vercel's building their own bundler. Does SvelteKit move to it? Does that cause drama?
Speaker 1:Am I trying to create something that's not there? I don't know. I just the whole of Rich there is confusing me. Yeah. Go ahead.
Speaker 2:Yeah. I mean, because it didn't doesn't Rich Harris also isn't he the creator of Rollup as well?
Speaker 1:I think so. But they moved from Rollup to Vite. Is that right or no? Or They moved from something to Rollup.
Speaker 2:Vite uses so Vite's like a Oh, Vite
Speaker 1:uses Rollup. Right.
Speaker 2:Yeah. Because it uses Rollup for production, but then it uses their, like, ES native ESM thing for dev, which I've always loved that pattern, but the Toro repo talk seemed like they were saying that isn't good. I don't know. It still makes sense to me. But yeah.
Speaker 2:So he uses so Velcade uses v. Right?
Speaker 1:But they moved to it from something. Right?
Speaker 2:I think so. I don't know. They've already
Speaker 1:had a like, their pre version one was SvelteKit, but they've already changed bundlers once. And there's, like, the mumblings of would they really would they change again to move on to the Vercel thing? Because Rich works here. Rich said something in the pre show that was like how awesome it was to work at Vercel and get to be able to work on Svelte full time. Is there no other company that would pay Rich Harris to work on Svelte full time?
Speaker 1:I feel like he could find support. I don't know. Anywhere else. I'm sure
Speaker 2:he courted, like I'm sure he did, like, a whole round of
Speaker 1:You think so?
Speaker 2:Yeah. Because I know I know Ryan did. Saw JS, Ryan Carnado. He talked to literally everyone.
Speaker 1:And he's at Netlify now? Is that right?
Speaker 2:He's no. He's yeah. Sorry. He's at Netlify. Yeah.
Speaker 2:Yeah. And he, like, course, weighed the personal compensation, but also weighed, you know, like, in terms of the best positioning for SolidJS as a Yeah. As a product. Yeah. Going to Vercel is tricky because you are in a company that has a clear competitor.
Speaker 2:Right. So I I can see why some of that's tricky with with Rich at at Vercel.
Speaker 1:Yeah. I don't know. I'm I think I just have a hard time imagining five years from now how all that plays out. Yeah. That's true.
Speaker 1:Okay. I've never used to help, so I should just stop talking.
Speaker 2:I don't
Speaker 1:know what I'm talking about. I'm not even a front end engineer. Why am I talking about any of this? Okay. So the second bullet point, the Layouts RFC, this is probably where you you hinted, like, you don't follow a lot of it because you don't use Next.
Speaker 1:Js, and maybe I could be helpful. Maybe. Maybe not.
Speaker 2:Yeah. It's okay.
Speaker 1:Okay. So this was the this Next. Js 13, the big thing is taking advantage of all the React 18 stuff. So server components, layouts. What else?
Speaker 1:That's I mean, that's the big ones. Right? There's this unified data fetching now, which I learned yesterday or today watching all these talks is actually, like, experimental underscore use coming out of React, so it's an experimental use thing. I thought
Speaker 2:it was just use,
Speaker 1:but it's experimental use. So basically, this one way to fetch data it sounds like that you don't in Next. Js so previously in Next. Js I I keep forgetting you don't use it. Previously, there's like three different major ways.
Speaker 1:There's SSG and SSR and ISR, right, and they have different, like, named functions that you export from your thing, your pages specifically. Those, it sounds like, are kind of like not gonna be there anymore. You don't use those in this new world in the app directory. You just fetch data in one way and they do all these optimizations at runtime to like dedup, and I don't understand how the ISR part, like, how cache stale wire revalidate, I don't understand how that gets replaced, but they made it sound like it does. So now you can define, a layout in a directory, layout dot j s or t s, and that defines this sort of server component.
Speaker 1:Well, all components are now server components by default. They can fetch data and allegedly not send a lot of JavaScript that's not needed to the client, although that's been talked about already on the Internet. Like, still send the same amount. I don't know. People have been building React 13 or Next.
Speaker 1:Js 13 apps and seeing more JavaScript in the client bundle than before, so I don't know what it all means, but apparently, eventually, we'll send as little JavaScript to the client as possible in some some point in the future. I don't know when that happens. That's that's the LayoutsRFC. But then there's also client. You can create client components, which I learned also is like this weird string at the top, this use client.
Speaker 1:You just put that at the top, literally in a string. Like in a comment? No, just like literally. Oh, a
Speaker 2:string, like the use strict thing?
Speaker 1:Yeah, like use strict, exactly. But it's like use client and that's a client component.
Speaker 2:Yeah, I
Speaker 1:don't know. I don't know how it's all gonna like, I've not done any of this. So Yeah. The promise though is less JavaScript for my client someday. Go ahead.
Speaker 2:Some of that is familiar, like the useRFC, which I did read through. I think the the trajectory I see, maybe I might be wrong about this, but I think React Query sort of got people used to this pattern of just any async task goes in this into this thing, and you automatically get certain properties, like whether it's completed, whether it's pending, the actual value, things like that. And then there's something called createResource added to SolidJS, which is very similar to the use hook. It's a core level primitive that you pass in any async function to, and it returns an object that has, you know, the value if it's there, if it's loading, etcetera. So that that's native to Solid.
Speaker 2:Js. Because it's native, it integrates with all the suspense stuff. So if you have a suspense up top, you have, like, you know, a nested series of components that are all that all have resources they're waiting on, it can just wait on all of that before rendering them all. So you it fixes that pop in issue. And that it, like, integrates nicely with SSR, and it and it's it just, works really nicely all around.
Speaker 2:A little bit easier in the Solid world because the implementation is kinda simple because it's just reactivity based, whereas use and React probably needed a lot of work to implement correctly. And it's probably why it's still in experimental if they're trying to figure out whether this pattern Yeah. One, people like it, and two, if it's implemented correctly. But this kind of brings me to a broader feeling I've had where, you know, I don't use Next. Js, but, know, I'm pretty familiar with front end stuff.
Speaker 2:Yeah. Watching the conference and all the and the q and a and all that, I was surprised that I didn't understand most of it. And I kinda got this feeling of I generally don't complain. Like, I know there's a general complaint around front end really complicated and it moves fast. I definitely hear that, but I generally don't feel that too much.
Speaker 2:Just something like this is my hobby. I'm, like, into this stuff. The more it changes, the more fun it is for me. Yeah. But I was looking at some of this, and I was like, man, is this does this really have to be this complicated?
Speaker 2:Like, I I am, like, barely following along. Yeah. It seems really hard for what seems like pretty, like, simple outcomes.
Speaker 1:Yeah. I don't
Speaker 2:know if you felt the same way.
Speaker 1:Or I totally feel the same way. And I think that's, like, the voices in the community that are, like, hard on the other side that have been saying it's all too complicated. This could be way simpler than this and even have offered up solutions to make it simpler. They're getting louder and louder in my head as I listen to this stuff, and I think, like, how many layers deep are we in this stuff that I can't I can't fully grok? And I feel like I've been using React for, like, eight years, almost a decade, and it still doesn't all click with me.
Speaker 1:Like, I still build stuff every day where I'm like, wait. Oh, yeah. Of course. No. I can't do that.
Speaker 1:But, like, that stuff, the cognitive overhead, it does feel like it's reaching a tipping point for me and and maybe within the broader community. I do wonder, like, one of the talks kinda made the case that, like, we need these layers of abstraction to do things that scale from startup. It's totally the SST thing, from startup to like mega company. Like, we need these things. You need to stand on the shoulders of Vercel and you can build this thing and you know it'll work for a 100,000,000 users like it works for 10 users.
Speaker 1:Do you think there's truth in that? Like, is that why we need all this comp complex stuff? Is it just not there? Like, eventually, it'll be simpler, but we just need more layers?
Speaker 2:Yeah. I mean, I I'm biased because I I use Solid, and I see a world where it's not like your absolute beginner can pick it up and they're, like, good to go. But so much I felt like, like, a weight that I didn't know was there just, like, dropped out of my head. Mhmm. Just so
Speaker 1:much I wanna
Speaker 2:I say something. My head. Yeah. Yeah. I went through this thing where when I first started using it, I was like because it looks so much like React.
Speaker 2:The first two months, was like, oh, I get it. Like, I'm doing it. I'm building stuff, and I was building stuff. But two months in, I was I realized I was making everything overly complicated because just my, like, React training. And once I shed all that, it was like, wow.
Speaker 2:I'm back to just dealing with DOM element and, like, touching them directly and, like, everything is just so straightforward. So I feel like it doesn't have to be this complicated. I think React is incredible in that a core idea from ten years ago is still, like, relevant and the main way people are doing things, and they've been able to shift and adapt it. But at some point, you know, everything everything goes through its phase of that. You know?
Speaker 2:I'm into Solgist right now. There's gonna be a time where I hate it. I've been through this with enough technologies I know that it always happens, so
Speaker 1:And what about so Solid kind of like removing that React burden. What about like what Next provides and all of the so I guess if you're using Vite, you're using things that are they've solved, like, don't have to think about Webpack or transpiling or any of that stuff anymore, but, what about the Git, the data fetching, the Git server side props equivalents? Like, if you need to do stuff or I I think you don't really do this much. You mostly build, like, client driven, like, rich apps that are used by focused groups of people. But do think that that's is it Astro?
Speaker 1:Like, does Astro and Solid get me, like, 95% of the way there with what I'm used to in Next?
Speaker 2:Yeah. Exactly. And so you're right. Most of my time is spent on, like, long session apps, so they tend to be SPAs. But even when you build an SPA, at some point, you have to build a marketing page Yeah.
Speaker 2:A blog, like there's other things like that. And, yeah, so things like Next and in that category, these meta frameworks. Yeah, I'm not gonna set up SSR on my own. I remember I used to having to do that, and it was terrible. I never actually did it right.
Speaker 2:And I think that was even how Next described it when they first came out. They were like, nobody does this right. So, yeah, I mean, they'll they're they're great. And but I it's not really NeXT for me. It's I think NeXT is a great does a great job packaging this complexity into something pretty digestible.
Speaker 2:Yeah. It's just when I get peaks into the underlying stuff, and I get that you don't have to do that right away. You can be a beginner and stay at the high level. But, you know, you never feel good if the stuff you're sitting on feels like really chaotic. Yeah.
Speaker 2:You want things to feel, like, simpler at the low level, and you're kinda surprised that when you dig into it, you wanna be surprised. Oh, this is a lot simpler than I thought it was. Because it's the other way around, it's kind of Yeah. You start to feel uneasy. At least I do.
Speaker 1:Yeah. So that was the whole middle point of the conference of the keynote. Like, is this layout's RFC and now rolling into Next JS 13. And it does, I think, leave me uneasy. I just I feel like there's so much that I don't understand, and I I don't know why I don't understand.
Speaker 1:But maybe it'll all start making sense. I haven't used this stuff. Maybe once I'm using server components and I'm creating client components and it all just makes sense to me. I don't know, the React contributor on the Q and A did say there will be a learning curve as people start thinking about the distinction between the two. Yeah, But then I just think of the Brian Larous of the world and, like, what they think of all this stuff.
Speaker 1:It's so hard for me not to hear that voice in my head.
Speaker 2:I think he would die if he watched the conference.
Speaker 1:Oh, jeez. Would just stop. Okay. So then the third thing was, like I don't even remember the name that they used, but it's like higher level web components. So it's like you need you need to serve images in the right way.
Speaker 1:So let's just go through them. There's like next image. There's next font, there's next link. Next image and next font or next link existed. They both got better by removing stuff.
Speaker 1:So next image, you don't have, like, all the JavaScript stuff. I think they were using like intersection observers and all this. Whatever they were doing before with all this JavaScript now just uses the native browser stuff. I guess it's far enough along now. With browser support, it'll load images based on native browser APIs, so they basically stripped out a lot of the JavaScript and now Next Image is lighter, more accessible, better, just uses the platform.
Speaker 1:So that's Next Image, I think. I think that's only available Next 13. I don't know if they'd already rolled that out or not, but next link, you don't have to put anchor tags in anymore. Again, you don't use Next. Js, so this may not make sense.
Speaker 1:No.
Speaker 2:I'm familiar with that.
Speaker 1:I I
Speaker 2:have used Next, so I'm familiar with some of the patterns.
Speaker 1:Yeah. So you had to have like an anchor tag just like this naked anchor tag in in your link tags, which is always dumb. Now you don't have to. So now your links don't involve anchor tags at all. No.
Speaker 1:I know they're probably rendering anchor tags. I just know people like Brian or Lou would hear that. Like, great. We don't have to use anchor tags now. The next font is new.
Speaker 1:I'm so hyped about this one. There's a fourth thing we'll talk about too. I'm I'm all over the place. I'm sorry. The the next font thing was maybe the most excited I got at the whole conference because the number of times I wanna use a Google font, I I search on Google fonts, I find it, and then it's like, you could just drop this script on your page if you wanna be bad and do bad things.
Speaker 1:And I'm like, not gonna do that. I'm gonna look up again how to do the best thing and self host it and preload and the inline the CSS. And then also, you gotta do your is it optional? Are you gonna swap it like a chump and have layout shift? Like, what are you gonna do with the font when you get it?
Speaker 1:The the problem I have with that whole thing, I always spend forever just, like, remembering all the places I had to put stuff, and then I use Tailwind, so I just, like, put the font in Tailwind. I do all of that, and then the best path for performance, if you wanna, like, check all the Web Vitals boxes, is to use the optional font loading strategy. Right? And optional means everyone that hits your site and then leaves and never comes back sees the dumb basic font. This is not your custom font.
Speaker 1:So, like, the first load of the page, it's probably not gonna load the font fast enough even with your preload, and they're just not even gonna ever see the custom font. So it always felt like you either have layout shift or you only show the cool font to people who come back and I hated that. So I love that NextFont, you just use a font from Google Fonts like you import it into your thing just like you import any other module. You choose, like, enter or whatever the font is. They download they self host it.
Speaker 1:I know you've you use something that does something like this in node modules, but it self hosts the font. It does all the preloading. It just does everything. It does all those things, but then also it sounds like it uses a swap, font loading strategy, and it uses, like, margins and stuff. There's some browser API for it, I guess, for, like, accommodating like, making the font not layout shift when it swaps in, which sounds amazing.
Speaker 1:If that all works, I'll be very happy. Got it. Sounds a lot about
Speaker 2:the fonts. So does it basically know for each font, like, some dimensions of
Speaker 1:Yes. What the
Speaker 2:font would take up
Speaker 1:think and
Speaker 2:there there's some CSS property, right, that Uh-huh. That you adjust it. So then there's no layout shift when it swaps. That that's pretty awesome.
Speaker 1:It is awesome. I'm I'm so excited about it. I feel so dumb being, like, hyped up about this font thing when they the whole the whole conference. That's the only thing that really got me excited. Yeah.
Speaker 1:The the fourth thing was the OG generation, which they they actually put they posted this on Twitter a couple weeks ago, but they announced it at the conference. It's actually really cool. Like, you can render dynamic social images Mhmm. With React components. It's some weird, like, stripped down they've made, like, their own thing that turns a React component into an SVG or something.
Speaker 1:I don't know. Or into an image. You can use, like, a subset of Tailwind. Sorry. I'm talking too much.
Speaker 1:Go ahead.
Speaker 2:No. No. I I was just listening. Yeah. That that was actually one of the old SST tutorials was building something like that where you can build a OG image generator, like a serverless thing where Lambda function generates at once.
Speaker 2:But, yeah, having that built in is great. Like, there's there's even, like, whole SaaS tools that just help you with this. Right? I know there's there's that Oh, yeah.
Speaker 1:Tool. And that I think that's, like, the whole fully integrated vertical thing, the Apple model of, like, we're gonna have everything you need. That's where it's really nice. I do love, like it's the kind of stuff that'll hook me. Like, I'll keep using Next because of Next slash font and the OG image generation.
Speaker 1:Like, that stuff was just, like, really annoying little things that it's really like, I don't like having to manage those on my own. So I do like that they because they do the hosting with Vercel, like, they can actually pull off this vertical thing that crosscuts several different areas. Like, you're writing this component in your thing that renders an image that gets served at the edge and all, you know, all that comes into play there. But you can't really do that if you don't own the full thing. So it's pretty cool.
Speaker 2:Yeah. Yeah. I I think these some of these other meta frameworks, they kinda have to build in a neutral get vendor neutral way, and that does limit some of some of their functionality. Like, they couldn't build, an ISR feature, for example. Yeah.
Speaker 2:That makes sense.
Speaker 1:So okay. High level thoughts. Or do you have anything on any of the the app components or any of that last bullet point that you care about?
Speaker 2:Well, I mean, again, it's probably a negative thought, but I I did have a moment during the conference where I was like, we're all sitting here gathered around watching this thing excited, and we're talking about a link component. Like, get there's a lot of underlying routing and lots of deep implications there, but it's like, you don't have to put a tag inside this other tag. And that's like, you know, one of the main announcements. And I was thinking back to how I always feel this way whenever Unreal Engine has, like, a new version and then they do their demo. I'm like, yeah.
Speaker 2:They're showing off how you can create, like, entire universes in, like, perfect fidelity without any work. And our equivalent in our industry is like, oh, like, this tag doesn't need to go in this other tag anymore. And it just makes me feel pretty lame.
Speaker 1:Yeah. No. It is it is kind of a lot to do about nothing. I yeah. It's it's hard because I I do get excited about some of these things that are pretty trivial things.
Speaker 1:And when you think about, like, how outsiders, people who aren't web developers, would view what we do, like, they wouldn't think we'd be excited about the things we get excited about. I don't know. It's it's like Apple. It's it's the whole Apple parallel. It's just been all over the Internet.
Speaker 1:I mean, everybody's, like, got their memes about how Vercel is is very much creating this apple of the software world. I wanna talk, like, high level Vercel economics, their Apple comparison. I think the Apple thing, the reason that that reminded me of it is, like, they announce a new iPhone every year, and Mhmm. At this point, nothing really changes. Like, there we get excited about the littlest, dumbest things.
Speaker 1:This makes looks like a new camera. That's exciting. But it felt very like that.
Speaker 2:Like Mhmm.
Speaker 1:There is a lot that they announced, and I don't wanna discount that, like, they have a lot of people at their at Vercel working very hard on some cool problems, like all the Rust stuff. I don't know. It's exciting. But the things I'm most excited about from the talk, from the conference do feel like pretty trivial improvements to just like my daily it's just like quality of life improvements at this Yeah. But maybe it's just because I don't understand all of the partial hydration and, like, which parts of my page won't have to rerender.
Speaker 1:And when they say won't rerender, do they mean on the server or the client? I just get so confused that maybe I don't understand how big this is. I'm excited about next font. I don't know.
Speaker 2:Well, it's a it's it's your worst pain point. So
Speaker 1:It is. Yeah. It's sad, but that that is my worst pain point.
Speaker 2:So what
Speaker 1:are your high level thoughts on, like, Vercel and how they, like, pull all this off, I guess. Like, I can't help but watch that conference, see all the lead up to it with they brought everybody to San Francisco to be like, oh, they didn't bring us. So not everybody. But they brought, like, everybody to San Francisco. It's this crazy developer party where, like, all the celebrities in Devland are hanging out, and they have this whole production.
Speaker 1:It's this crazy like, nobody's seen it in the tech world. But then I can't help but think about the fact that, like, do they make money? I don't know. Like, they've raised $350,000,000, but do they make money? And is this sustainable?
Speaker 1:Is this, like, are we going down? Are we going is this a sign of the end? Yeah.
Speaker 2:Yeah. There there's always moments you you think back to when there's been a downturn of, like, oh, that was obviously, that was, like, the top or whatever. Yeah. I don't know. I think I have a few like with everything else, I'm pretty confused.
Speaker 2:I just feel like lately in life, I'm just pretty confused most of the time, especially when it comes to the web world. I'm sure they're doing fine as a business. Just you can't be this beloved and not make money. Sure. Maybe you can, but I feel like, you know, you gotta I'm sure some dollars are coming out.
Speaker 2:I think the place where and this is it's gonna come from, like, my bias and what the stuff I work on. I think for most of my career, I never thought of myself as a web developer. I thought of myself as I work on software, and oftentimes, that software has, like, a web component. Like, we have Yeah. A dashboard, whatever.
Speaker 2:But, you know, the meat of the value is in the back end or, like, whatever, you know, business logic we've written, etcetera. So, like, web the web part was just, like like, tiny piece of the whole thing. Of course, web has gotten a lot more complicated. The experiences people get are or expect are a lot more sophisticated. Okay.
Speaker 2:But still in my, like, overall stack, it still, to me, feels like it's just like this component of the whole system. And having a company trying to just monetize just that portion of it Yeah. I don't know how much money I'm gonna wanna ever give them for this at least for the stuff that I work on. Right? In my overall bill, I would expect my front end to be, like, a miniscule fraction of the That's a good point.
Speaker 2:Yeah. Compared to, like, my database. Right? All these database providers that are coming out, like, I know they're gonna be making tons of money. Yeah.
Speaker 2:Like, you'll play you'll pay Plantsco whatever because that's, like, everything you care about. Right? So I kind of wonder with where Vercel focuses, it's for people where the web part is the thing, the whole product. And that tends to be I think I'm I may be missing some things, but it tends to be things like ecommerce. Yep.
Speaker 2:Right? Ecommerce like that. Your web platform is the product. The faster it serves up, the more money you make, you know, the higher quality, etcetera. That's what you care about.
Speaker 2:But these aren't, like, software companies that are making tons and tons of money. They pretty much have, like, tough margins, and they are pretty sensitive prices. Yeah. And and we see this a lot because we help people deploy Next on AWS. A lot of people are coming to us to switch over to deploying Next on AWS because they got an email from Vercel saying, hey.
Speaker 2:You're, like, way over our, like, fair use thing.
Speaker 1:Yeah.
Speaker 2:You know, we'd like you to pay, like, you know, 75 k a year Yeah. For your usage. And that's, like, pretty tough for some of these companies. So I do I'm sure that's not, like, all of Vercel's business, but, yeah, like, how much value can you get just doing this web portion of it? Unless you start to capture, like, okay.
Speaker 2:No. It's gonna be the whole back end, and we're gonna host your database, you know, capturing the full end. I keep
Speaker 1:waiting for that. I keep waiting for them to, like, make the obvious moves. Like, they figured out a good developer experience and how to create really performant web apps. Like, about all the rest of it? Like, what about like, if they did the front end, where's where's the rest of it?
Speaker 1:Are they gonna start venturing into data, into actual APIs? That that just seems natural, but they just I mean, we would just go through another NEXT CONF, and they didn't they're not hinting at that. It seems like they're doubling down on, to your point, making this small part of our broader applications better. Like if I think about deploying a web app on AWS, if I were not using Vercel, it's like I spend all my money on DynamoDB and whatever. If you're using a relational database, you know, whatever, Aurora or something.
Speaker 1:I said relational. If you're using a SQL based database, Dynamo's a relational database. If you're using like those are always a big expensive thing, and then you spend like nothing on s three and CloudFront, and maybe that's because I don't make apps that people use, but ultimately, I do I see that parallel. Like, they are focused on this one part of a broader thing. But but, yeah, I guess ecommerce, that is mostly the thing.
Speaker 1:I don't know. And they mentioned ecommerce in the conference, like, as, like, they these major ecommerce companies that use Next. Js and Vercel. I don't know.
Speaker 2:Yeah. And and ecommerce is also hard because they serve a ton of impressions because the whole thing with ecommerce is you drive as many people to your platform as possible, and you convert a small number of them. Yeah. And people, like, look at a lot of images. It it's like heavy content stuff.
Speaker 2:So that's why these bills add up.
Speaker 1:Yeah.
Speaker 2:So, yeah, that whole space, I'm sure they'll win, and I'm sure winning looks like a massively successful company. But it feels tough. It feels a lot tougher than focusing on some of these other just high higher value value areas. And I think they're I guess the reason if I look at what type of company they are, they're really great at focusing on DX, like solving the last mile problems on top of other infrastructure. Like, know, they're built originally built on AWS.
Speaker 2:Now they have stuff on workers. But I think to sell, like, more infrastructure type products, like a database, you kinda have to be an infrastructure company. I don't know if that's
Speaker 1:Mhmm.
Speaker 2:Like, really in their DNA. Like, they're not, you you know, they're not their core competency isn't managing, like, a cluster of servers or anything. It's more around focusing on the last mile on top of someone else doing the other stuff.
Speaker 1:I think I'm more confused than I was when we started this. And I don't know. I don't know where it's all headed. I do feel like we're in weird times in this, I don't know, this landscape right now. Not just Next.
Speaker 1:Js. It's just like more broadly, I guess, web. Like, I don't feel like we're in weird times over in, like, back end land or No. Cloud land. I feel like it's just like that that's a play that's a parallel.
Speaker 1:Like, AWS actually is just making incremental changes to all these wonderful primitives that we can build on. Reinvent, I expect nothing to blow me away. Mhmm. It's all very stable and this web world is so weird and there's so many people with strong opinions and they all have platforms, and they can voice those opinions. And I don't know what to think anymore.
Speaker 1:But I do think DevRel sucks. That's one thing I'll say coming out of next comp. I just
Speaker 2:Yeah. I wanna hear more about this.
Speaker 1:I I just I just don't know. Like, what do you think about Vercel as, like, a culture like, an influencer of developer culture? Like, they're trying to create something that really hasn't existed. I mean, there hasn't been a dev tools company that looks like Apple when they put on an event and that, like, brings in all the dignitaries and, like, has this very flashy, glossy appearance. How do you think that plays out for them?
Speaker 1:Like, does that get them more usage? Like, do developers wanna use Vercel because of events like what they just did yesterday?
Speaker 2:Yeah. I think it definitely does. I mean, there's no reason why the Apple strategy wouldn't work. And I I also think there is merit to it. I I kinda think of it as if you're able to pull off good design, it's because you figured out all the other parts of your business and you have leftover time for this.
Speaker 2:So when I see good design, I think it is a good signal of something. Yeah. Most companies are, like, scrambling to figure out their core product. They're never gonna, like, get to the like, the the aesthetic stuff. Right?
Speaker 2:Yeah. So I do treat it as, like, a real valid signal. But I think for me, like, we've talked about before, whenever I see something getting popular, I start to hate it. It's just it's completely irrational, and there's no logic to it. But I'm like, Next.
Speaker 2:Js is, like, the top dog right now. So I'm looking for, you know, like, whoever's gonna get the angle on them and, like, what's coming up next and how are they gonna, like, fumble their their lead.
Speaker 1:Yeah. So
Speaker 2:yeah. That's how I feel. I don't know about you.
Speaker 1:Yeah. No. My I mean, my feelings are probably, like they're they're all just driven from, like, FOMO, I think. I wish I was at the conference, so I have salty feelings about the conference.
Speaker 2:It's just a lot of jealousy too.
Speaker 1:Oh, yeah.
Speaker 2:For sure. Definitely an angle.
Speaker 1:I'm I'm a sucker for aesthetics. They they nail design. I mean, they're they're folks. I know I've seen some of them on Twitter. They're really good.
Speaker 1:Like, I love all of that part of it. I think the DevRel part's the part that I'm like, It feels very fake. And just how many developers are really, like, positively influenced when they watch if you saw that preshow. Like, watching that preshow, I don't think that that helps for so. I think developers are a pretty, like, scrutinizing bunch.
Speaker 1:I think we we can smell out inauthenticity inauthenticity. I can't say that word, but we can smell it when things aren't authentic.
Speaker 2:Yeah. I think I fundamentally the thing that I have an issue with is I don't believe really in this 100% DevRel role where that's, like, just your entire job. I just find it weird. Right? You spend you work at a company.
Speaker 2:You learn to like their product. You spend a bunch of time, like, just evangelizing it and explain to the world why everyone should use it. You get a lot of followers. People look to you through that job. Then some other company is like, hey.
Speaker 2:You have a lot of influence and followers. Here's a bunch of money to come join our product our our company and now say that you love our product. Yeah. And you've seen this cycle because this this DevRel role has been there long enough where you've seen some people, like, switch companies and, like, all of a sudden, their, like, vision for the future and what software looks like is somehow centered around the new company they're working on. And, yeah, I like I don't the incentives there just don't make sense to me.
Speaker 2:Yeah. They're not it's one thing where someone's creating the framework that they think is a future and they love and they, like, really have this vision, and therefore, they're evangelizing it. And they're committed to it. They're if that dies, like, they're not they can just go hop on to the next thing. They're like, it's a Yeah.
Speaker 2:Large level of commitment. DevRel is a very low commitment. You can switch and, like, you know, there's a lot of lots of opportunities. So, yeah, I don't know how seriously I can take some of that. And the other authentic authenticity thing is also kinda there because, like, you're supposed to you're, like, pretending like you're representing yourself, but you technically can't say anything that you're that wouldn't be on brand for the company.
Speaker 2:So it's just, yeah, it's
Speaker 1:just really weird. It's weird to me. It's weird. But there's definitely a few, like, prominent DevRel folks that have moved around enough that I just don't even know where they work anymore, and it just means nothing to me. Like and they have big audiences and, like, people I don't know.
Speaker 1:I'm sure the people paying them and hiring them think they're getting this asset, but, like, it's just it's so watered down at this point. And I just think the whole career arc, it's mostly, like, engineers that are good at stuff, and then they start talking about the thing they're working on, and then people hire them to do DevRel, and now they're, like, getting more and more out of touch with real engineering problems every day. They're probably not that good at actually, like, being in front and facing like, representing your company. That's the overwhelming feeling I get is that, like, these dev they should just hire, like, actual TV people. Like, if if you're gonna make this amazing event, you're gonna have somebody stand up on the stage and not look like an idiot.
Speaker 1:And I I I'm trying not to be like I I don't wanna call out people like, I I ultimately, I think they're good at what they did, and then they get put into a situation where they're not so good at the thing they're doing now. And why? Why are we doing this? What is the DevRel thing? I just I don't know.
Speaker 1:I have friends that are DevRel's. I I don't I don't think it's a terrible role, and I think there are reasons that they exist. I just think sometimes that they're they're not properly scouted and hired. I don't know.
Speaker 2:Yeah. It's like, I think in most of the industries, they do hire professional people that are just, like, good hosts and good, like, MC.
Speaker 1:It's a skill, and it's not like an engineer necessarily has that skill. Yeah. Okay. I'm gonna stop because I'm just salty. I'm just FOMO.
Speaker 1:I missed this just looked like an amazing time, like all of them playing ping pong and all of that. It looks like so much fun. Okay. I guess we
Speaker 2:should wrap this up.
Speaker 1:I don't know. We've been talking for a while. Next. Jsconf is good. I'm gonna make a video about it.
Speaker 1:It's I don't know. I'm trying to keep it short. But it's like ten hours of stuff that happened. I couldn't believe how many community talks. So many community talks.
Speaker 1:They were happening in parallel too. Right? Yeah. There's just two stages. Yeah.
Speaker 1:The j and the s stage. It stands for JavaScript. I just looked at my other camera. I'm used to being on Twitch. Whenever I say something tongue in cheek, I always look at that camera.
Speaker 1:Like, JavaScript. They pointed that out. I thought
Speaker 2:it Are there any talks that stood out to you so far? What you've
Speaker 1:So they're just kinda all over the place. Like, I guess, one the one that stood out the most is there's somebody making, like, this it's like a music synthesizing library. I forget the name. Reactathyser or something. And he just did a whole talk where he's, like, making beats with, like, React components.
Speaker 1:It was kinda cool. Yeah. The rest of it, I don't know. Like, it's some of the DevRel's being DevRel's things. Like, they're a DevRel for a company.
Speaker 1:This talks about Vercel, but also, here's what our company does. But no, this is about Vercel. That's not they're literally saying, like, this is not what this is about. It's about Vercel and how Vercel enables us to make this awesome product. Let me show you this awesome product.
Speaker 1:Yeah. That's just the whole conference thing. I don't know.
Speaker 2:My feeling with that is it's cool to invite other companies, but just let them talk about how awesome their product is. Like, there's, like, weird thing where they're trying to tie it in. Like like, if PlanetScale was there, you don't need them to, like, tie it in a Vercel. Just be like, here's our product. Look how awesome.
Speaker 2:Yeah. PlanetScale is.
Speaker 1:Exactly. It's better for both parties, think. Yeah. Alright. Thanks again, Dax.
Speaker 1:It has been fun. Yeah.
Speaker 2:Thank you.
Creators and Guests
