¶ Welcome and Introductions
Welcome everybody to the stand We have quite the list today and we're gonna be talking about Topic. It has been all over Twitter. The new uh next JS club. from Cloudflare Vi next. And with us we have on, we have Dane from Cloudflare CTO, correct?
Uh we have Steve. Steve, sorry, I do not know your position and Dylan of course. Most people here know Dylan, streamer extraordinaire. Uh if you guys could take a moment, maybe introduce yourselves a little bit better, that would probably be the best. That would be better. That would be good actually.
Uh anyways, uh sorry. Yeah, thanks a lot for having me on. Uh Dane Connect. Uh I'm uh the CloudFur CTO, been in CloudFor for uh a little over fourteen years, uh and uh uh trying not to break the internet every day. Okay then. Yeah, because when Cloudflare goes down, so does the
Uh I'm Steve Faulkner. I'm the director of engineering for workers, uh, containers, agents SDK, bunch of other stuff, about a hundred people. Um, so responsible for a bunch of our like developer platform products. Uh I've been only for two years, so Dane's got got a few on me. I guess we're going in order of seniority. Dylan, go ahead.
Yes, I am the uh the least senior by far here. Uh I'm an engineer at uh Cloudflare. I've been here for four or five months now, uh and working one on one of our AI and agent teams and As chat knows, I do a lot of streaming. Also one of the founders of TweetMesh and the Real Humans. So I mean Dylan Moscow. He was he was definitely not moonlighting, to be clear. Definitely not. There was no nothing during that time period.
¶ Vinext Origin Story and Goals
All right, so I think there's a lot of ways we could introduce this topic. So uh It'd probably be best just for everybody kind of getting up to speed. Why don't you kind of give like a pitch of what is Vinext and what is or what was like the uh goal for you going into this uh shall we say experiment?
I mean th the the goal is pretty much everything we do. We do it we do it for customers. Uh it's you know, for almost five years now it's been one of the biggest uh requests is how how do you make next Uh easier to deploy on Cloudflare. And you know, we recognize we have a slightly different architecture. You know, we have region Earth.
Deploy once goes everywhere. Uh, we have that applies different constraints to how you can build things on Cloudflare. I mean, there's always gonna be trade offs. Uh so uh, you know. We we understand that uh you know Next was built for uh more traditional environments and uh uh uh n no issue with that. Uh and so uh you know we've we've always been trying to figure out ways to make it easier to deploy on Cloudflare because that's what the customers are asking for.
Uh and uh uh actually last summer Steve uh uh pitched uh the idea that uh uh let's have one of the interns uh just try this. Uh he kinda had the idea that, you know, uh the the next sur the light surface area with with the next APIs actually could work.
Uh uh he thought it through a little bit and uh uh we brought on uh an intern who uh you know, he he gave it a good shot. Uh you know, intern's only here for three months. He he got a lot of the paid router uh surface area done. Uh and and uh you know we kinda put that on the shelf. Uh, Uh I don't know, probably probably more in Steve's garage. Uh yeah. Yeah. Uh and and then I I guess Steve uh uh uh you know, a a month a month and a half ago, two months ago, uh was I guess in his garage and uh
Uh said hey uh I I have a new I have an electric screwdriver now. Uh I'm gonna uh let's see if I can give it a give give it a go uh uh and and and finish this project out. Teach production's down. Yeah. I don't concern myself with such matters. What do you mean production doesn't concern you? I've shipped thirty-seven Nay. Thirty-eight features today. Teach always makes the mess and I always clean it up. I'm better than that. I don't have to be a janitor. Someone has to be the adult around here.
Who who is that? It's me, your Westerlay godfather. John John Carmack? What? No, it's me, trash. Oh. Wait! Are you here to finally get management to understand software? What? I'm a Westerlake godfather, not a miracle worker. Oh, then why are you here?
I'm here to tell you about Sear by Sentry, the world's first AI debugger that actually has access to all of your logs, stack traces, code, commit history, and more. Code breaks, but you can get the fixed faster with Sear. Who are you talking to? What? Back to the stand-up. Build with AI, fix with century.
¶ AI's Role in Vinext Development
Yeah, it was it was really for me it was all about AI, right? I mean th next and sort of applying it to VEIT was the problem that I ended up picking, but it was more about like how can I push all AI in all these ways and these limits and Can I can I just take it further than I've taken any other project? And so it's just sort of the the right problem at the moment. Make NextJS for Cloudflare. No mistakes. Like what what was the what was that experience like?
I he w he was excited. It was one of our, you know, interns is m more ambitious uh than most and he j really wanted something big and juicy to try and so I said, Hey, here's a big juicy thing. Um, you know, see how far you get and and honestly like w we scoped it initially just to pages. I didn't think he would even get to touch App Router before, you know, three months. And yeah, you he made a decent amount of product on uh protests on pages. Like it it did kind of work.
Um at least the basics and so yeah, it it at least showed me that there was something there, like a thread to pull, and then it was sort of like okay, now AI is here and can actually, you know, do the rest of the work. W at that okay, so I I ha ha how do you make the decision to put something on the shelf at that point? Because you have a somewhat working version of it. You have a bunch of customers wanting to use it.
And but you have to maintain it afterwards. Like at what point, what was the line that said, okay, we're willing to maintain? Yeah. Uh well f first off this thing was just Pages Router, right? Which is you know, th there's a bunch of people out there that still are on Pages Router and love Pages Router and want to keep using it. So um you know, I I couldn't see a world where we would have just like done a Pages Router only version. Um but again this is where AI just kinda keeps it.
Coming back into the story, uh if you go look at the the V Next repo We maintain it with AI, right? We have AI bots that are doing triaging, we have AI bots that are reviewing all the PRs, we have AI bots that are doing security reviews, we have now AI bots that track the next JS repo and then open up issues back into our repo when we find commits that are relevant.
¶ Open Source with AI and Forking
So it's like Part of why we could keep doing this is because of AI too. It it's it's a kind of a bigger experiment on on on how you make open source work with w w in in the AI world. You know, a lot of open source maintainers are s really struggling with uh um uh all the pull requests uh uh you know
to have to deal with the compl the c comments and uh you know, is there more a sustainable way? Uh and and so far th this has been pretty sustainable. Like I think there's over fifty committers Uh who actually when we say they're committers, it means th they they wrote a plan for an agent to uh implement some
Uh you know, they're still using all AI uh implemented code, but you know, they're still committers and they're helping move the project forward. Uh uh but then uh you know then you have their agents talking to the GitHub comments.
Uh a and and and so, you know, w we don't have it all figured out. But I I I feel like there's a model here where uh uh you know, you're applying uh uh AI in any any sustainable way to op open source and and um Yeah, I think so that's and that's kinda the beauty of open source. I'd uh so sort of like related to that. You know, what so I did a lot of stuff uh with NeoVim.
Still make it so that it wasn't like completely different experience compared to using Vim, still applying like patches and a bunch of other stuff. I think actually, you know, NeoVim is experimenting. Some stuff in some of the same vein of figuring out like, hey, how do we not have to spend all of our time like merging over patches from Vim?
¶ Navigating Next.js Compatibility
Like there's a few people who you're like, How does this person even do all this? It's crazy Um but like how you know deciding like okay to have this this fork and everything. Like how do you decide what features from next make sense to go into this? How do you you know triage what things are most important, etc. Like I because that that part for me is the really difficult part about like having
Not so much like, hey, we have this new piece of code, but you also need to decide how it continues to be a drop-in replacement, is a drop-in replacement for certain aspects or what. I'm interested on that like part Well I mean I think that's part of how you define the mission of it, right? Like the mission is it to be it's to be a uh this it's not really a fork. This is a you know i i i it's just the the the next API service, the official API service.
put over a different runtime really th the V kind of runtime. So we actually are are not accepting uh uh pull requests and feature requests for things that fall out of that. Uh we are we are following Nodex completely. Um versus today uh uh uh we launched uh uh M dash. Which is a s I I would call that, you know, it uh probably name these different kind of forks, so you know I'd call that more of a spiritual fork.
of WordPress where you know uh it i it can import WordPress. It it looks a lot like WordPress in a lot of ways. Uh but you know it has a lot of unique things that uh go off the traditional path and it you know and I think its roadmap over time will diverge uh uh uh diverge more, like more like a traditional uh force. Um you know, I mean there's a long history of how you know different forks evolve. Like you know, uh you know you know, WebKit came out of uh the you know a Linux ecosystem and then
Chrome obviously uh made it, you know, blink and uh um sometimes they diverge and I mean honestly if we didn't have forks we would still be all on IE probably, right? Uh uh you know, or or the n the nodes ecosystem, right? In that case. uh node, you know, I obviously had the fork to I.O. and uh um you know it made some points and uh it actually brought the community back together in a better place uh when it kind of re-merged back together.
Um uh so so I mean i in general I think it's all healthy. I I think uh uh uh it just you can do it at such a different rate uh and cost uh uh today that uh that that's really the the biggest part of the story.
What are you what are you guys gonna do if you have to kinda compete against some sort of surface area that goes against what you're doing?'Cause I know you made like uh building was one of the big things where you made building work better because it doesn't build every single artifact if they have
thing instead it analyzes your traffic and it's like, Hey, we're only gonna build ten percent of your assets because if we do that we're gonna cover ninety nine percent of traffic. It's super fast in your build time's not forty five minutes. What are are there things they could add that you would have to say no to? Like is there a world where Vynext is actually a com like a different fork? It no longer maintains the same surface area? Or are you like hard on same surface area always? Yeah.
I would say right now we're hard on same surface area always, right? I'm I'm not trying to create like drastically different things. I would I would say like never say never though, right? Like I mean we're gonna see where this goes. If they introduce something that completely, you know
is like against what, you know, like we want to do or or against, you know, maybe like what we consider a best practice for architecture. I mean, we'll consider it, right? It's it's gonna really depend on the thing and what what is needed. I I'll be honest, I've been surprised how many people have come in asking for us to fix bugs in next or things that Next has said it won't do, right? Um there's actually a pretty active discussion right now. A a feature from Next9.
That apparently a lot of people really liked uh that they deprecated. There's a bunch of people that are. They they switched from get initial props, which ran on the client and the server, to get server-side props. I I think I'm hopefully getting the details right there. And a lot of people still like get initial props, right? For various reasons. So there's a a vocal community that wants us to add get initial props. I don't know if we'll do that one since it's it's deprecated and we're
We're still trying to keep true to next, at least next sixteen, like where next is at today. Um but it's the kind of example of things that are coming in that people are asking. There's like smaller ones, like little behavioral tweaks where somebody maybe says, Oh, Next should have always done it this way. Well you just do it that way instead. Um but so so far it's been we've been really holding the line of like let's just do it the way Next does, because we want it to just you know match one.
¶ Hyrum's Law and Undocumented Internals
So there's there's a uh there's a kind of a funny law that in in programming we have a lot of laws in programming, right? One of them's Hiram's law, which is effectively that the internals there'll eventually be features that aren't documented. that you rely on, that people rely on. How have you ran into any Hiram's Law that's like a non document?
But just the way that it was programmed that people are like, Hey, this doesn't work. Like Vercel does I can launch this on Vercel but I can't do it on Cloudflare because of some funny internal if statement that you just don't have capture. I'd say uh some of that's coming from the community packages, right? So things that are people have plugged into the next internals, right? Like other vendors
um other people supplying like, you know, things that plug into your NextJS app automatically and hook things in. That's where we've probably hit the most friction is that they either were knowingly plugging into n undocumented Next internals or They didn't know they were and now they're finding out right when they try to come use V next. Like when someone imports like, Do not import this or you will be fired or something like that and they're like
aren't supporting do not import this or you will be fired. That's literally the key to my workflow. You'll you'll see it i neck if somebody imports from next dist, right, like that's like in next x you know, internal distribution, right? That's where they that's where they they usually end up into trouble. Do do you guys support importing from Vynext slash dist, or is that just a something that you're like, no, we will not do internal
Right now, no. We have not done it yet. But I again never say never. Um w Dan said at the beginning, like we're doing what customers want. This whole thing is about like how can we give people a better experience. uh running Next.js like everywhere and on Cloudflare. And so if there's enough demand for something, we'll at least think about it.
The the the spike the spike on new new users that day was, you know, one of the biggest uh uh one day spikes ever. Like uh um I mean th you can see that the there was there's pent up demand uh and you know that that's why we do why we do things here.
¶ Vinext's Future and Production Use
What's the like you know, obviously right now it can't do literally everything. What's the path or like what would make you guys feel like it moves out of like an experiment into something that's like not experimental or
We're we're working through that now. So probably the big one you already mentioned is is proper um uh pre rendering for everything. I mean some people still want that, right? They don't want the percentage pre-rendering, and so uh we've got some stuff going on right now for that.
Um there's some ways just some like a lot of little like things that Next does a little differently and we're trying to figure out like do we want to do it a little differently? The ha you know, some of these things don't map cleanly between VET and TurboPack, right? So there's stuff where we're trying to still work out some details. Um it's all small stuff.
Like a hard navigation might happen in our case, but it wouldn't happen in Next because, you know, they do some sort of like soft navigation, you know, hijack into what the browser's going on. So there's a few examples of that. It really mostly works, right? Like if you look at like the bulk of what people are, you know, doing with next and not sort of the long tail of new API features, but you know, routing and hydration, server side rendering, all works. I'm I'm interested a little bit in sort
¶ Managing AI-Generated Code Quality
You know, you said a lot of it is you know, people with their AI agents. Like, I'm interested in knowing like how do you guys manage that from like a hey it's a fast moving thing we're experimenting people are running this in production how do we make sure we don't just like inslopify our entire like app or release
Yeah, I mean I know that it's all the rage these days to add thirty seven K lines of code a day and you're like if you're not doing that you're getting left behind. But I'm wondering how you guys, you know, prevent uh like that
Yeah, so I'll I'll give a couple of examples. Um I mean number one, the we rely on the tests, right? The you know, we ported a bunch of the Next JS tests, not all of them'cause they didn't all make sense to port, but we ported a a huge suite of tests and we're still porting more.
So it it's just having that confidence that these tests are doing what they think they do. So we're not breaking users. Uh we have end-to-end tests, unit tests, and then we kinda have a whole suite now of uh like smoke tests that we run against production deployments.
Uh the other thing too is there's been a couple times where I've I've had to say sort of go in and and unslopify things with AI. So um probably the best example is that there was a part that was about a 2,000 line uh template string in there that was like a lot of logic got
like, you know, nice. It's like clobbered into this thing. Mm-hmm. I'm I'm not gonna lie, it was pretty bad. And I and I just sat down one day and I was like, we cannot have this in here. This is unmaintainable for humans and AI. So I spent I spent the weekend kicking off a bunch of PRs just bit by bit.
got stuff out of there, split it out in its own modules, um and so like just going through and finding where the slop happens and then sort of saying, No no, no, I'm gonna spend time deslopifying that part. I've actually seen that exact thing many, many times, even using Cloudflare like Hono.
Just saying like, hey AI agent, let's go build out this thing. It's just like gotcha dog. It's just one gi it loves giant HTML strings and or JavaScript strings and then it becomes impossible to start debugging because then it's just this crazy cycle. How do you actually know? It it's it's tough. It's a tough world. It well it's no linting, no type checking, it's just like the wild west.
Yeah, just interpolating strings. Yeah, I'm like that's my favorite way to do this. This is this is why I write full stack JavaScript is so I can throw away JSX and I can use template strings. Steve, I actually have a a good question for you because like you probably Hey Dylan, you're you're a guest here. You're not an interviewer. What the heck? No, I'm just I'm just kidding. This is my Dylan, I'll allow it.
I we've talked about we talked about this a little bit early when you started the project, but I wanted to follow up and ask the question again now that you've like had you probably have more experience than most people. in driving a large code base with exclusively AI and like finding slop like this template string literal that you were just talking about. Like have you found good strategies for like
¶ AI Guardrails and Engineering Codex
Building tooling for either the repo CI C D or like harnesses to like prevent the same mistakes over and over again? Or like what what are like your tips for like Like there's a whole conversation to be had about how to properly do like agentich development. Like I'm I'm very much in the camp and like I wanna keep my work small, I wanna keep it isolated and I wanna review every single line of code that goes in, but like
Vinex being like a good experimental repo and like how can we like really maximize this? Like what have you found to work on putting good guardrails on the AI and getting good results? I I mentioned already test, linting, uh stuff around well formatting matters a little less, but I think it still helps, right? So some of the diffs aren't, you know, ridiculous. So we we've put a lot of effort into that. Um
I honestly like I I would say once a week I just go ask AI like, hey, what's the sloppiest part of this code base and how can we fix it? Right. Um I think that's an important part. We also I do have a a scheduled process that updates agents.md every few days. And so it goes and looks through PRs, looks through the comments on those PRs where we had AI uh, you know, f finding stuff and saying, Okay, how can we make sure we don't, you know, make these same mistakes again? Um
I i this stuff is pretty wild. Like every time I I think I'm like, Oh, I'm kinda hitting the limit. This is like it can't figure itself out the answer just kinda seems to be throw more AI at it. And it it sort of like rescues itself right from the brink. Um I don't know. So And this has sort of become like a lab for us for, you know, uh how we do things internally. I mean internally w you know, we are still very much in the
You know, engineers write the code uh uh with AI they commit it and you know much more traditional still uh you know pull request uh uh process via via human. Um uh but w with A AI assistant of course.
Um and you know we have strict rules like no vibe coding. You have to read every line of your code and you uh you basically attest to it when you you do it. Um Uh but you know w we're we obviously see that things in this project where we want to apply internally and try to think about how you do the guardrails not on a you know a project that has one main maintainer and uh uh versus like you know uh a two thousand person engineering org.
Uh and the things that we found that work real well there is, you know, i th there's linting, but there's also uh uh you know how you build. And so like we I mean we've been working internally a lot on what we call like the engineering codec. which is a set of RFCs that get uh kind of rolled up into a kind of like ten commandments of uh well a lot more than ten uh uh on uh uh uh on how you build everything and then uh you know an AI reviewer internally
Uh does it just do a security review, doesn't just do a uh you know performance review. Uh um it actually goes over the codex and says, you know, i is this how you build things at Cloudflare and kinda reviews those and some of those things are are are things like, you know, kind of Steve you know No long HTML strings, uh you know, I think obviously those are sort of things that w it would catch and uh hopefully kinda put the a the the AI back to the the PR reviewer back in you know.
back back at it to to review it. Um but you can see that that those things can kind of get uh applied to more pure agentic workflow in the future as well to those kind of guardrails. But I mean y you have to Treat the AI like as if it was another engineer. I mean A AI is kind of just making us all f clean up a lot of the tech debt that we had where we our readmes weren't up to date, our comments weren't good, our code wasn't structured great. Uh um you know, AI wants the same things as
You know, any human developer wants when they come into a project really. Uh um so realistically, I think that's a good idea You're obviously approaching Vinex much different than you're approaching everything you do in
¶ Limitations of AI in Low-Level Dev
Right. Uh I forget I forget the name of the the big the big edge. You had a name for it. It was in Lua for version one. It's now in Rust for version two. I forget I read in so many of your blogs at this point. I know there's a name for it, but uh
Could you ever would you uh be okay with people trying to take the same approach that you see in Vinext into that area? I think it I mean today probably not quite just because I mean uh but but you I think you'd have to a whole different set of uh test suites that that uh that uh
Just the the level of detail of of writing something that is so uh uh specific to our hardware so that we get you know, every CPU cycle is, you know, perfectly timed. So we c I mean the I mean it's the only way we can run at our scale and offer so many free things is i if everything is kinda perfectly a line there. Uh that takes uh uh
a lot of innovation that uh you know the that the you know I think the AI is still good at at at how you copy existing patterns and you replace it. I still haven't seen AI, you know, invent a new algorithm uh uh or invent an a new way where like you know building f l we also have patches that go all the way into the kernel that change how IBv six hash look uh Ibv four hash looks uh
happen, right? Like AI wouldn't know that in order to build this, we also need to do a kernel patch uh to uh uh to to change how we uh you know do do these socket lookups, right? Um so I mean I think the level of complexity and a i i i i i is a little different in those cases.
Do you think any of it also is different like For this one a lot of it is there's already a well defined like shape and stuff that you're trying to match against versus like, Hey, we're starting a brand new greenfield project like
I've seen it go off the rails a lot more often when I'm like, Hey, like, let's just write this and I say like, Okay, go and it spins for a little bit and it comes back, I'm like, This is So bad I can't believe that this generated this as opposed so I'm wondering like your thoughts on I is this like a particular kind of repo where it's special that this kind of strategy would work compared to like regular I'm driving my own product, I'm driving my own thing, we don't have this set of constraints.
Like an API? Right. I mean, in some ways there already is a spec for this out there that AI knows how to kind of follow and uh go through. Um I mean uh uh you know, I I I can think of a few internal projects that uh have existing shapes that we we largely can do that with, but you know, so many things that we do are just uh you know, they they don't have comparables out there, right?
I I I'll like middle ground this one, which is I I do think having the next test suite was a really good starting point. But now now that we're into the territory of having to really make decisions about uh sort of more architectural things where maybe that the surface area is the same but like underneath the hood, what are we doing? Are we doing things optimally? Are we doing things that make sense for VT and not things that make sense for Turbo Pack?
Like it's it's almost like we've had to bring the human back in a little bit more in the loop, right? Where now we're actually having more discussions about like, okay, is this the right way to do it or not? And j not just letting AI go wild at the test suite. So um
¶ Evolving Role of Human Engineers
I definitely if there's anything I've learned from this, it's that humans, in my opinion, aren't going anywhere in software development. Um, but our role is gonna change. I I mean I I still think there's gonna be over over the long term, I mean more engineers, not less. Uh uh you know
w we see people wanting to add engineers in our legal department, in our finance department. Uh um uh you know uh uh the number of places that you need engineers to do, you know, the thinking the architecture. I I met with a bunch of interns this this morning and I said
You know, I I w we talked about how like how what they do versus what someone came in five years ago is gonna be different, right? Uh uh, you know, uh I I encourage them to work on their communication skills, their their writing skills. Uh Um um uh their you know their their problem solving skills.
as opposed to just, you know, expecting to be in front of a computer and taking a JIRA ticket and and and, you know, uh uh uh solving it. Like uh uh you know, y you have to be ready to to do higher higher higher level things. Uh but I think that th there's definitely gonna be a role and a need for that.
Yeah, I mean uh very little of my career has felt like I had a clearly scoped piece of work that I could just take a geoticket off and like do it anyways. That always seemed like I guess there were people doing that, but it always felt like that's weird. I've never had that experience.
at work where it was just like, Yeah, you just here's the well defined task that's obvious what it's gonna do and how long it's gonna take like just go spend your time on that and come back to us later. Like that didn't I don't know. For me that was like not really part Like year one of working it felt like. I've had I've had that happen once.
And uh I realize now like looking back on that, that's also the same thing that I did uh T D with. It's because it was so well defined that we had to sit down for so long to come up with There's like, oh, T D D also works in this situation, which probably highly aligns with this type of approach. It's like, oh, we already can build out all the constraints and the interface and everything. Therefore everything just works. And now it's e like if I had AI back then I could have just said go.
Um all right. So I guess I kinda wanna switch gears a little bit and the more of this uh, you know, library slash I what what do we call framework? I'm not really sure. I never know when to call I don't wanna, you know, use the F word when people get really offended about it. Uh I know. It's a or meta framework. It's an MF. It's an MF or uh We do not say that on this podcast. And so I'm actually curious what that was like for you.
¶ Public Reception and Vite's Impact
Uh I I can go. Uh it I honestly like I I honestly I saw a lot of the Twitter stuff, but I tried not to pay too much attention to it. I think when it we launched this, I actually like just turned off my phone and like went on a walk with my kids or something like that. I was like, ah, I'm not gonna pay attention to that the rest of the day. Um
I I wanna build something that people like. That's it. At the end of the day, like I wanna build software that's useful for people. So I've been very focused on like the people that are actually getting value out of this, right? I mean Dane said, you know, fifty plus contributors think at this per point we've merged like four hundred plus PRs in a month. I mean this is like an active project and so
The reception in my mind has been really good because I see people using it and getting value out of it, right? And and people outside of Cloudflow, to be clear, right? I mean, that from day one, this has worked anywhere. It's just a VT plugin. So you can VT start and run it on any server in the world and it just works. Um so I I think I've been very focused on that aspect of like if I can make software that people enjoy using and I'm gonna keep doing
I I mean i as you said, it does go back to the customers for us. I mean uh uh obviously I I I I mentioned that uh it was you know, the number of new users and new customers came that day was uh it was a just a a huge spike. Uh so which, you know, that's gratifying to know that people are using it and uh uh you know the double different metrics on you know what could be success there. Uh you know, uh uh
num number of active developer voters for us is is really important. So, you know, that was a success from that. You know, um uh all the Twitter uh uh No, i i it is what it is. Uh i i i i i it's uh you know, it can be a little fun, um uh you know uh uh but uh uh you know i i it's it's short lived and you move on and get back to work really. The I think the interesting thing here for for me too about like the reception has been around like VET, right? I mean
Basically all the frameworks except for Next have standardized on V. I mean I think that's just how it works now. And so you you know Next has sort of been telling everybody for years like, Well we'll use TurboTaca back'cause we have to, because it's, you know, whatever, better or faster or all these things. And I think there's just been like this pent up sort of latent sense of like, well, what if you had just used VET? And this answers that question.
So when I built this, I definitely did not spend any time on performance. uh or sort of like making build times fast. That was not what I was trying to do. I was trying to get the breadth of coverage with the API. So it's a testament to VET that just literally the first version of this was six times faster. Right. Like that is like that that's How powerful V is and how good it is as a bump. The the I mean yeah, I mean a what haven't built uh just the you know uh
how many people have been able to build great things off of it? I mean uh including like you know, Astro, right? Uh uh um i i is i is this is really more of a story about how great Vita is, right? Like i none of this would be possible. Um uh w without that army m m you know, maybe it w it would've just you know been a lot more tokens, but uh uh you know, I think the fact that a design like that has been able to
uh kind of get you the ubiquity and uh and still remain performant and uh i i it's pretty amazing. We've got I would say like a wide uh wide range of devs that watch the pod. Can you
¶ Understanding Web Bundlers: Vite vs. Webpack
to people who are not in the web dev world, why is there a thing called VET? And then why is wh and also why don't people use VET and they use other Oh, I thought for sure you were gonna say and why isn't it pronounced Vipe? It is Prime because I knew that was your one and then you didn't even go. I'm trying to be polite little weak. It's clearly Vite. Okay, keep on going. All right, that's it.
It's it's funny you asked this question for like people who don't understand like web dev, and then I'm like can do I we have an hour for me to spend talking about like the history of bundling on the web because you're like do we run. And then I want to Okay. Gulp. I would love to start with Grunt. Golp was one of the greatest build tools of all time and I will die on that.
I agree with Dylan. Dylan is correct about this. I don't understand. We can't just use make for all this, to be quite honest. I there's a group of people that agree with that. I still use I do have a hot take about make. I think make is overutilized in developer ecosystems outside of web dab outside of web dev and severely underutilized in web dev. That's my make hot take.
All right. So for those that have no idea what we're talking about, you didn't want to follow up on the hot take process. No, we're not. We are so far off. We need People are still like three quarters of our audience are gonna be like okay, so what is Vite and why do they keep talking about gulp when I asked them about Vite?
It's a very convenient. That's what I'm saying. People actually don't know. I will do my best to do this. Okay. So when you build a web application, you need you have things that need to all get bundled together and deployed, right? So you have your HTML, your CSS, and your JavaScript. Right? Papered over like ten other things. But like let's just say most of it is that.
Now, you need something that understands all of these things and the relationships between them and then is capable of basically admitting something that is just here's your deployable site and you can deploy it to the internet on anywhere and it'll just work, right? So over the years there have been many takes on this and for And many iterations and things come and replace the thing before it. And the the last big thing was Webpack, right? So webpack
for a long time was sort of the king and everybody was like, okay, you use Webpack to take your raw source files and turn it into something that is optimized to be an actual website. If we deployed raw source files to the web, we would have all kinds of problems, right? Which there's people that think you should just do that. But we're gonna like ignore those people for a second. Let's go, DH. All right, keep going. Sorry, sorry, sorry, keep going. So then, uh, Webpack has got, you know
Uh you know, again I'm I'm sort of like offending people left to right. There are people that think Webpack got slow and, you know, was hard to configure and had all these problems, right? And so there was a next generation of things that kind of decided to try to replace Webpack. Uh there's things like parcel, RSPAC, various things. VT is one of those things and VT
And again, I'm gonna just sort of like blanket statement this, kind of just one, right? So Vit is the underpinning bundler for most frameworks today. I would actually say any popular framework besides Next.js uses VT. Now uh
What next did was build their own thing in Rust called Turbopack that they saw as like a spiritual successor to Webpack. I think one of the original Webpack maintainers is very involved in TurboPack. And so they sort of had their own take on what this has looked like, but nobody else ended up using it besides.
Um and so that is where V comes into the picture. And so there's been this like sort of very simple fork in the ecosystem of whether you use Next and TurboPack or whether you use some other framework and use V. Or you just use VET by itself. Vit is actually very capable on its own. You don't need a framework you can just like use VT, has very good sort of primitives and APIs. You can just deploy a React app on Viet and it works really well. Does that make it a meta framework? Okay.
I mean, Dane, we only have we only have one rule, Dane, and you broke it. We don't say that word here, okay? Uh to put it maybe help color some people's perspective, if you have a language that was invented beyond two thousand and eight, you typically the language it's also provided all the tooling. So Go has its own tooling, Rust has its own tooling, Zig has its own tooling and all that
Uh some of the older languages you don't get all the tooling kind of also thrown into it so it gets really complicated. Everyone knows about, you know, Java. Java was very, very difficult back in the day. C is very, very difficult. Uh as you get you huge build systems devoted to it and JavaScript is the exact same thing. There is no uh you know, committee that owns the web. HTML CSS and JavaScript.
These are all individually, you know, developed items all falling under the W three consortium and some and T C thirty nine. Multiple c you know multiple things are all doing it. And so they get a lot of stuff done fast. Yeah, so that means tools
There's not like a department of tools. So everyone kind of makes up their own tool, and then some of them got popular. There in fact was even Snowpack at one time, which I think got renamed to Parcel potentially. I can't remember. But there's been a lot of a lot of bundles. ours then? Yeah. If there's a there's a small chance, T J. I fully support it. So We've got just one more just one more framework, bro. Just one more framework.
If you do that I will fork V next and then I will rewrite V next and then do things. V even next or wait or we have to change the prefix, right? Because the the VI port. Yes. We X A X Nade There we go. All right, so
¶ The Politics of Frameworks and Forks
How about some of the sentiment? Like, did you have any uphill battles in the sentiment change? Or did w was there enough social pressure that you had to Did you feel any of it? Like not just like hey, we put our heads down, we moved on, we had a great customer day. Was there any fires you had to put out or things you had to take a little bit more time on kind of explaining your
So so I mean we have a ton of respect for the Next JS team. Uh we we're working with them closely. Uh you know, a blog recently came out about uh Next adapters that uh uh uh w w we we helped work with the with the team on. Uh I mean they built a great product. I mean the testament to just the number of developers that use it. Uh you know uh um uh I obviously by tweet with a little tongue in cheek.
um you know, uh uh um uh it was not a meant to uh uh offend uh anyone. Uh just I mean we do have that huge respect. So, you know, we did spend a lot of time with the team and uh making sure that, you know, they knew we were committed to uh Uh both the next adapter. Um uh uh uh and that we are gonna be still committed to that'cause we've been working with them on that.
Um and you know uh uh I and we're still very excited for for that to come. I mean uh s uh and Steve and his team and uh Fred from the Astro team uh all spent a lot of time uh uh with with them on on that.
Um and and and and and we think they're doing you know great work with the adapters and uh um you know uh and you know a lot of this is this is how open source works like uh uh you know uh uh And you know, when adopters gets there, obviously, then you know, maybe we won't s we'll just support V next and uh uh uh and and pure next as opposed to also uh there's a whole nother thing we haven't been talking about open next
Uh um but you know, th I think th this is the the the the pressures and fork forking i is how you kind of push back innovation when there's not uh you know, complete uh uh community support for the direction that you wanna take something in. All right. Uh and then I I did want to talk a little bit more. I know T J you kind of alluded to it earlier, kind of about
¶ Challenges of AI Project Management
this whole like using AI on a purely on on the project. Has there been any downsides, besides for some slopification, has there been any downsides or things that you're finding frustrating in this more purely AI approach to building something that is largely customer? I yeah, I mentioned slopification. I I would say Sometimes I just feel like I'm a little babysitting everything too much, right? I've got like maybe ten different workspaces going and they're all kind of
going along in the background and then I'm lo I'm losing track of what's doing what and then I go check in on it and I'm like, Oh, like, what did you do here? You know, you just went down some weird path and so it it it definitely feels like right now I'm I'm sort of this glorified AI babysitter and
And I wanna believe that like as these agents get better, the agents can do more of their babysitting for themselves. But right now it feels very much like I still have to be like sitting there like minding them every day. Um I hope that's not how you describe managing your own team, Steve. It's uh it it it's sort of interesting because like Yeah.
I I gave a talk at a at an event in SF about this and and sort of the contrasting the difference between managing humans and managing AI. I mean AI is better at taking feedback than humans are. Right. I mean you can just tell an AI it it did a bad job and it it won't get mad at you, right? Um but also like So it it's it somebody asked me, they were like, Oh, you know, is is your management skills translate? And I said, Not really, right? Like, I mean, humans.
Hu humans are like squishier, right? And we need like sort of more like thoughtful feedback in AI, you can just kind of say like, uh, this this sucks, just do it again, right? You know, and it'll just do it again. Um so it's been interesting. Uh there's a less overlap there than I thought there would be.
We were just laughing about this recently. Prime and I were working on something and he like told like hey move this thing to the left and then it did it and he's like no put it back on top. And I'm like, I'm just imagining if it was a person on the other end.
Yelling at some junior dev and it's like move the couch over an inch to the left, no your other left kind of situation. But the AI doesn't care. It doesn't care. Doesn't care at all. It'll it'll just okay, I'll put it back on top, no problem.
It it's interesting to see the range of outcomes, right? Like like if I if somebody writes a document for me and and you know I say, okay, this isn't very good, you need to make it better. You know, maybe it'll get a little better, right? But somebody's not gonna like rewire their brain overnight. But AI really
kind of can. You know, you can literally say, like, no, this is entirely wrong. Start over and and it can do something entirely different, which you hard humans are they it's hard for them to make that level of adjustment in a relative. Um like I don't have a takeaway other than I'm still trying to figure it out.
There's this kind of process where, you know, they they say that writing like how you write is how you kind of express your opinions or how you think through stuff, like it's kind of like one of the big signs of intelligence is your ability to write out your thoughts. Uh'cause you have to organize'em and actually go through stuff. Without the
Kind of just also just being vibed out where people can't really actively know what the interfaces are, or maybe you're not as familiar with them because a lot of it is vibed out. How do you kind of come up with better ways to work? when these layers are becoming more and more fuzzy because you don't look at'em every day. You kind of look at'em
Well, we can all agree we look at them less than we ever would, say, five years ago. So how how do you know that you're even building the right direction at this point without like that constant daily, every day thinking about it like in the trenches, not just from a high level view?
¶ Cultivating Experience in AI Era
That that's where like experience probably comes in, right? Like I it I'm almost at a bit of an advantage there where I've I've been in this space and working on these problems for so long that I have a lot of strong opinions about what should be done and how it should be done. Even if I'm not writing code every day, right? Like hasn't been my job for a while, but I still have opinions about
the JavaScript ecosystem and how things should be working, right? And so there has been times where the AI the AI will happily go off and build something that is wrong if you just let it. And we've had that happen on this project.
And then I have to step in and say, like, no, no, no, no. I am a hundred percent sure that we should do it this way because I have, you know, fifteen years of experience that tells me that's the way we should do it. Right. And that's where honestly some of the other people who've been involved in the project, I think
have you know, like we we have some fantastic contributors, but I think there's been a couple cases where they've just went and built a thing because somebody asked for it or AI just said, Oh, just do it this way and they don't have that like depth of experience to say like no no no this is wrong. We're not gonna How do you think people are going to get that experience it like in the in the future? I think ab I think about this a lot and I don't know the answer, right? Like I I
I have thoughts on this. I so I have uh a more mid level junior dev on my uh Uh so we we have a a mid level junior devil on our team and like I I I mean Prime and I talked about this when we were in San Francisco for probably thirty, forty five minutes. Like it I I think it's a real Because, like, how do you learn this stuff without like just struggling through it and making mistakes over and over and over again? But uh like the process. I've been finding working. One is like
We've been doing like we'll have like I mean the whole team is like basically leaned into like agentic programming, right? But like what we'll do is we'll push a plan or a spec PR up first. Like literally just the markdown document.
that somebody on the team iterated on and you know they know the feature they need to want and then we'll review that markdown document. Like NPR humans doing normal code review. And this has been like I think this has been a really good way for knowledge transfer because like with experience you can See one like you can just know, especially like when when when you've done enough.
like agentic programming. Like you know where the clanker is gonna go off the rails. You know where GPT five four is gonna go write some stupid is record or normalized function. Bro, it loves this record. Dude, normalized is crazy too. I literally have went rules blocking it. Um I'm pr I'm pretty With that to get a few extra tokens on every request. That's my iPod.
But like in that case, like you can also start picking apart the architecture better and like using that to refine it. So like when more junior devs go to implement features that they're going to have a higher degree of success. uh because you've looked over it architecturally and like I I also like don't know if I agree with the stance that we should be
thinking about and looking at our like interfaces and APIs less, like if anything, that's where I'm spending way more of my time. Like I I try to break work down really, really tiny and I start at like The interface level. And I actually think, like, uh, shout out O'Camel, like thinking in terms of like modular programming and shout out like one module
Per file, operating over a primary type, get the interfaces really, really good and strong, and then leave the implementation up to the Clinker to go build. Like that seems to work really, really well for me. Yeah, I've I've I've done a lot recently with just saying like you will never suggest a change to me that doesn't show like the interface. I don't care if you put like dot dot dot in the middle of the function and you're saying like
This part's fine. You can do whatever you want in the middle, but like if we can constrain it well like on the outside with the types, we can get very far and usually like it's much more apparent to me, like from the get go, what's gonna go wrong. I it still seems Difficult for me to figure out how someone would get some of those skills, though only through prompting. Like I I've actually been toying with the idea of just
Doing I e whether it's like in the same project or a different project, just like all the way, no tab completion, nothing, like for a set amount of hours every week. Like that's what I would definitely recommend. A lot of hours of code already is prob is thinking about like, hey, for some amount of time every week you should just go write some code by
And like figure it out and find out what's painful and what does and doesn't work. Even if it's part of a bigger project. I do it actually every day for an hour and a half. Yeah. I there is also this uh I did this I some of upon it on Twitter a couple of weeks ago. It's like I think it's called Bloomery and it's like this blog post I think it's called from
or to iron and they have like this skill, like an agent skill. And the skill Once you load it, walks you through handwriting like an actual agent from scratch, like step by step, and like I think there's like a a really good use case here where like you could have more principal engineers or devils or somebody
constructing like maybe like you're working on a team that's working in a giant Astro project or a giant next JS project and like teaching the skills through that way might be useful. Um Yeah, I like it I I I also agree that you guys like I don't I don't know how you pick up these skills and intuitions without having like
handwritten and screwed up and caused incidents and outages and or seen things go right over the years. Uh so like It almost feels like it's more like a more than ever like a trade thing where like stuff has to be passed down uh more like uh intentionally than we have before. So my early programming days were Ruby, like the heyday of like pair programming
doing like katas, like T D D. I had I had a a like a mentor who basically sat me down one day and was like, We're only gonna write tests today and you're just gonna have to deal with this and you're gonna like sit there and learn and like, now I don't T D D anymore, right? Like not not how I like to program. But I learned the value of what it was and when to apply it and when it it made sense to do it.
¶ The Dopamine Hit of AI Coding
And I was like forced to do that by somebody and I sort of wonder if we're gonna have to do that same thing with some juniors, right? Do you think the world ca do you uh do you think the world can even handle that at this point? Because it seems like based on Twitter, everyone's producing ten thousand lines of code of they like can they actually
Satiate this uh I don't think it's like a When you program you have this experience where you actually feel like you're doing things like it's very entertaining Problem solving, there's putting together stuff whereas prompting, I I do, at least personally, I get significantly less of that, but it's a lot easier. And so can people even slow themselves down enough to practice the basic.
At this point? Or is it too hard to convince someone like, no, you gotta stop stop being productive in your version of it and actually just go out there and hand cut down a tree for I mean I think we're in the early days. I mean th the right now, I mean the euphoria, the dopamine hit that you're getting right now. Um just like early COVID days, the productivity gains you y you know, everyone was getting, you know, uh uh
It it won't be sustainable. I think I think you know people it will have to kind of it'll go back to a uh kind of a more of a midpoint at some point where uh there there is a better balance.
It does feel good. It's like playing slots right now sometimes, you know what I mean? Like I don't gamble in my real life, but I'm willing to do a little bit of gambling on some on some coding, you know what I mean? You pull the slot, did it come out with something sick? Did it update the page right? Ooh, it did, it hit It's good, it's coming up sevens. So I think there is something I
like underexplored about that aspect of like how people feel when they're doing like agentics stuff. Uh it like it turns out like loot boxes are really fun. That's why every game has So like then they're making a lot of money off the loot box spin and a sparkle coming out.
I I think actually this is uh I think developers think that we're super rational beings who only pick stuff based on rational reasons, but then if you know any software developers like, Oh they're not actually that rational. A lot of stuff's based off vibes and like how they feel
And like they met someone that they liked who said this, so then they like this thing too. Which is fine. That's me. You know, like I I just recognize like a lot of what I do is off of vibes. Met a cool someone cool told me OCam was cool, and I was like, sick. Um and but so I think, you know, sometimes we're like, Oh, I would never get tricked by loot.
And then you're like, bro, you're loot boxing so hard right now with your agents. There there is something about that I I I have to That uh'cause I I've forcefully put in my um in my life a one hundred percent vibe coded thing just to like Feel the slot machine to understand how far I can take things to really try to ho quote unquote hone these uh skill issues that I always have.
And a part of that I realized that when I see the reds and greens fly real fast, like when Composer Two is going fast, like there's part of me that gets like, Oh yeah, dude, that's exciting. Like look at this go, this is gonna be a good change. Here we go, good change. And then sometimes it's not a good change. It's frustrating. It's very interesting. But when it hits, man, when I it's like Disney World. The whole day at Disney World isn't good. We have the highest high.
Right, you know that's what I'm saying. Th Disney World sets it up that way too. They don't care that most of the day sucks and you waited in line. It's just about five magical moments with your kids and that's how they make a trillion dollars a year. I don't know how much Disney World makes, don't
They make a lot of things. Turkey leg and a dole whip, I'm just like I'm good to go. I'm a happy camper for the rest of the day. Exactly. It's a small world comes on and you're like, Well that's not leaving my head for six weeks
¶ Final Takeaways and Call to Action
Alright, well we're about to run out of time with you guys. I know you guys are on tight schedule, so if th is there any last takes uh that you could give us on say how you rolled this out, any takeaways, things you would have said. Any blockers? Any blockers, any ways you'd Things forward. How however direction you want to take.
I I'll say like the the best thing you can do is go try it and use AI, right? Like when we've been very upfront about that. The README, the first thing in the README is like quick start, migrate to V next, put it into your clanker, right? Like that's what we want you to do, right? It's again AI everywhere, AI end to end.
And then if you hit problems, tell your AI to go file GitHub issues about those problems and explain that. Like that that some of the best feedback we've gotten so far has been exactly with that dynamic. Um I kinda tell people, like if you're a human and you just want to like try this out as a human.
Like you might just not have the best time because it's not really designed for you, right? It's designed for this new world. So um please try it out. Please use our AI to do it and tell us the problems. Oh one oh July fourth. I put him on the spot now. This is this is the stand up right now. We need to know what I'm blocked. July fourth, one dot oh. Dang, I wanted America Day. That sounds awesome.
America, baby. Can you turn off Cloudfire support to the UK on that day also? Like really celebrate America? It's available everywhere. Except for the UK is hilarious. It's a marketing strategy, you know, really g really get people excited. Oh, that's good. I like that. We need to do something. We do have to do maintenance on physical machines every once in a while, maybe that day, just you know some of our UK. What a weird coincidence. What a weird coincidence. Dylan, any blockers?
Uh I am currently blocked on all my work by Trash Dev. I'm a little disappointed he wasn't here to work that out. Uh You're waiting on the receipts app or what? Yeah, I just like I can't he's he's gotta get his his stuff together. Uh my advice to everyone is slow down. Make tiny changes with your agents. Review everything. Don't just throw mountains of code at your coworkers and try uh pie uh pie agents.
As a quick post mortem, is that what you did after you deleted all of the code while we were on stream in San Francisco? I don't remember that ever happening. Yeah, I just remember eighty thousand Josh, get the clip Josh. We have it on video, you're in trouble. Mr. Slowdown over here. Oh yes. And also Rhido Camel. Oh, based. Nice, nice. Dane, anything you gotta say?
I I mean, uh step away from the agents, have fun, have fun with your team. I mean, uh we still live in a a world fit full of humans. The best part of my job is actually getting to work with people like Dylan and Steve. Don't forget the humans. Uh just image loading and OBS. Gotta figure that out. Oh yeah. I actually believe it or not, I tried to open your slop fork, Rick or just your slop. So we'll we'll follow up with that offline. We'll parking lot that we're going to do.
All right. Thank you guys. Thank you, TJ, for that lovely ending. Thank you, Dylan. Thank you, Steve. Thank you, Dane, for joining us. I hope everybody appreciated this. This was very interesting. Because this is like really the first major project. That is uh out there for a lot of people to use that is gonna be purely AI driven, so
