On today's episode we chat about some of the fun announcements coming out of today's Next.JS conference. Vercel announced it acquired Splitbee to bring first-party analytics to it's platform. Next.JS 13 Introducing a redesigned approach to website layouts, data-fetching, and server-rendering. And last but not least, we were introduced to Turbopack, built by the creator of Webpack and Vercel. Turbopack is a Rust-based incremental bundler and Vercel claims that it shows updates 10x faster than Vite and 700x faster than Webpack.
We got the chance to sit down with Guillermo Ruach, Guillermo Rauch, CEO of Vercel and co-creator of Next.JS, about the news coming out of today's conference. The most interesting was a new product called Turbopack. You can read more about it here.
[intro music plays]
Ben Popper Hello, everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. We are having a very special episode today. I am Ben Popper, Director of Content here at Stack Overflow, joined as I often am by my wonderful collaborators, Cassidy Williams and Matt Kiernander, as well as my wonderful collaborator, Kyle, who I got to meet at our all hands earlier this year, and who will be joining me next week at the Next.js Conference in San Francisco. So hello, everybody.
All Hello!
BP Kyle, Cassidy and I and Matt have been on the show many, many times. But for folks who are listening who haven't heard from you before, give us just a quick rundown of what brought you into this world and what you were working on before you came to Stack.
Kyle Mitofsky Yeah, absolutely. I've been here since January. I absolutely love it. I'm on public platform, which means if you have used Stack Overflow and you have not given us any money, then you have engaged with the public platform side of things. So that's probably most users. In our product growth, that is the product that we kind of market out front and say, “Hey, there's a private instance that we can actually make money off of behind the scenes.” So certainly as a developer for the last 10 years, that's the core product that I knew and loved, fun to contribute to. It's so fun to be part of the organization and then open up the engine and kind of see all the stuff behind the scenes that you didn't even realize ran Stack Overflow. I think there are some takes online that Stack Overflow is a question and answer site and I could spin that up in a weekend, and there's so much complexity and scale at delivering that. And then there's also a lot of community here and building tools for the community that allows you to maintain a site with 70 million posts. You can't do that unless you have a ton of moderation and a ton of community effort. And that's really the silent driver behind if you go to a well-curated page, that is not accidental. That's intentional through a lot of community hours of volunteering and a lot of tools to unlock being able to do that. I've been doing kind of full stack web dev in C# stack, so in the .NET world which is what we use here so that's a good fit for my experience. I’ve been doing that for about 10 years, and eight and a half of which was with the Department of Health. That was my first ever dev gig and I was there for a long time and we built a lot of in-house applications to maintain our various programs and offerings.
BP Nice. So this is a fun thing for the pod. Next.js Conference invited us to come and interview some cool folks about all the news they're making and all the people who are going to be there. They acquired a couple companies and they're talking about how they're going to use them, they’ve got some fun stuff happening with React, and they've got folks who are coming from other companies like Google who are using some of these tools in interesting ways. So I will kick things off because I know the least about all of this stuff, but I do have a little something to say about analytics with the acquisition of Splitbee. So this says Vercel is bringing GDPR compliant first party analytics to developers. We here at Stack Overflow, I won't give you the full story, had to do a ton of work because of GDPR and Google Analytics. And so it would've been very interesting I think to have our own first party analytics in this way that was a little bit more malleable for us that might have allowed us to avoid some of the GDPR headaches to even see that built right into the value proposition and to have myself, having gone through it this year, seems like maybe this is something that is starting to affect people industry-wide where they relied on these huge providers for some of this stuff. But as GDPR raises its ugly head in a number of ways, you want to be a little bit more flexible and a little bit more first party. I don’t know, what do y'all think?
Cassidy Williams I am all for better analytics in general, just because with GDPR stuff, I think overall it is a good thing. It's just that people haven’t been implementing very ergonomic cute solutions to deal with it. And so things like Splitbee, things like plausible analytics, anything that allows you to get the analytics that you need to make better products but not just harvest data from your users I think is great.
BP Totally. And I guess I should have said this up top. It says with Splitbee integrated into Vercel, data is collected by your own website rather than by Google Analytics. So to be able to be a little bit closer to the system I think can be quite useful to some websites. Matt, Kyle, anything on this one?
KM Analytics is also very hard to test locally. You usually only turn analytics on in production so we had a number of challenges rolling this out and testing across all the different places. So that's not probably unique to our previous flavor of analytics, but certainly something that if you get it right and you don't have to change it, that's good.
Matt Kiernander The Google ecosystem works fairly well together, and when you're collecting analytics with Google Analytics and plugging that through to the various Google products that you've got, if your stack is kind of heavily reliant on that, I'm wondering how Vercel's implementation is going to kind of help facilitate that movement of data as well.
BP I guess one other thing I saw here that I thought was interesting is, there's Lighthouse and Google's sort of metrics for what is performant on the web and that can have a big impact on your SEO so people pay attention to that. But it also would be interesting, they're offering here a different set of sort of real experience scores. So you might have something to comp Lighthouse to, and that might be kind of cool to have two data points now about, what is the user seeing? How long are things taking to load? How many of them are bouncing and stuff like that.
CW I'll be curious to see what this real experience score thing means, just because it is funny to see some of the talks and presentations people have made saying, “I was able to make a completely inaccessible website that has 100% lighthouse score for accessibility,” and stuff like that. So any more testing that allows you to do performance accessibility, those sorts of things is great.
BP Right. That was funny.
KM I think even seeing other non-Google Analytics players in this space is really nice. This should be a nice, big, diverse set of analytics providers. To have an analytics provider that's privacy focused almost feels a little bit oxymoronic there. Analytics is trying to capture every single thing that someone does, but you can do analytics I think in a compassionate way that doesn't force your hand to absolutely try to track people. You just want to know how many visitors did I have to this site? Where's the migration going? If you're looking at things in aggregate, it really doesn't matter who's individually sitting behind the keyboard, and making sure you don't collect the data to be able to correlate that I think is a good stance to take.
CW Agree.
BP All right, so Cassidy, I know you were excited about some of this stuff and here Next.js 13 brings React innovations to the mainstream. What is the stuff that jumped out to you here?
CW I'll talk about Next's flaws, because I do like Next.js but the main things that I have not been a fan of are how much JavaScript it ships to the browser, even with an ultimate bundle where it's a static website even, and its router in general is not very flexible. Next.js 13 improves both of those so I'm always happy to see less JavaScript, because JavaScript is great but it can really make a page bloated in general. And then routing and rendering in general, I think that having better layouts and making them more of a first class citizen, like a lot of other frameworks like Remix for example does, I think is a good thing. And so I'm excited to see that kind of flexibility offered to developers.
MK I feel like it wasn't even two days ago where I saw Cassidy on Twitter complaining about the amount of JavaScript shipped with something. So I think very, very relevant and on topic.
CW I have opinions.
BP Matt, I know you were excited to dig into Turbo Pack. You want to unpack the Turbo Pack news here a little bit and then tell us what you thought was interesting about it?
MK Yeah, I thought the Turbo Pack announcement was incredibly cool. So basically it's built by the creator of Webpack and Vercel, and it's a successor to Webpack. Webpack is something that I've used throughout my career and have had a number of stumbling blocks with and frustrations with. And it's a great tool, but it's also quite complex and intimidating I think to new developers. So it's nice seeing another alternative and I'm excited to see what they do with Turbo Pack. So the big things around Turbo Pack specifically is their compiler infrastructure. So it's a Rust based incremental bundler. The second thing here is, I'm not sure if it's one of those –Apple and Nvidia are very guilty of doing this– saying it's 700 times faster than the last iteration of things that we did. And this time they actually say it's 700 times faster than Webpack. So I'm curious in reality how all these performance optimizations are actually going to impact the end users and us as developers.
BP I should say we're having this conversation and we're excited about the announcements. These are announcements and these are promises. We haven't benchmarked or verified any of this, so we're just talking about how we got a little bit of news under embargo. We want to chit chat about it and share with you. We are not vouching for the 700x claim or any of these others to be clear.
CW It is one of those things though where hindsight is 20/20, just from a community member perspective. I remember when Vercel hired one of the Webpack maintainers and people were just like, “I wonder why they did that because Vite is so much faster than Webpack. Why are they working on Webpack stuff?” Just because again, kind of like what Matt said, I think a lot of us have played with Webpack throughout our career for better or for worse. And it gets the job done but I've been very excited about faster build systems and things so that I don't have to rely on it as much. And so it was an interesting move, but again, hindsight's 20/20. Now that we see this coming out it's all coming together. It makes sense.
KM Cassidy, in the announcement they said 10x faster than Vite, which in French means fast.
CW We're all 10x engineers now!
KM It’ll be exciting to see if it delivers on that.
BP 10 times faster than fast, my goodness.
CW We’ll see.
MK Honestly, I might take back my excitement because I always did enjoy doing the Webpack build and then going off and getting a coffee or just kind of taking a brain break for a little bit. So if that takes that away, I don't know, maybe I’ll stick with Webpack. Who knows?
CW Like that XKCD comic where people are fighting with swords and it's like, “What are you doing?” “My code's compiling.”
BP Yeah, the compile time is important for decompression.
KM I will say, my kingdom for a fast compiler, because oh my goodness the amount of time I have to wait and go context switch and do something else while I'm trying to get this up and running, sure, you can take a walk break. That's nice and it's good to have a great excuse for that, but if you can just get into something that you're trying to do actively right away and you don't have to wait a minute for compilation or however long, there's been a lot of competition and resurgence in fast compilers over the last year or two years, and it's fun to see competition in that space because Webpack was the king for a long time and didn't really get dethroned and it's sitting on old tech. And no disrespect to Webpack, it absolutely built a lot of the web we've seen for the last eight years, but seeing a lot of competition around this in the last two years and people trying to get faster and faster builds– so here for it. That's so exciting.
CW It's also really interesting to see just Rust thriving in the web ecosystem. Turbo Pack is built on Rust and I think the Turborepo thing that Vercel also acquired is built with Rust and there's lots of build things that have more and more Rust in the code base and I assume that is using some web assembly or something to compile JavaScript-y stuff. But it's interesting to see how much that is thriving in the web ecosystem in general.
BP Yeah. Cassidy, you're definitely right. It says Turbo Pack is a Rest-based incremental builder that draws on the lessons of build systems like Turborepo. So it sounds like you're right.
CW There you go.
MK It'll be great because I think, to Kyle’s point earlier, it was incredibly frustrating when you were in the zone and you were in a flow state and then you kept on getting held back by these forced breaks where you would get distracted or you'd have to context switch to do something else. And if you can kind of eliminate that and bring that down to a point where you can still stay within that flow state and you're working and still incrementing at a faster pace, fantastic.
CW Yeah. And it's something where it's not that slow. I've used Webpack recently just this week where, yes, it's only like five seconds that I have to wait for this particular thing I'm thinking of to build, but that adds up over time. And then when I do something similar and it's in Vite and it does it in a second if that, I'm just like, “Ooh, speedy. I can just keep going.” And so once again, anything that makes things faster, anything that keeps improving our dev time is nice.
BP Five seconds is an eternity for you to click away to Twitter or forget what you were doing.
CW Exactly. TikTok is calling.
MK That amount of time gives you permission to click away. It's a very small psychological thing where if you know this thing's going to be up and ready again in a second or two, you don't have that kind of mental permission to be like, “I'm going to go check my email,” or, “I'm going to go and respond to that thing that I did earlier on.” It may seem like a very small almost negligible difference but I think it does make a big psychological impact
KM Telling on ourselves here, Stack Overflow does at times take at least a minute. If you're rebuilding you can get it under a minute. If you're building from scratch off just pulling down a branch for a PR that you are reviewing, that can take 32 minutes. That's a long time if you're doing four PRs in a day because people have a lot of stuff going on and you're trying to just take a poke at that work, that takes a long time just to see it, just to understand kind of what it is. It can lead to you just kind of smelling it and being like, “Oh, okay, I think that's okay,” and not actually running it. Actually running code is a really good way to review code. And so actually pulling it down and going through the steps, if it's two minutes sometimes I'm inclined to just kind of be like, “Okay, that looks correct. I don't see any problems there.” So yeah, five seconds, one second, I'll take the improvement. But as systems grow and you get really, really big apps–
CW Right, if it goes from a minute to 10 seconds, that's much better.
KM So that's where I'll take any speed improvements we can get so that once you have this big behemoth application you're trying to maintain, it still delivers some kind of dev performance in there.
MK I've got one more thing on Turbo Pack. A lot of existing projects, when they're built in Webpack, they have their workflows, it's been tinkered to the point where it works and people are almost afraid to touch it a lot of the time because they don't want to buck anything up. So I'm curious for when Turbo Pack does come out and people start playing with it, for anyone who wants to migrate away from Webpack to Turbo Pack what that process is going to look like. Because to Kyle's point as well, going from two minutes to 10 seconds, that's a real tangible improvement. But getting the kind of buy-in to be like, “Hey, we should try and move this across,” kind of what that is going to look like as well.
KM I will say here's my hope in this. I have no clue if this is going to be the case. Webpack is historically a very complicated setup, right? You can do it. Very few people who are working on solutions that use Webpack are actually touching Webpack as part of them doing dev on it. It's usually behind some abstraction layer that somebody else has already set up all the configs, all the sensible starting values. So like Create React App uses Webpack but it configures it. You have to eject out of there to write your own Webpack. It's very hard to actually get into Webpack and configure it. When you create a new Next app, I don't know what it uses now, I'm guessing Webpack, but you don't really touch a lot of that configuration out of the box starter kit. I'm sure people have situations where they do touch that configuration. Here's my hope, here's what I'm building to. I hope the conversion for Next app users is to just go upgrade to the new thing. We've taken care of the conversion behind the scenes. If you stuck with all our defaults, those defaults continue to work. Because that migration across technologies, you're absolutely right, Matt. It can get hairy, it can get complicated. If you set up a lot of custom Webpack routes and bundlers or plugins, that can be hard to move to a new build system. But if you're just taking an out of the box build system, hopefully it's just faster and completely transparent to you. If it delivers on that I'll be super stoked.
CW I do have a question, and I don't know if you know the answer to this, Ben. I saw that it said that it's Webpack built for the web and they've made this successor of Turbo Pack and it says that it's for enterprise businesses. Is this something that is only going to be available on Vercel for their enterprise users or is this something that'll be open source for anyone to try?
BP Well Cassidy, when I'm chatting with the CEO of Vercel next week, I will be sure to ask him and I will demand an answer to that because I don't know.
KM I did catch that too. I'd pay for a faster build time. That's it, I'll say it. It might only be enterprise people who get hit by really that five second thing. It's only if you're at 30 seconds that you actually care.
CW That's true, yeah, for the average user.
BP No, it's a good question and we'll bring it up. Forgot to mention, had a really fun announcement that we made this week– Overflow Offline, which we're doing in partnership with a great non-profit, Kiwix. Trying to just make it easier for folks who are learning to code or working with code in areas where they don't have the internet to have a great offline version of Stack Overflow that is up to date and easy to search and easy to read. So go check out the announcement. I'll put it in the show notes, and you can support some great causes or you can check out the open source stuff that Kiwix has and make some contributions that way.
[music plays]
BP All right, everybody. Well, thank you for hopping on with me last minute. I appreciate all of your insights on what we've learned, and we'll learn a bit more about it next week and then maybe some of you will get a chance to test drive it or demo it and we'll see if what they claim actually holds up, as well as chatting with some of the folks who are going to be at the conference. So stay tuned for a few episodes in that vein. And if you hear this next week on Tuesday or Wednesday and there's something you want us to ask, I guess shoot me a DM on Twitter and maybe we'll get the chance to ask it. All right, everybody. I am Ben Popper. I'm the Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. Email us with questions or suggestions, podcast@stackoverflow.com. And if you like the show, leave us a rating and a review. It really helps.
CW I'm Cassidy Williams. I'm CTO over at Contenda. You can find me @Cassidoo on most things.
MK And I'm Matt Kiernander. I'm a Developer Advocate here at Stack Overflow. You can find me online on Twitter and YouTube @MattKander.
KM And I am Kyle Mitofsky, a Senior Software Developer here at Stack Overflow. You can find me on Twitter @KyleMit.
BP All right, everybody. Thanks for listening and we will talk to you soon.
All Bye!
[outro music plays]