Skip to main content
998

April 22nd, 2026 ×

How to Fix Vibe Coding

or
Topic 0 00:00

Transcript

Scott Tolinski

Welcome to Syntax. Today, we're gonna be talking about how to turn VibeCoding's vibes into more deterministic solutions with facts and logic. We're gonna be really getting into the depths of what are the different tools that you can add to your setup, so that way AI is not just guessing or making assumptions or anything like that. So we're gonna be talking about different code quality tools, bug finding tools, formatters, linters, etcetera, but also the techniques in which you can use these things. That way, you're not just like, hey. Make it good, please. Alright. Is this good? I have no idea. I have no way of figuring that. My name is Scott Tolinski. I'm a developer from Denver. With me as always is Wes Bos. What's up, Wes?

Wes Bos

Man, I this is great because so much of this JS, like, people have built stuff. And now that we're, what, three or four months into people buildings, like, serious stuff with it, you're starting to see a lot of the sort of edges crack around it. People are, oh, this is not actually very good, and now I have a problem on my hands. Right? There was this post in the Reddit Open Claw the other day where this guy was just saying, like, I had clients, and I I made all these automations for them, and I just lost all these clients because things were not working properly. They they were breaking all the time. I had no way to tell Yeah. That things were breaking, which JS, like, throw Sanity on there, brother. You'll be able to tell when things are breaking. Just it's an absolute mess. And if we can, like, have the, like, pure functional programming renaissance that we had in JavaScript, what, eight years ago, If we can have that in this AI slop world, I think that the outputs will become a lot better.

Scott Tolinski

Yeah. It it's so funny because I did my video on the g stack stuff, and that that the video was, like, 34,000 lines of slop. I think that's what it was called.

Scott Tolinski

And, you get comments, especially on Twitter Wes there's some Node developers on there who are gonna be like, you all dinosaurs are gonna learn that it doesn't matter what the code quality is or if we shipped 26 test files to the user. It doesn't matter. But, like Yeah. I think a lot of those people are going to wake up at some point when they just start hitting issues that are impossible to solve or,

Wes Bos

you know, you're just throwing AI back and forth at it, trying to fix your issue. One thing and and something else breaks, and it's just an absolute mess. And, like, I get it that maybe the code doesn't matter as much, but we have come so far from you have to worry about your initial paint times to who cares if you shipped eight megs of Wes? Yeah. Right. No kidding.

Scott Tolinski

Part of that too is if, like, that exists, then who knows what else exists? Like, are you shipping your Social Security number to everybody as well? Like, if you have no idea, you don't know. Right? And and a lot of these people get know Node you know. Systems full access. Yes. So what we're gonna be diving into is really, like, what types of actually deterministic tools exist out there.

Scott Tolinski

And anytime you're working with AI, even if the output of these tools is deterministic JS in to give people context to or might not be familiar with that word, it gives you the same results every time. Right? So, you know, AI, if you ask it the same question, it it's depends on on what the answer is going to be based on a number of things with the the AI. But, like, with these tools, these are, like, analysis of your code Bos to output real information.

Scott Tolinski

The most obvious one of those that you could think of is something like a linter. Right? It's analyzing the file. This is either a problem or it's not. Yes or no. Output the problem. Right? Don't use this x, y, and z. You know? Don't use Yes. Common JS. There's just so many of these little guardrails you can put in place that

Wes Bos

could be rules, but they can also simply just be, like, a pure function that checks your Node, and it's it's either a pass or a fail.

Wes Bos

And then you don't have to worry about the wishy washy vibes of of an AI spitting something out Wes it might pass and might not. Yeah. A lot of people put that solution, like you said, into, like, an agents file, agents.md

Scott Tolinski

file or a cursor rules or rules file of some kind. Yeah. And then again, the AI can choose to ignore that. There's been so many times when I'm like, why didn't you do this? And it's like, I didn't didn't want to. Like, you I told you, you have to do this. If so, like, who cares? Enforceable. And and

Wes Bos

to be fair, like, a a lot of times, that does pass.

Wes Bos

But when you have, like, an enforceable thing, and and you could put in your agent's file, if you're if you're worried about the code, run it through a linter. Right? And then it will Yeah. It will see if there's any problems that pop up, and it kinda learns from that. Yeah. So let's actually I'm gonna start off with an interesting,

Scott Tolinski

category here, which is code quality tools because, code quality isn't something that we necessarily think of beyond, like, linting or something like that. We'll talk about linting and formatting for formatting formatting later in this episode. But, the code quality area is something that I think has really kind of blown up just a little bit. And I first started looking into this, and I I I found a couple of tools. One was j s c p d dot dev, which is basically something that will analyze your code to find duplicated code blocks across a 150 languages. So this is the very first one of these tools that I came across, and there's a MCP server included or an agent skill, an AI reporter and stuff. And this, this tool, it's a CLI tool that will actually scan your code and look for lines that are duplicate because we know that AI will love to just solve a problem, like, where it's at. Oh, I'm gonna I'm gonna write this utility function that clearly should be a global utility. I'm gonna write it in this file and use it instead of importing or or looking for an actual global utility.

Scott Tolinski

So that helps with that because it can output, and then your tools can then self patch. Right? So it's like, oh, I recognize that this is some code duplication, therefore, let me fix it.

Scott Tolinski

And then there's also KnIP, k n I p dot dev, which is analysis for JavaScript and TypeScript projects, and this is going to find unused dependencies, exports, and files. It helps analyze your code. There's a whole bunch of different plugins, a 100 and, a 100 plus plugins like Astro Cypress, ESLint, etcetera.

Scott Tolinski

It's a cool tool. But I'm going to recommend actually, instead of JSCPD or NIP, I'm going to recommend a tool that I found that does it all and does it all very fast and very reliable, which is Fallow.

Scott Tolinski

Now Fallow exists at docs.fallow.tools.

Scott Tolinski

We will have these links in the show notes.

Scott Tolinski

Fallow looks for dead code, circular dependencies, it looks for code duplication, it looks for complexity hotspots, code Bos health, and, they just added feature flag detection which I this Fellow is an active development because every time I go to this page, there is another tool.

Scott Tolinski

And this, again, works with everything automatically out of the box. Like, there are tools for to work with Svelte, and I didn't have to install a single thing. It just has that plug in baked into it. Complexity

Wes Bos

analysis finds the most complex functions per file maintainability scores, get churn Scott, probably like code that's often touched, and Yes. Ranked refactoring target. That's that's cool. Man, you, like, look at your code base and say, this is a piece of your code base that is often being fussed with, probably because every single time that you add a new feature, you have to touch that. It's probably a good spot where you could refactor a lot of that out into smaller reusable functions.

Scott Tolinski

Yes. And this all outputs in a way that AI can read, it outputs in a way that you can read. It feels just like using a CLI linter or anything like that. And one thing I really like about it is that you can configure it to be whatever you want. Like, if you're looking for duplications, you can configure the minimum amount of tokens or minimum amount of lines that are duplicated or what those thresholds are or things like that. That's good. Cross language duplication Wes it will check between TypeScript and JavaScript files by stripping the TypeScript stuff to to see. Yep. Like, there's a lot of great stuff in here, and it's fast. It's fast. It works good. Architecture boundaries. Man, there there's so many interesting stuff. And there's even an auto fix feature, but I to be honest, auto fix features kinda freak me out even though for some reason. I don't know if this this JS like, an autofix to me freaks me out more than outputting the output into AI and being, like, you fix it, which I don't I don't know if that tracks in terms of reasonability.

Wes Bos

I wonder if this complexity finding solves the opposite of code duplication because Mhmm. What I often find AI does is it will modify a function just and throw a whole bunch of if statements. Oh, you wanna do this? And now let me add this one case inside of this function, and then you end up with this just like, well, if it's this or if it's this, and if it's and it's like no. That's not that's not good code at all. You're simply just handling every single possible outcome instead of making it into a, like, you could probably delete half of this function if you made it a little bit more, reusable.

Wes Bos

So Yeah. I hope I hope that that's what it does, because I I find the opposite as well. If you if you lean too hard into, like, hey, Make this maintainable and reusable and and into a utility function, then it just starts to stuff everything into one function. The cyclomatic

Scott Tolinski

complexity.

Scott Tolinski

So it has a number of different complexity metrics.

Scott Tolinski

So the number of linearly independent path through a functions control flow graph, that kind of sounds like exactly what you're talking about. Man. And, like Cognitive complexity, cognitive density.

Wes Bos

Yes. How does this work? It obviously analyzes your code, but then it probably just gives scores based on different things. That's probably what the plug ins are. Yes. There's a bunch of different scores.

Scott Tolinski

There's different, let's see. Fellow uses binary coverage model.

Scott Tolinski

A file is either test reachable or it's not test reachable me. So there's different types of, essentially, rubrics that it it's evaluating your code on You love a rubric. Course.

Scott Tolinski

Love a rubric. Yes. This is the number one tool I think that people aren't using that can help their slob because this is the exact types of things that, like you mentioned, that AI loves to do. It it loves to just just solve a problem as efficient efficiently as it can, not as efficiently as your code Bos should have. And then that can lead to maintainability issues, it can lead to performance issues, it can lead to bugs overall.

Wes Bos

Yeah. Yeah. And you even if you are a Vibe Node, and you probably just pipe the output of this right into the AI as well and say, hey. Fix it. Just being able to find potential issues in your code that are are not necessarily, like, syntax errors or security errors, but they're simply just, like, bad programming.

Scott Tolinski

That's cool. Yes. And I'm gonna gonna check that out. There's even a Versus Node extension for it. It's written in Rust, so you know that it is fast. Probably amazing then. Must be. Yeah.

Scott Tolinski

Here's another one. So there's also CSS.

Scott Tolinski

And one of the tools that I really like for CSS, code quality finding JS, Project Wallace. Now Project Wallace has a CLI as well. It can analyze your CSS variables and things like that. This would take a little bit more work to tell the AI, like, how to interpret the results here. It's not just giving it a punch list of things to change.

Scott Tolinski

But I do think that it's a cool tool to have in your toolbox for when you're working with CSS, which is another one of the things AI sucks at. One thing that I I wanna see more of is tools like the Svelte Auto Fixer, which comes in their Svelte MCP, which will basically read your file and tell you, like, what is not Svelte best practices.

Scott Tolinski

So I I don't know, like, what other frameworks might have tools like that. I'm very sure that other frameworks probably do, but, you can search for those. I did a number of googling around, but there's a lot of people talking about it. So leave a comment below if you have a specific React fixer type of deal or a, view fixer for things that might be considered not best practices

Wes Bos

that might be hard to lint about. Man, the Project Walls is really good for finding like, one thing that AI loves to do is set font sizes and line heights explicitly on every single thing, you Node? And then My god. Bos like, why did you set like, it's the the trifecta is line height, font size, and letter spacing on every single

Scott Tolinski

Background, color, and cheese. In there. Yeah.

Wes Bos

And Project Wallace is is excellent at, like, hunting those out and figuring out where that's gone wrong. And, generally, that's because you haven't set up anything in the first place. If you just tell it, make a cool UI, and it it goes nuts with those types of things. If you have those things in place beforehand, maybe it it doesn't happen as often. Yeah. As we saw it in the Node system prompt, in the open code codec system prompt, it says use gradients and expressive CSS and stuff. So yeah. Yeah. That stuff. Yeah. I get because it looks better than some of the crap that gets pushed out. Yeah. Yeah. But then it it just does it all the time, you Node? And then Yeah. Everyone overdoes it, and it becomes played out, and it looks awful. It's hard to maintain, all that. All that. Yeah.

Scott Tolinski

Next one here is for finding and using components. Now this is a a tool that requires a bit of buy in, but one of the problems that AI has is certainly, like, looking up and finding appropriate components, knowing when, like ESLint components in isolation.

Scott Tolinski

We actually use Storybook on the Syntax, website, and Storybook has some really good new AI tools, specifically around finding and indexing your components, testing your components.

Scott Tolinski

So there is a Storybook MCP Vercel that the thing that I I like most about the Storybook MCP server Node does require buy in to Storybook. But if you're already using Storybook, this gives you a number of things like, list all documentation, get documentation, those types of things. So that way, like, when you say I need this component or whatever, it's not just doing a find in your code Bos looking for components and then trying to guess here. It it's actually like, okay. Here are all of the components. Get that component's documentation.

Scott Tolinski

And Node of the more powerful things is that there becomes canonical examples because you're using stories to show how the component's used because Yeah. Typically, the AI is going to use the, what, like, the type signature and or maybe other prior usage of that component. But this gives it, like, a real,

Wes Bos

here's how you use this thing. That way it can it can plop it in there. Man, if you have a really good design system and a whole suite of components that you can then use, Unstoppable with this AI stuff, especially when you're like simply just clicking together like a new view, and you already have all the pieces for that, and you just need to like wire them up, maybe write a bit of logic and how to, how to interact with it.

Wes Bos

Great use case. So I've become more of a believer in the storybook stuff since all of the AI. I always have enjoyed it, but like Node Wes you have a nice clean example of how it works and you, you feel comfortable about how it looks on its own and how it works and interacts so much better. Yes. And I and I find that, like, man, even with AI,

Scott Tolinski

storybook becomes a little bit less annoying because I'm not having to hand author all the story components.

Scott Tolinski

Like Oh, yeah. Just, oh, no. I gotta make a companion component for all this and copy and paste and do this and that. You know? So Testing is like that as well. All of a sudden, everybody loves testing because you don't have to do all that, like, to do work. With AI, my Wes always pass because, AI will just make them pass.

Wes Bos

Yeah. Well, like, not not exactly that, but, like, the the work of of, like, scaffolding them out and writing them and coming up with potential,

Scott Tolinski

like, use cases where things will break. Or even if you have a bug, you know, just throw that bug in there, write a test. Yeah. I think testing has never been more valuable, but also more disposable in a way where it's really easy to just be like, I don't know, I Wes your passing because the AI wrote them, whatever. But at the same time, it's also really handy to be able to easily move through testing. Next one here is bug finding. Now I just have these two Sanity tools, Sentry which is well, Sentry presents syntax. Head on over to century.io/syntax and I'm gonna get, two months for free with the coupon code Sanity treat, all lower case, all one word. But these two tools, I think, are really fantastic. One is the Sentry CLI which everything CLI these days, but the Sentry CLI allows you to you authenticate with your Sentry.

Scott Tolinski

You can get the root cause of any error in your Sentry. You can see all of the relevant errors in your project directly from your CLI.

Scott Tolinski

The agents can connect to the CLI and, therefore, the agents can look up what your errors are and get the actual root cause and then fix the thing for you. It's very seamless. And so if you're if you're using Sentry already, plug in the CLI to with whatever you're doing. And if you're not idea. Yeah. Check it out. Another tool that I think has gone under the radar a bit is the Scott tool from Century. Spotlightjs.com is an MCP server that gives you real time local errors, traces, and logs, and it gives you essentially a local interface for debugging in development.

Scott Tolinski

And so this is a tool that is primarily used for while you're in dev, you're talking back and forth, and the agent isn't having to hunt in the browser logs. It's not having to hunt in your, terminal logs. It has all of that information directly in an organized way. So that way, again, you're not copying and pasting back and forth with the agent or you're not having to use a headless browser that then has to Yeah. Scoop up next

Wes Bos

DevTools and and pasting your logs. Just a nice tidy spot for all of your info that you're probably interested in that info in in prod. Right? And you're using Sentry for that. But in development as well, sometimes that or often that info is extremely helpful,

Scott Tolinski

especially when you're using agents. Yeah. And you still get that root cause analysis, which I think is super helpful. But if there's also performance, so you can get database query timing, API Wes, waterfall, component render times.

Scott Tolinski

Like, you get all of this in your local Devflow. And I don't feel like enough people talk about this tool because I'd I'd find it to be very helpful. So it's easy to install, works with everything, and, I like Scott.

Scott Tolinski

Next step on the list is generally formatting and linting. These are tools that, again, we many of us have just always used formatting and linting tools or even type checking tools like just TypeScript.

Scott Tolinski

But, like, these things become very important when you are wanting to tell your agent to always run, you know, type checking, always run linting after completing a feature, all this stuff. And moving again, these general, like, is this a problem or not out of the brain of an AI scanning your code for problems and into a checklist of fix this, fix this, fix this.

Scott Tolinski

One thing I really like in this regard is, Vite plus uses VP check to run linting and formatting and type checking if you wanted to.

Scott Tolinski

It does so with caching. It's just the best for this type of thing. So if you're using Vite plus, the VP check is the the one to use. It's really great. But otherwise, using something like ESLint JS just becoming more and more important. Now one thing I think that's really underutilized here is that a lot of us, as we've mentioned, have issues that AI just continues to do. Like,

Wes Bos

in Svelte, it's a problem where it just uses effect for everything. It's like Yeah. Whether this is react just coerces the value. You know? It uses as or it just, like, makes up its own types.

Wes Bos

Oh. I expect that this is what the template looks like, so I'll just throw a type above it. And it's like, no.

Wes Bos

That that should be inferred from from, like, the database, something like that. And it I feel like with TypeScript a Scott, it as good as it is with TypeScript, it it cheats it quite a bit. Cheats it. Yeah. A lot of people are just like, oh, no. That's Bos, you Node? The, types there's no type errors. Yeah. Because you just use assertions everywhere.

Scott Tolinski

Yeah. I know. And so one of the things that, like, I think Vibe Cooters might do in this situation is just put it in their agents.md saying, hey. Don't do that. Please Node don't. But that's, like, a sign that says don't that you can just walk past. Right? Like, the AI agents won't adhere to that. They're gonna consider it. But if you put it into a tool like this, then that changes things quite a bit. So, yeah, I I think Kevin from the Svelte team was saying that he even put in his ESLint setup, it would fail if the agent used effect in SvelteKit just because of how much it was doing. So he wrote a custom ESLint plug in just to check for those types of things. And I think that's really underutilized, writing custom ESLint plug ins instead of just tossing stuff into your agents Scott md. Yeah. I think it's something that people don't do enough.

Wes Bos

Make it deterministic, you know. Don't write a witchy washer rule. And the beautiful thing about that is that it is so easy to get the AI to write a deterministic plug in. Right? And and then you can write tests against it and see that it actually works. It's man, I've I've written, like, three Vite plug ins in the last, like, six months as well just because it's so easy to spin one up. Yes. I know it's it is.

Scott Tolinski

And then on the CSS tip of things, ESLint is still great. It's something that is so underutilized. I think I've said that about a 100 times on this podcast.

Scott Tolinski

Stylent is basically CSS linting in the same type of way. It helps you find those exact type of things.

Scott Tolinski

Expected custom property Node, this allowed Sanity. Like, again, like, alright. You are assigning, background color or you're assigning a box shadow without using one of our predefined shadows that's in a variable or you're giving a color that's not in our variables, it's gonna error on this. And then, you know, that can be used in addition to actual, like, agents Scott MD files, about saying what to do in those types of situations. I am working on my own because style ESLint is great, but I would rather a tool that was more effortless.

Scott Tolinski

So I'm I made one using the lightning CSS parser because I wanted it to be faster. I wanted it to be, you know, tuned to kind of modern CSS sensibilities.

Wes Bos

Yeah. So what's what's wrong with Style. Int?

Scott Tolinski

I find StyleLint to be difficult to work in. I find it to be a bit bloated. It's been around forever.

Scott Tolinski

It's very full featured, but I'd rather it be like like Vercel or even, like, with the new Vite stuff. Right? Where it is just really smart defaults.

Scott Tolinski

Yeah. No configuration.

Wes Bos

Throw it in there as long as you're okay with it. It works fast as hell. Yeah. That's what that's what I've been telling people with, like, aux ESLint and aux format and stuff.

Wes Bos

In most cases, like, I just put my I've put so much of my, like, ESLint and Prettier config away, and I was like, I'll just I'll just use this, you Node. And for for newer projects or projects where, like, a massive changing thing, I maybe two or three changes I added to it, so I wouldn't have this massive commit that just changed the entire code Bos. But

Scott Tolinski

if yeah. As long as you can just, like, lay down and accept the defaults, sometimes that's better. Yes. And so that's really what this is about. And, man, is it fast. It works with all my stuff. It's called ESLint, like CSS Lint ESLint.

Scott Tolinski

Check it out. And, I I it's still early, but it does no unknown properties, invalid values, duplicate selectors, duplicate declarations, empty rule sets, those types of things. And I think it does so very fast and nice. So, give it a try and contributions to it. That'd be great.

Scott Tolinski

Next one here is making your browser usage headless. The king of this area is the agent browser from Vercel.

Scott Tolinski

Agent browser is great because it's very full featured. You can tell agents to, hey, check this in the browser.

Scott Tolinski

It can do screenshots and those types of things. It can handle anything that a browser would be able to, really, is what it comes down to.

Wes Bos

And for the most part, I don't have a lot of complaints with Agent Browser. No. It's it's great. Especially because, like, one cool thing with Agent Browser is that you can hook it up to any Electron application. And all you have to do when you're starting the Electron application is you have to start it with, like, a remote application is you have to start it with, like, a remote debugging port, which JS an an argument. So you can open Slack and pass it dash dash remote debugging port nine two two two, and then your agent browser skill will be able to connect to it. And, like, I sent Scott Scott's like, Wes, what were you using? I was like, I use agent browser. And I sent him a message from I just went ESLint Claude, and I was, like, use the agent browser.

Wes Bos

You have to restart Slack with the with the flag, but it it can do that because it can run terminal commands. Right? And then it just sent, like, Scott a little message. And I set that up the other day because we were doing, a battle with the CJ, Scott, and myself. We were doing a battle where we, like, couldn't use the mouse, and I thought that Randy was gonna post something in Slack, like a screenshot or something like that. And we weren't allowed to, like, copy paste it. So I was like, I'm gonna get my agent browser dialed in so that if Randy posts something in Slack, I'm gonna be able to get that image out of Slack into my editor. And it ended up working, but it ended up not being what Randy had planned for us. So I'm ready for the next one. Yeah.

Scott Tolinski

Yeah. There's also Chrome Dev Tools MCP, which is, great for this as well. The thing I like about Chrome Dev Tools MCP is that it pops open a little Chrome that you can see it executing your stuff on nice and easily. I think that's the default way that it works. I don't know if you can even turn that off if we're being honest, but I like that I can see what it's doing. Like, sometimes sometimes the AI uses, like, the wrong like, it just assumes. It's like, oh, this is a feed site. Of course, it's on port 5173.

Scott Tolinski

Okay. Let me and then it's, like, the wrong site. And it's, like, For some reason, the app is showing something weird here. I'm like, that's because you're at the wrong app and you didn't check the port.

Scott Tolinski

So, yeah, Chrome DevTools MCP, great great, usage for that as well. But having these tools are great because, again, you can look at the, they can take screenshots and see what it looks like. It can read the console log and and it can read the network panel and those types of things. Another option here is LightPanda. Have you seen LightPanda, Wes? I I have this on a list for another show,

Wes Bos

that I've been been mulling around.

Wes Bos

So they rebuilt an entire browser.

Wes Bos

It's a full on browser. It uses v eight, but it's apparently way faster for headless. And I I went back, and I I looked at it. It says, the first browser's for machines, not humans. And I was like, wow. They're like they really are going hard on this, like, agentic browser, which apparently is it makes it faster for interacting because that's the one thing about these, like, puppeteer and these headless browsers. They're slow Yeah. As molasses because they gotta, like, take a screenshot or or go to the dom and then send a click event absolutely so brutally slow. So LightPanda is like a a new browser that they basically just took v eight, which is like the engine. It can run JavaScript.

Wes Bos

I don't know if it runs CSS or not, but because it just needs, like, the the markup. Right? And then Wes we're we're we're way faster. I looked into it because I was like, what is this? I was like, they didn't just build a browser from scratch, you Node? Like, that's crazy.

Scott Tolinski

Ladybird is doing that, but they are crazy. Yeah. Because it just says a browser engine. So okay. Yeah. It does Sanity, LightPanda is written with Zig, and it uses

Wes Bos

build the v eight engine for Zig JS runtime. Interesting. Yeah. Okay. Yeah. And I looked into it. I went on Wayback Machine, and I was like, this is not just something that someone vibed up in the last, like, six months because everything everything JS agents. And they it they used to be a browser for scraping, which makes sense. Mhmm. So they they were they used to be this thing that, like, scraped websites and got data, and it was JS fast as possible. And I guess they've sort of changed I Wes, it still is a big use case, right, is visiting websites and scraping. Yeah. You Node, there's pricing on here. Is the pricing only for their cloud pro or JS it just using LightPanda in general? That's you can install this thing and run it. No problem. I think the Okay. The thing that nobody JS talking about with these, like, AI agents and whatever JS that you need a lot of IP addresses, and you need a lot of compute to actually run these browsers.

Wes Bos

And and often, it doesn't make sense to, like, run a headless browser inside of, like, a serverless function. Right? So you see, like, Cloudflare has their own, like, browser thing that you can use to take screenshots, and it's it's, like, it's puppeteer compatible, and then they have this thing as well. But I think the other thing that a lot of these companies that do this are not talking about is that they probably run them on either in, like, people's houses. I think I don't I don't know if this is true or not, but I I listen to those really good dark net diaries about these, like, streaming Bos, and I've also gotten lots of emails from people saying I have residential IPs available.

Wes Bos

And it's because you can't just, like, use a VPN and, like, scrape a thousand websites. They're gonna block you. You. They don't want you doing that. Many of these places don't want you doing that. So what you need really is, like, something like LightPanda running on somebody's illegal streaming Bos, and, you have, like, a nice clean IP address that you're able to send Wes out on behalf of someone. I don't know that that's actually happening, but and I don't know that this is LightPanda is doing this, but I guarantee that's happening in some regard right now in our industry.

Scott Tolinski

It's very interesting. And, also, if you're curious out there, you can have Agent Browser use LightPanda as the engine. So if that's like It's like Puppeteer compatible. Right? Yeah. If you wanna just have your whole setup with Agent Browser that you already have and then pop in LightPanda as the engine. It's a simple config change.

Scott Tolinski

Another thing here we have is ESLint dos, which Man AI loves to, like, lift a bunch of to dos and then, like, not check them off or not do them, or every single AI harness has its own to do system and they're all crazy and they don't get saved to your database.

Scott Tolinski

So I have a couple of tools here, and this is less for deterministically scanning your code Bos, but this is more for a general workflow type of thing. I use dex, at dex dot rip, which saves everything to a JSON file. And then there's beads, which is one that's popular that source things into a database and uses git hooks. But either way, the thing that are nice about these is that they can be blocking.

Scott Tolinski

You could have, tasks that are blocking other tasks. You can have a clear execution of this, then this, then this. And, again, it's commits to your GitHub repo. You can take it with you. This is, again, less of a a code deterministic thing, but more of a Node deterministic thing. That way, if it's saying, give me the next task to do, it's not just like, what should we do? It's like, okay. This is blocked by this, which is blocked by this. Let me pick this, and then let's implement this. And then, again, you can have descriptions where you're passing in actual code paths and stuff. So I I like dex dot rip for this and not just because it was made by my boss.

Scott Tolinski

Next one here is contact seven for docs. I still use contact seven quite a bit because in this this whole platform of AI agents knowing what to do, you can have best practices. You can have skills that are telling it this or that. But a lot of times, just having the docs in context seven via MCP, I find to be still the best. It just looks it up, gets the answers, possibly usage patterns and stuff like that, and then is able to, assess a better version of, like, okay. This is what it should be Deno like because I have the docs. So that one's been talked about to death and, again, less deterministic about your current code and your current Sanity. But when you're looking up patterns and examples,

Wes Bos

context seven, great. Did you see TenStack had code mode they released the other day, and I think this is similar to the CloudFlare code mode that they came out there. CloudFlare replaced their entire MCP server, which was they had, like, seven or eight different MCP servers that you could hit. And and what happens is that you get so much context Node, and and it has to work really hard to figure out which tools to call, whatever. And they replace the whole thing with with simply just, like, giving it a sandbox to run some TypeScript, because the LLM is it's pretty good at running tool calls, but it's really good at just simply writing typescript that can Mhmm. Can be run. Right? It's the same idea that everybody is saying, don't use MCP, just let it run CLI.

Wes Bos

The the agent is very good at running CLI calls. So in the same way, the agent is very good at writing TypeScript. And if you give it this sandbox where it can run TypeScript, I won't get into it. We'll do a whole show on it. But you get, like, the schema, you can call all these different tools, and and then it will then execute it. Right? It it might return documentations, it might update your your CloudFlare dashboard or whatever. And it's, like, a really interesting way to make an MCP server. It's basically just giving the LLM a little spot to run some code that is in Sanity. That's what the CloudFlare dynamic workers are. Now Panstack came out with their own code mode, which is really cool, a spot to, like, run this all. So I think we should probably do a whole show on this because this is very interesting. We're all trying to figure out what all these tools are and how they best work, And I think this Node mode Scott certainly hits on some of those.

Scott Tolinski

Code mode is an interesting name for that. I, don't know if I get the Node, but I I I I'm keeping an open mind here. So at the end of the day, how do we get AI to use these tools? We beg them. We put them into our agents dot Node d file.

Scott Tolinski

We put it into skills.

Scott Tolinski

We we tell it, hey. Always yeah. I I've had good luck with saying, upon completion of any feature, always run the sequence. Right? Run follow Sanity run first run type checking or VP check, then run follow checking, then do this, then do that. I've had good luck with that.

Scott Tolinski

But at the end of the day, you can run them yourself and give the output to the AI agent and say, hey. Fix these things.

Scott Tolinski

Or you can say, in your agents, please do this, or you can have skills, which is like my quality check skill Yep. Commands that run the quality check commands. But it's very difficult, besides that.

Wes Bos

You can always wrap this all up into one quality check script that then runs all of your quality checks. Yeah. You could run it on, like, a commit, which is pretty common thing to do. Right? Like, you're not allowed to commit any code if these things are failing. Some of them are a little bit more, like, annoying because you're like, oh, it surfaced that. I don't necessarily care about that. And then I'll have to go and put this weird comment in my code to ignore that.

Wes Bos

But running it on commit is maybe a good idea. That means that it will never actually make its way into your your code base until things pass.

Scott Tolinski

Yeah. And honestly, I found it to be better to be in control of the output of these things rather than just being like, oh, go ahead and just do whatever you gotta do to get these things passing or fixed, etcetera. But I think that's it for all of the the tools and things that I have here. Wes, Is there anything else in your toolbox that you use to make AI more deterministic?

Wes Bos

Just swearing, mostly. Yeah. We did find out via when the cursor thing leaked, that we did find out that swearing at cursor does log into an internal anthropic dashboard, and they have pnpm chart that they can see, how angry their users are. So swearing does swearing at your LM does work. I wonder if I'm on the leaderboard. That's all I gotta say.

Wes Bos

There certainly is at the top.

Scott Tolinski

Oh, Node. That would be that would be hilarious. Alright. Let's get into sick picks and shameless plugs. I have a sick pick, which is a razor. I I I don't like, I'm gonna be real. I don't know if they're, like, straight razor or, like, whatever people are snobbish. I would assume they are. I'm not clued into that. I have been advertised this Leaf razor on Instagram a whole ton, and it's all metal. It uses single blades, like, half blades or whatever. And and the blades are just so incredibly cheap. You can get really nice blades from different places.

Scott Tolinski

You don't have to buy their specific ones. It's standardized.

Scott Tolinski

But this razor in particular is a two blade razor.

Scott Tolinski

And because the blades are so cheap and standardized, the idea is that every time you're shaving, you're just popping two new blades in there. There's, like, no disposable plastic anything that's getting tossed in the landfill somewhere.

Scott Tolinski

It's all just really great. So I had the prior single blade one called the I believe it's called the thorn or the twig, and that's for, like, using, like, edge like, lining up things and stuff. And I I'd liked it for so long that I was like, you know what? I'll just get the two blade one for the normal shaving.

Scott Tolinski

And my Node, I it's it's just like a completely different experience

Wes Bos

because every single time he had these just beautifully sharp blades Twice as much. Yeah. Oh, man. A a fresh blade. Man, I don't I don't use razors to shave because my skin gets on fire. Right? I just turn into, like, a red tomato.

Wes Bos

But I cut things with razor blades. And a fresh one, man. I bought a 100 pack for my, like, utility blades.

Wes Bos

Nothing better. Yeah.

Scott Tolinski

Nothing better. Man, it's just like hand shaving has gotten so much nicer, and it's fast. Do you have the old timey, like, and you brush it on? Node? Okay. No. I'm not that snobbish about it, which is why I'm Okay. Concerned that there are people who'd be like, oh, you're warp of the leaf grazer. You yeah. But it works great. So,

Wes Bos

really cool, really nice, and, happy with it for sure. I'm a sick pick something really silly, puzzles. We've been doing puzzles with our kids lately. Yeah. Some of the puzzles. Same as They're a hoot. Right? It's fun to, like, think about how I I can't get it out of my brain that I would love to build a bot that could solve the puzzle. I know I know Mark Rober did it on one of his videos, and ever since he did that, I was just like, man, that would be so cool. And then I look at the, the puzzle pieces, and they're all different. I was like, what's the algorithm for making these swoops? You Node, I just wanna learn so much more about puzzles, but my kids absolutely love them. It's super fun. So just generally get a puzzle.

Scott Tolinski

Get a puzzle. Yeah. My my daughter is she's got the engineering brain, and she is really good at puzzles.

Scott Tolinski

Shockingly good at puzzles. So that's, like, one of her favorite things to do. And so it's it's so funny. I've never been into doing puzzles, but Node her and I sit down and do puzzles all the time. And it's so such a good time to connect and, like, man, she really loves it. Yeah. Even just, like, the content of the puzzle. Like, we got one which is, like like, 20

Wes Bos

countries in in Europe or something like that. It's like the the countries of Europe, and it just shows, like, a a monument and, like, something like like the Eiffel Tower and a baguette, and that's France, right, and the flag. And my it's so fun to, like, be like, oh, we've been there, or, like, oh, that'd be kind of cool to visit that. Yeah. We got a outer space one. She's naming all the planets. She knows all the she's giving me facts about all kinds of stuff.

Scott Tolinski

But yeah. No. They're they're, and Wes push it too. So every single time, we're like, alright. We're gonna go a little bit crazier with this one. And, yeah. She's doing Node syntax puzzle.

Wes Bos

I mean, Wes. Count me in. Or like like a code mode puzzle Yes. Where like, because you could read the code on the pieces and know where that goes.

Scott Tolinski

That would actually be kinda funny. That actually would be, yeah, code puzzle. And then the code could be funny in some sort of way. Yeah. I don't real quick before we get out of here, I do wanna shamelessly plug my wife's podcast, phases.fm.

Scott Tolinski

Man, she, she's been working really hard on this and, it's just her first video episode, which is gonna be on YouTube, phasesfm, or it's on phases, .fm is the website, but you can find it in any major podcast app. Just go to the website, and there's links to all that stuff there. I wanna also shout out the transistor.fm, I believe, is the URL. Transistor.fm JS a podcast hosting platform.

Scott Tolinski

It's really good, Wes. And I know we we we use Megaphone for ours. We used Libsyn before. They have a really neat feature on here, which is, like, showing you amount of downloads in the release window.

Scott Tolinski

So it's not just, like, day one downloads. It's like you can get hot spots for seeing what the release window looks like. And one interesting thing that they've they're adding right now that you might be curious about is video distribution, where

Wes Bos

Node that Apple's added video podcast didn't go with them because there was no standard for There's no standard.

Scott Tolinski

Yes. And so they're implementing that, and I I'm curious to see. I've I've signed up for the waiting list. So, Justin, if you're listening, please get me on that waiting list because I wanna try it. I went out for lunch with him couple months ago. So, I'll give I'll get you in. I'll get get me in. Yeah. Because I'm interested.

Scott Tolinski

It's good product though, man. It's really good. So shout out to Transistor. Check it out. Canadian product as Wes, of course. All good all the good things are Canadian. I didn't even say what my wife's podcast was. It's a parenting podcast.

Scott Tolinski

She's a psychologist.

Scott Tolinski

She's a doctor of psychology. She taught master's level human development courses, so she's brilliant. And, What's she doing? She's talking about human development, neurodiversity.

Scott Tolinski

She's talking about kids and parenting in a, like, a scientifically backed lighthearted fun way. So check it out.

Wes Bos

Cool. Alright. Thanks for tuning in. Catch you later. Peace.

Share