LongCut logo

I did not expect this...

By Theo - t3․gg

Summary

Topics Covered

  • Vit Plus Unifies Dev Toolchain
  • Blazing Fast Linting Transforms Workflow
  • Agent MD Files Hurt AI Performance
  • Custom Scripts Must Override Built-ins
  • Vit Tasks Cache Slashes Build Times

Full Transcript

It's no secret that Vit has taken over the developer world. If you're building on front end and you're not using Vit, you're almost certainly missing out. It

just makes life better. It's the

all-in-one bundler at the core of many different frameworks now. Whether you're

just building with vanilla React or using bigger things like Astro, Tanstack Start, SpeltKit, or more. That's why I was so excited when Evanu announced the company being built around Vit Void Zero. This is also why I was really

Zero. This is also why I was really skeptical when they announced VIT Plus, the private closed source, paid for version of Vit that would handle a bit more. And that's why I'm so excited

more. And that's why I'm so excited about today's announcement that Vit Plus is here in alpha and is no longer closed source. Vit Plus is now released as an

source. Vit Plus is now released as an open-source repo under the MIT license as the new unified tool chain to build with VIT. I am genuinely really hyped.

with VIT. I am genuinely really hyped.

The idea of so many of these parts of your project management, be it packages and dependencies, your actual environment, the testing, scaffolding, packing and bundling, all is one cohesive tool set, even including like

linting, formatting. This is one of

linting, formatting. This is one of those things the web dev world has historically been missing because the tools we use are constantly in flux and changing. But as more and more of our

changing. But as more and more of our tools have been centralized around void zero and their little ecosystem, suddenly this is getting really promising. I'm already using the

promising. I'm already using the majority of the tools they are referring to here. So, what does it look like to

to here. So, what does it look like to move over to V+? That's a great question and I haven't tried it yet and that's why this video is going to be a bit different. I'm going to go through

different. I'm going to go through setting up and using V+ for the first time live. I'm not being paid to cover

time live. I'm not being paid to cover V+ or anything around here. I am not an investor in Void Zero. I missed the round sadly. I am being paid though by

round sadly. I am being paid though by today's sponsor. How many languages does

today's sponsor. How many languages does your website support? If you're building real applications for real users, you're probably leaving over 90% of the market on the table if you only support English. Yes, that's right. 90% of the

English. Yes, that's right. 90% of the market, 90% of the world does not speak English. So why are you only supporting

English. So why are you only supporting it? And maybe you are supporting other

it? And maybe you are supporting other languages. And if you are, you're almost

languages. And if you are, you're almost certainly suffering because the tools to do that right are horrible except for one, general translation, which has fundamentally changed how I think about localization. When they hit me up to

localization. When they hit me up to sponsor, I did a deep dive on the product and ended up so obsessed that I've since become an investor and adviser. I just spent a bunch of time at

adviser. I just spent a bunch of time at their office, they actually gave me a monitor, funny enough, because I just I love what they're building. This would

have saved me so much time at Twitch, it's hard to put into words. I think

you'll understand once I show you a bit of the code because general translation is built for developers. In the React version, pretty much everything is a component. You wrap your app with the GT

component. You wrap your app with the GT provider. And now whenever you're in a

provider. And now whenever you're in a given component that needs a translation, you just wrap the text area with the T component and you're done.

Wait, what if you need a variable though? What if something's dynamic and

though? What if something's dynamic and you don't want that translated? Well,

they have a component for that, too. You

wrap the user.name here with ver and you're done. But not everything fits in

you're done. But not everything fits in JSX so simply. Like what if you need to pass a prop to something that is a translated string? Obviously, they have

translated string? Obviously, they have that handled too using their hook, the GT hook. You can pass placeholder

GT hook. You can pass placeholder wrapped text and you're good to go.

They've handled everything from branching to plurality to shared strings, dynamic content, and so much more. And I'm telling you from

more. And I'm telling you from experience, building this stuff yourself is hellish. But more importantly, having

is hellish. But more importantly, having a service that supports every language is a miracle. The amount of users you're losing because your site doesn't work in their language is insane. And now you can set everything up with just one

click. They built their own agent that

click. They built their own agent that can run on app router or Mint lefi to do the translation for your whole project for you. They even have an automerge

for you. They even have an automerge setup where if somebody merges code that isn't translated properly, it will make the adjustments, add the components, generate the translations, and get that merged in and deployed for you. The more

I read about these guys, the more I want to add it to every single one of my apps. Stop losing 90% of your users, and

apps. Stop losing 90% of your users, and translate your app at sidv.link/gt.

Where better than to start than the getting started section. Hop over to my terminal. Setting up Vit Plus. Do I want

terminal. Setting up Vit Plus. Do I want Vit Plus to manage my node versions?

Interesting. So they have an NVM FNM style thing here as well. Wait, that

means this might be great for having in like a Docker image or an agentic environment where everything is managed by this. Hm. It's corpac plusni because

by this. Hm. It's corpac plusni because it can be used for installs and everything. Very interesting. Do I do

everything. Very interesting. Do I do this chat? Do I let V take over my node

this chat? Do I let V take over my node management? Chat's all saying yes, I

management? Chat's all saying yes, I have to do it. You can enable it later if I want. I'm going to enable it now and hopefully I don't regret it. Here we

are. Let's do a new app. V plus monorreo app or library. I like the idea that the starting point supports all of these.

Very promising. Going to start with something stupid. We'll just make a

something stupid. We'll just make a game. The models are okay at this now,

game. The models are okay at this now, so it should be fun. Um, what do we want to make the game? Universal package

manager. I'm thinking universal paperclipip, but as a person who maintains a big open source project, which package manager would I like to use? I thought it was a package manager.

use? I thought it was a package manager.

I am surprised to not see bun in here, but I get it. PNPM is recommended. Makes

a ton of sense. Which agents are you using? Ooh, I like this a lot. You can

using? Ooh, I like this a lot. You can

select which agents you're using and make sure you have the right MD files for it. I would recommend, and I know

for it. I would recommend, and I know they never will, for various like political allegiance things, not literal political allegiance, but business allegiance with Versel versus

Cloudflare. Skillsh is really cool as a

Cloudflare. Skillsh is really cool as a way to install skills in a reusable way that will sim link the skills across the different folder paths that are expected. Thankfully, agents MD is

expected. Thankfully, agents MD is quickly becoming a standard only claude ignores it. I will add Claude in here.

ignores it. I will add Claude in here.

Don't really need to add a cursor rule.

If it has the agent MD, it should be fine. Also, open code and AMP and others

fine. Also, open code and AMP and others all use the same agents MD. I think

co-pilot should support as well. This

will also be fun to read those agent MDs and see what they're doing. We can also add the VSS code so it will handle like editor plugins and whatnot. Set up

pre-commit hooks to run formatting, linting, and type checks with autofixes.

I used to hate pre-commit hooks, but I'm coming around to them in an AI world. I

was told by the team I should try the VP check and VPN commands, and I'm very down to do exactly that. VP check. Okay,

that's pretty absurdly fast. It did find formatting issues, but it just ran across my entire codebase in 332 milliseconds. It's not like the biggest

milliseconds. It's not like the biggest code base to be fair, but like it's still 15,000 lines of code. Let's see

how much of it can fix. Okay, it did manage to fix a lot of them there. Uh,

now the pre-commit hook is failing. You

know what we'll do? Fix all the lint errors that come up with VP check. I

also want to try the env command. What

can we do here? We can set it up. Let's

try that. Okay. In order to use the venv stuff where it controls your node version, you have to manually add it to the zish rc. So, have it work in things like VS Code and cursor. You also have to add it to your profile. a little

annoying that they don't have like a command I can run that lets me do this like vpenv setup should say hey we have to do these things hit y to do this first step it will edit this it should

be set up already uh vpenv doctor okay apparently the doctor command will do it should be first in path demanding to be the first thing in my path is a bit bold like I have a lot of [ __ ] in my path

you're not that special guys come on what does the pin command do this affect the project or does this affect my computer okay it creates node version in the project and pins it to the latest

thing. Okay, that's what I wanted it to

thing. Okay, that's what I wanted it to do. That's good stuff. That means it's

do. That's good stuff. That means it's much easier to have different node versions across different things on your computer.

Oh, that I actually really like. That

makes this much more compelling. Like

the the hell of managing like F&M and all these other things and having it work for other people on my team that use different things. Gh, this is great.

This is good. I was skeptical of V+ managing my node versions, but they do this right. This is good. One of the

this right. This is good. One of the better things I've seen so far. And the

lint being so fast is really cool as well. I'm happy I was told to like go

well. I'm happy I was told to like go try that quick. It is actually insane how good the GPT 5.4 model is in codeex for these types of things that I can just tell it to go do the thing and it

will figure it out. And now all of the linting is handled. The fact that it takes under half a second across everything here is insane. The

formatting took 341 milliseconds. The

linting took 247 milliseconds. That's

absurdity. Like genuinely. Okay, the bun run lint command is similarly fast for me. It took.19

me. It took.19

seconds of user time. So not that big a difference, especially considering that we're using ESLint before. Yeah, I

really want to try this out on a project like T3 Code, but making that migration there is going to be significantly harder than it is on a project like this. Yeah, I'm happy. This is good.

this. Yeah, I'm happy. This is good.

This is good stuff. I see where they're going here. Let's take a look at this

going here. Let's take a look at this initial start. I'm actually quite

initial start. I'm actually quite curious. First, we'll look where we

curious. First, we'll look where we always should start. Package JSON

version zero type. Cool. Dev commands.

VP dev build TSC and VP build VP preview VP config. It does have V+ as a dev. So,

VP config. It does have V+ as a dev. So,

it should be able to resolve VP in all of these. I was wondering how this would

of these. I was wondering how this would work for somebody on my team who isn't yet using V+. That seems to handle it fine. They can still just PNPM rundev

fine. They can still just PNPM rundev and it should work. But, uh, if they pmpp install, this should be fine, too, because it is just pmppm under the hood.

Nothing too sus yet. Let's hop into the source and see what we have. Okay, not

using a framework. It didn't actually ask during setup if I want to use React or anything like that, which was surprising. I expected them to to ask me

surprising. I expected them to to ask me if I wanted to use any of the many many templates they have for building with any framework in Vit. They didn't. I am

sure there is some solution for that somewhere, but yeah, not what I'm here for yet. The main ts file just renders

for yet. The main ts file just renders in the hash app like ided element in the page this content and also binds random things for the ticker and whatnot. Does

it have any JavaScript in here that triggers? No. Pretty boring stuff. The

triggers? No. Pretty boring stuff. The

counter is where we handle that logic.

All vanilla.js as we saw here. No

dependencies only devs. So nothing is being bundled in your output by default.

And speaking of things included by default, got to check out the agents MD V plus start. Interesting. It starts

with a tople title tag. This is where I'm going to start having hot takes. I

find that a lot of templates and projects and scaffolds are still treating the agent MD files almost like a readme. More so like a readme for the

a readme. More so like a readme for the team that built it, not for actually building with their tools. Ideally, V+

would only need two or three lines in here and then it would point to docs or other resources if the agent needs more context. I shouldn't need to start with

context. I shouldn't need to start with all of this information, especially this early in and it should not be a top level title like this. Like this is the

document that's supposed to be used for all of the things that I do in this project with AI. This is too V+ specific. If I saw somebody try to

specific. If I saw somebody try to commit this agent MD in one of my projects, I would probably yell at them just like straight up. There's no reason that the agent needs to know the create

command in a project that I've already created. I hate to be so critical here,

created. I hate to be so critical here, but like a lot of the value of something like V+ is how well it can streamline a lot of the like agentic DX having everything integrated in one place. This

is not it. This is so far from how working with agents is supposed to work.

There is no reason that my agent in an already admitted project needs to know the create command or the migrate command, much less all of the other random stuff in here. Like, it does not need to know about the task cache.

That's not a problem that my agents need to care about. I know there's some void zero people in chat. Please tell me this is just some random AI generated slop and not something you actually put work into cuz this is this is really bad.

Like I'm just deleting both of these files. They are hurting more than

files. They are hurting more than helping. First feedback. If you are

helping. First feedback. If you are using this yourself, do not answer the which agents are you using question because those files are actual garbage and it'll make the model perform worse.

Confirmed from our friends over at void zero. Still alpha. They're not done

zero. Still alpha. They're not done tweaking that yet. Good. It needs to be trimmed to hell. And it should probably be a skill. Yeah. Or at the very least tucked away in some docs file that gives

more info like doc/v plus context and just tell the model that that exists rather than the agents MD being so clogged with garbage. Apparently, there

are other templates that could have been used that don't come up initially when you use the vcreate command. That's a

little annoying to learn about. Now,

this is a shorthand set for popular templates including tan stack start, next app, nux, react router, view, standard vit. Interesting, they don't

standard vit. Interesting, they don't have a like more vanilla reacty one like this. is so interesting where it's like

this. is so interesting where it's like in between where Vit was where like the defaults were very vanillay and as minimal as possible and something like create next app or tanex start that

includes a lot more vit plus definitely skews in that direction of more like the lack of a vanilla react option here is a choice and it's probably a good choice I am not going to do that though because I

want to use everything as vanilla e as possible let's try actually running it vp dev now I have the local host starting point and a counter that works.

You know what? I'll bring back this and I'll do what I wanted using V+. Check

out the V+ docs for more info on how to use it. Cool. There we go. This is a

use it. Cool. There we go. This is a slightly better agent MD. We'll start

with this. Well, I will add this on Git.

Cool. Let's make it a game. Hop into the best AI coding app ever built. We got

universal package maintainer here. We

can now drag and drop reorder. [ __ ] yeah. I want to start building this

yeah. I want to start building this game. Let's make a plan for a first

game. Let's make a plan for a first version. Plan mode. Do I want to save

version. Plan mode. Do I want to save vanilla? Switch to react or plan for

vanilla? Switch to react or plan for back end. Definitely switching to react.

back end. Definitely switching to react.

Save local state. Cool. All submitted.

While this is running, I want to try the other things they added. Specifically, I

want to try the VP migrate command.

Let's find something that is migratable.

How about lawn? Let's see how this goes.

Fire like use is currently using bun.

So, I guess we'll move it to PNPM. Set

up pre-commit hooks to run formatting, linting, and typeing. Sure. As agent

instructions. Ooh,

we're skipping those. We're definitely

skipping those. ES code. ESLint Oxlint.

Oh, first fail. Unsupported package

manager bun. I told you I want to use PNPM. Just switch. Ah, I get that you

PNPM. Just switch. Ah, I get that you don't want to support bun, but a lot of us are on bleeding edge stuff. Like, if

you're using V+, you are a bleeding edge dev. The people who are going to first

dev. The people who are going to first be trying V plus are the same people who have been trying and using bun for a while now. You got to support us here.

while now. You got to support us here.

Like at least let us move out. That's a

pretty big miss in my opinion. And now I have to spin up quad code to make this project V+ friendly. Move from bun to PNPM. Look at our plan for the game as

PNPM. Look at our plan for the game as we're waiting for all that. This looks

good. It's a pretty [ __ ] big plan.

YOLO. Oh, the model never passed the plan via the plan tool. That's annoying.

That means the sidebar will never show anything. The amount of random quirks we

anything. The amount of random quirks we have to fight with these models and harnesses every day with something like T3 code is annoying. Everybody's asking

why they don't support bun. My

assumption is because bun is a moving target and isn't it's not in Typescript.

It's probably not as easy to manage, but I'm not the creator of V+. I don't know.

If Alex is still here and has information on why they're not supporting bun, I would love for him to include it. The fact that it's not node

include it. The fact that it's not node based and it's not just a package manager is my assumption for why they don't include it. It's also kind of a competitor. These are two different

competitor. These are two different paths to one unified tool for everything. I just I'm imagining there's

everything. I just I'm imagining there's enough conflict between the two.

Apparently, it's planned.

It's not there now. But yeah, let's try the migration command again. Migrate.

Yes. Skip. And we've now migrated. Oh,

the Oxent type checker does not support base URLs. That is annoying. Apparently,

base URLs. That is annoying. Apparently,

there's a tool to remove it. Okay, ready

for the most annoying complaint ever?

This is really petty. Okay, here's a certy keyboard. I use a certy keyboard.

certy keyboard. I use a certy keyboard.

Most of you use a certy keyboard. If

you're on one of those weird European ones, I'm sorry. Cordy for life. When I

have to type in npm install, I do npm space I. I am going to hold up my left

space I. I am going to hold up my left hand here and with my right hand, npm space I one-handed. If I had to do PNPM, same deal. PNPM space I. If I have to do

same deal. PNPM space I. If I have to do bun, it's a bit more of a reach, but bun with the B is still hitable with my finger, the pointy finger of my right

hand. The V is too far. This seems

hand. The V is too far. This seems

stupid and trivial and silly, but this is the first package manager I've had to use where I feel like I have to two-hand it except for yarn, but I was not typing yarn a whole lot. Yeah, VPI is um a little bit more annoying to type. Even

though it's fewer keys, I have to use my other hand. Just a a silly thing I

other hand. Just a a silly thing I noticed. Felt like it was worth calling

noticed. Felt like it was worth calling out. It's dumb, but like these

out. It's dumb, but like these ergonomics are silly. Huh, that's not great. Some store function I was using

great. Some store function I was using broke as a result of this migration. BP

install. That is really not great. Uh,

get status get broken swamp out main.

Oh, I hate pre-commit hooks. Let's make

sure this still works. Yeah, it still works on the main. So, something in that migration broke. [ __ ] that's annoying.

migration broke. [ __ ] that's annoying.

There's a very minimal app. I also

noticed that my dev command got broken by this too. This dev commands a bit custom. I have concurrently where I run

custom. I have concurrently where I run the web and convex commands with different colors. Vde dev- 5296 and I

different colors. Vde dev- 5296 and I run the bun command. This is my dev command. But when I ran the migration

command. But when I ran the migration interesting, it didn't change. VPI and

then VPDEV. Interesting. It looks like it hijacked my customdev command and didn't use it. So now that I did the vpde dev command, it did its own dev

command instead. Is that correct? Oh, I

command instead. Is that correct? Oh, I

have to vp rundev. I don't mean to be rude to my friends at V+. You do know this is the single biggest complaint we

have about bun, right? You do know the fact that when you run bun test that it doesn't use the test script we have here has like led to us almost moving off of

bun for T3 code. Right? The thing we put in scripts should always take precedent 100% of the time. I know this sounds like a petty hill to die on. This needs

to be fixed before you're out of alpha.

Hard stop. If there is a dev command in the script, the dev command should be used. There is no good reason to have a

used. There is no good reason to have a customdev command that takes precedence over the one that I wrote. Bun build is the same deal. Yes, bun build and bun run build can be different. Bun test and

bun run test can be different and that is a very bad thing. Do not carry over the biggest annoyance of bun in your design here. This is bad. This is not

design here. This is bad. This is not one of those like agree to disagree opinion things. This is just bad. Is it

opinion things. This is just bad. Is it

always run? You always have to put run to run one of the scripts. So they're

not doing the shorthand like bun as bundev that is just shorthand for bun rundev. This doesn't have any shorthands

rundev. This doesn't have any shorthands at all for things that are included in scripts. You have to do vp run script

scripts. You have to do vp run script name that okay I get it. But don't give us these built-in commands that are overlapping with the ones that we

already have. At the very least, this

already have. At the very least, this should immediately give you a are you sure you don't want to use the dev command that you already have in your like script tags. At the very least, this is not good UX, especially as a lot

of people again are going to be moving off of bun for this. This is confusing.

BP rundev should behave better here. Oh,

great. V command not found. Wonderful. I

was hoping it would migrate that too. I

have to do vpdev port 5296 for that.

That's annoying. Okay, now now we're getting into like hellish orchestration like you need to know what you're doing world hell. I need this dev command to

world hell. I need this dev command to run the webdev dev server as well as the convex backend dev server at the same time. I just use concurrently. It's a

time. I just use concurrently. It's a

really simple way to do two things at once. The vde dev doesn't work anymore

once. The vde dev doesn't work anymore cuz we no longer depend on v. V's no

longer a package. So the vp rundev command has to call vpdev. that I hate that VP rundev is going to trigger vpdev

and like npx convex dev. This is

not loving that. And we're still getting errors from use store atom.get is not a function. Let's just ask an agent. We'll

function. Let's just ask an agent. We'll

let that do its thing. And while that is trying to fix itself because I just spun up a cloud code in the background to try and fix things. Somebody said I'm missing the run in the script. No,

because if I do vp rundev, it's going to recursively call this command forever.

So I have to use vp rundev to trigger the script dev command. So I can trigger vpdev the non-script command, the vit dev server command, which is different from v rundev or sorry vpr rundev. This

is the problem. This as an all-in-one solution, it's now like clobbering its own namespace and it's getting way less clear what I actually need to run. Well,

with that all going, our game apparently is done. Let's give it a shot. VPD dev

is done. Let's give it a shot. VPD dev

left behind.js. Our new package maintainer on call package published readme currently describes ambition more than behavior. Okay, this is a really

than behavior. Okay, this is a really awful page it started with, but we can work. Publish patch and we can keep

work. Publish patch and we can keep publishing patches. Just hammering the

publishing patches. Just hammering the button. You can buy a readme glow up

button. You can buy a readme glow up using your downloads. Can add CI badges.

Shameless launch thread. Post a dramatic founder story thread about semicolon liberation.

Okay, here's what we're going to do.

We're going to do what I always do. When

I have an app that works and the UI is garbage, I open up a cloud code instance. Soon I'll be able to open this

instance. Soon I'll be able to open this cloud code instance in T3 Code, barring anthropic causing us more problems. And then you won't even have to use another terminal tab for this. This UI is garbage. Cool. Let that do its thing.

garbage. Cool. Let that do its thing.

Interesting. Okay. Apparently, there

were stale directories. It did not properly clean out the old node modules when I did the migration. That's Claude

Code's fault as much as anything else.

We'll try VP rundev again. Okay, it

looks like there's something actually wrong. Like something's actually just

wrong. Like something's actually just broken with this setup with Tanstack. I

don't know if it's Tanstack query or Tanstack start, but uh yeah, the latest Vit and Vit Plus is not working with this project. What previous VIT version

this project. What previous VIT version were we using? Uh it was using Vit 717, but they have a TANS stack start

template. So, I'm a little confused why

template. So, I'm a little confused why it wouldn't work other than like my Tanstack depths being out of date. It

does not look like it actually updated all the Tanstack packages. This is

another instance of cloud code being [ __ ] garbage. It's 50% things that V+ is doing different that my tooling and in my repos just aren't ready for yet.

50% cloud code being actually [ __ ] useless. This is what I get for trying

useless. This is what I get for trying it for anything other than like quick UI changes. Let's grab the same error. I'm

changes. Let's grab the same error. I'm

going to give like the exact same prompt to T3 code with codeex just to make a point. I just migrated this project to

point. I just migrated this project to V+ and now I get errors. Please fix

them. Probably need to upgrade the tan stack packages. And isn't it nice being

stack packages. And isn't it nice being able to like look at the image in a real UI with like a real chat experience?

Every time I use one of the CLIs for code stuff, I regret it. And as soon as I go back to the UI, I'm like, "Oh, this is how it's supposed to be." Like

actually having a UI where you can select text properly, copy things, look at images, switch between things without memorizing 1500 [ __ ] hotkeys. It's

just so much better. I am saying this all as a terminal person, too. Oh, look

at that. I found the likely root cause.

The workspace has fixed Tanstack versions installed at once. So, this is probably the bun to PNPM change that broke things. And it's finding way more

broke things. And it's finding way more things that are broken and fixing them.

Look at that. And look, this is like actually useful context. I'm comparing

the user's in progress dependency edits with the current install state before I touch anything. If node modules is just

touch anything. If node modules is just stale, a clean reinstall plus version pinning is safer than layering more mismatched upgrades on top. The runtime

stack now makes sense. Use store is being handled on router store without aget method which only happens when tans router builds a server style store on the client that points to an incompatible tanstack package set around

the is server start integration, not your route code. Look at that better model. Look, it found other CSS things

model. Look, it found other CSS things it has to fix too for build. Good [ __ ] BP rundev. Look at that. Codeex fixed

BP rundev. Look at that. Codeex fixed

it. Thank you, Codeex and T3 code. gonna

keep going to clean up other things it perceived as wrong. But we did it.

Reddit just ended up being package version changes. As always, these things

version changes. As always, these things aren't as simple as just running a CLI command. Unless the CLI command is

command. Unless the CLI command is codeex, then it probably would have been that simple. But like actually though,

that simple. But like actually though, pretty significant migration to change out from V 7 to V 8 plus swapping all of our linting, all of our typeeing, all of

our formatting and everything over to be ox based, rust based, and V+based.

It's cool. But the real test is how does this affect build times? And for

reference, this is a project that is currently using Tanstack start with V7.

Takes about 28 seconds to build. It is a relatively small app. I would not expect to see a meaningful improvement.

Hopefully, it's not a regression, though. We shaved a second off, boys.

though. We shaved a second off, boys.

All of this work, we've rewritten the entire ecosystem in Rust, and now we're 1 second faster. This is obviously sarcasm. This is totally fine. This is

sarcasm. This is totally fine. This is

an app that builds fast already and it builds fast as well. It is what it is.

It is also using PNPM instead of bun, which means the install command is going to be slightly slower. So, there is that to account for as well. But that does not mean this whole thing was slow. It's

still lightning fast and I wish I had a bigger V app to test with. Worked fine

here though. So, yeah, the cloud code run has been going for over 15 minutes and it has not changed any code yet. It

loaded the front end skill and now it's just sitting here thinking it might eventually do something. This part is interesting on VIT. I hadn't seen this.

V Tasks, a powerful new open source project shipping as part of Vit Plus provides the core task runner for V+'s built-in commands as well as package JSON scripts via VP run. Vit task

orchestrates tasks across workspace packages with automated input tracking so it can fingerprint dependency aware execution. So tasks run in the correct

execution. So tasks run in the correct order based on your package. JSON

dependency graph and explicit depends on declarations. Multi-command scripts like

declarations. Multi-command scripts like TSC and VP build are split into subtasks and cached independently. That's huge.

This really is going for like the turbo pack alternative with all of this. And

then a familiar CLI. VP run mirrors the interface of PNPM run including monor repo support reducing the number of new concepts you need to learn to adopt V+.

Yeah, you know how I feel about all that. So here's an example of generating

that. So here's an example of generating icons which you might want to cache the outputs of instead of regenerating it.

So now in your VP run generate col icons generates icons in the first run and skipped entirely if nothing changed on subsequent runs. You edit a source file

subsequent runs. You edit a source file or the specified icon theme environment variable changes, the task will rerun.

That is cool. I like this. And I like that there's a d- cache like simple call here to just cache the result. That's

great. This is still going. Now that we have the pnpm cache, it'll be fun to see if our build times are any better. Oh

yeah, that is actually better. Down to

22 seconds. That's a meaningful shave from 30-ish to 20-ish. Good stuff. Nice.

And I'm sure a lot of my time is being lost to the deployment process for Convex. Not that it's like a lot of

Convex. Not that it's like a lot of time. It's still just seconds, but like

time. It's still just seconds, but like that's fast as [ __ ] I have put so much effort into trimming build times in my apps. It's actually one of the reasons

apps. It's actually one of the reasons I've been so happy to be using less of Nex.js type stuff because even with Turbo Pack, the build times are still garbage. So getting down to 22 seconds

garbage. So getting down to 22 seconds on a a real build here for an app that actually has users and customers is pretty [ __ ] cool. I won't lie, that is dope.

Cloud Code finally finished updating the game. Don't necessarily love where it

game. Don't necessarily love where it went with it. incident. Hacker News

found your package and immediately invented a use case that you never promised. Good [ __ ] There's some funny

promised. Good [ __ ] There's some funny ideas in here. Also, it's silly, but this stupid [ __ ] online thing I see isn't every like GBT 5based UI and half of the clawed ones, too. So dumb. Yeah,

everybody's saying this looks sloppy.

You're all right. It definitely does. I

do love the promise here. a future where we no longer have to juggle node version managers, package managers, a multitude of individual tools, their config files, or all of the hell managing upgrades for

all of them. I see where this is going, and I am genuinely excited for us to get there. The fact that I could change all

there. The fact that I could change all these commands to just use vpdev instead of vit or pnpm or any of like 15 other options is promising. The fact that I could gut all of my weird linting and

type checking stuff and move as much of it over to VP commands as I could is exciting. VPLint being able to just lint

exciting. VPLint being able to just lint files is dope. There's a future where a lot of that decision fatigue that we're all feeling nowadays can be reduced down meaningfully. And generally speaking,

meaningfully. And generally speaking, the more streamlined and centralized and simple solutions we have for the problems that we build solutions around, the better. But you combine this with

the better. But you combine this with the other thing that the void team is working on, which is a better way to deploy your V apps across the web as full stack applications. I see where

they're going. This is a very exciting

they're going. This is a very exciting future where everything you need from your database to your package management to your CSS to your runtime in the cloud can all be provided with one solution.

And if anyone is going to be able to figure all of this out, it is going to be Evanu and his team as well. Of

course, even if Void is currently built heavily on top of Cloudflare and Vit Plus is built heavily on top of VIT, I mean, of course it is. It's Vit Plus.

There is a direction here that is exciting and I am actually very excited about it. There's a lot of little things

about it. There's a lot of little things that could be better here. There's a lot of random edge cases I hit throughout this and I expect the team to do what they always do, embrace the opportunity to make things better. I've been working

with VIT forever now. I use it for so much stuff. I was one of the first

much stuff. I was one of the first people to use Vit with React. I was so early they put me in the documentary for it. I'm excited. I see the potential. I

it. I'm excited. I see the potential. I

am not feeling it yet, though. That's

the difference. I see what this could be. I'm excited about what this could

be. I'm excited about what this could be, but I personally don't see myself using it for a whole lot just yet.

Thankfully, it's open source and there's a ton of promise in where they're going with it. I'll be sure to keep an eye on

with it. I'll be sure to keep an eye on it, as I'm sure most of y'all will as well, but for now, not necessarily the thing I'm going to start using for all my projects. Just a thing I'm very

my projects. Just a thing I'm very excited for the future of. Curious how

y'all feel. Are you hyped on V+ or is this something you're going to skip for now? Let me know how you'll feel. And

now? Let me know how you'll feel. And

until next time, peace nerds.

Loading...

Loading video analysis...