How to Fix Vibe Coding

Syntax| 00:44:35|Apr 22, 2026
Chapters14
Sets the goal of turning vibes into deterministic AI outputs with facts, logic and concrete tools.

A practical tour of deterministic tooling to tame vibe coding: linting, code quality, testing, and AI-friendly workflows with real-world tool picks.

Summary

Scott Tolinsky and Wes Boss of Syntax push back against “vibe coding” by outlining a toolkit that makes AI-assisted development more deterministic. They spotlight code-quality engines, bug-finders, and formatting as essential guardrails—tools that turn fuzzy AI outputs into actionable fixes. Highlights include JS/TS analysis with jscpd.dev and nip.kn.dev, and the comprehensive, fast alternative fallow.tools for dead code, duplication, and complexity. They also discuss integrating Sentry for error tracing (CLI and Spotlight), Storybook’s MCP server for component docs, and CSS precision with Project Wallace and Stylint-inspired rules. For testing and UI work, Storybook, agent browser, and Chrome DevTools MCP get nods for reliable feedback. On the workflow side, Dent- and Dex-based task boards, Context7 for docs, and custom ESLint plugins (e.g., Spelt-oriented) help enforce deterministic behavior. The episode closes with practical tips to wire these tools into commit checks, agent scripts, or dedicated quality pipelines, plus a candid note that even with powerful tooling, you still steer the AI rather than vice versa.

Key Takeaways

  • JS/TS code quality scanning with a fast, configurable tool like fallow.tools can reveal dead code, duplication, and complexity hotspots, and export results in a readable format for AI review.
  • Sentry’s CLI and Spotlight provide real-time, local error traces and root-cause analysis, making debugging in development and production smoother for AI-assisted workflows.
  • Storybook’s MCP server enables canonical component usage, documentation retrieval, and testing hooks, improving AI’s ability to compose UI from existing components.
  • Custom ESLint plugins (e.g., to forbid AI-misuse like overusing useEffect in Spelt) can enforce deterministic patterns that AI tends to ignore, reducing brittle AI outputs.
  • Using a structured pipeline (VP check, linting, type-checking) after feature completion creates a repeatable, auditable QA flow that AI ecosystems can follow.
  • Tools like CSS linting with Stylint equivalents (or faster custom linters like Clint) help catch style and maintainability issues before AI touches the codebase.
  • Headless browser tools (agent browser, Chrome DevTools MCP, Light Panda) give immediate visual and performance feedback during AI-driven UI work, decreasing guesswork.

Who Is This For?

Frontend and backend developers building AI-assisted workflows who want reliable, auditable tooling to constrain AI outputs and improve code quality. Essential for teams integrating LLM agents into CI or local development environments.

Notable Quotes

"“The most obvious one of those that you could think of is something like a llinter… it’s analyzing the file. This is either a problem or it’s not.”"
Scott explains why linting provides deterministic pass/fail signals for code quality.
"“We’ll have dead code, circular dependencies, complexity hotspots… and they just added feature flag detection.”"
Introduction to fallow.tools and its evolving feature set for codebase health.
"“Sentry CLI allows you to authenticate with your Sentry… you can get the root cause of any error in your project directly from your CLI.”"
Highlighting practical error-tracing tooling for AI workflows.
"“Storybook MCP server… list all documentation, get documentation, canonical examples.”"
Using Storybook’s MCP to make AI component usage more reliable.
"“If you want deterministic rules, write ESLint plugins… it’s easy to spin one up and test it.”"
Advocating custom ESLint plugins to enforce deterministic patterns.

Questions This Video Answers

  • How can I make AI-generated code more deterministic with linting and type checks?
  • What are the best tools to detect code duplication and complexity hotspots in a JavaScript/TypeScript project?
  • How do I integrate Sentry CLI and Spotlight into an AI-assisted development workflow?
  • What is Storybook MCP and how can it help AI understand and reuse components?
  • Can custom ESLint plugins prevent common AI misuses like overusing useEffect in Svelte/Spelt-like environments?
AI toolingCode qualityLintingSentryStorybookCSS toolingHeadless browser automationESLint pluginsDeterministic AI workflowsTypeScript tooling
Full Transcript
Welcome to syntax. Today we're going to be talking about how to turn vibe codings vibes into more deterministic solutions with facts and logic. We're going to 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 going to be talking about different code quality tools, uh, bug finding tools, formatterers, llinters, etc., but also the techniques in which you can use these things. That way you're not just like, hey, make it good, please. All right. Is this good? I have no idea. I have no way of figuring that. My name is Scott Tolinsky. I'm a developer from Denver. With me as always is Wes Boss. What's up, Wes? Man, I this is great because so much of this is like people have built stuff and now that we're what three or four months into people building 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 OpenClaw 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 uh that things were breaking, which is like throw Sentry 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. Yeah. It It's so funny because I did my video on the GStack stuff and that that the video was like 34,000 lines of slop. I think that's what it was called. And uh you get comments especially on Twitter where there's some non-developers on there who are going to be like you all dinosaurs are going to 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, you know, you're just throwing AI back and forth at it trying to fix you push 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 8 megs of tests. Yeah, right. No kidding. 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 systems full access. Yes. So, what we're going to be diving into is really like what types of actually deterministic tools exist out there. And anytime you're working with AI, even if the output of these tools is deterministic, as in to give people context who 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 codebase to output real information. The most obvious one of those that you could think of is something like a llinter, 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 CommonJS. There's just so many of these little guard rails you can put in place that could be rules, but they can also simply just be like a pure function that checks your code, and it's it's either a pass or a fail. Um, and then you don't have to worry about the wishy-washy vibes of of an AI spitting something out where it might pass, it might not. Yeah, a lot of people put that solution like you said into like an agents file, agents.mmd file or a cursor rules or rules file of some kind 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 don't didn't want to like you I told you you have to do this if so like who cares enforceable and and to be fair like a lot of times that does pass but when you have like an enforcable thing and you could put in your agents file if you if you're worried about the code run it through l a llin llin llin llin llin llin llin llin llin llinter right and then it will it will see if there's any problems that pop up and it kind of learns from that. Yeah. So, let's actually I'm going to start off with an interesting uh category here, which is code quality tools because uh 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, uh 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 jscpd.dev which is basically something that will analyze your code to find duplicated code blocks across 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 uh this tool, it's a CLI tool that will actually scan your code and look for lines that are duplicate cuz we know that AI will love to just solve a problem like where it's at. Oh, I'm I'm going to write this utility function that clearly should be a global utility. I'm going to write it in this file and use it instead of importing or or looking for an actual global utility. Um, 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. Uh, and then there's also NIP kn.dev, which is an 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, 100 and uh 100 plus plugins like Astro, Cypress, ESLint, etc. It's a cool tool, but I'm going to recommend actually instead of JS CPD 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 now exists at docs.fallow.tools. We will have these links in the show notes. Looks for dead code, circular dependencies. It looks for code duplication. It looks for complexity hotspots uh codebase health and uh 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 and this again works with everything automatically out of the box like there are tools for to work with spelt and I didn't have to install a single thing it just has that plugin baked into it complexity analysis finds the most complex functions per file maintainability scores get churn hotspots probably like code that's often touched and ranked refactoring target that's that's cool man you like look at your codebase and say ah this is a piece of your codebase 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. 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 llinter 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, uh you can configure the minimum amount of tokens or minimum amount of lines that are duplicated or what those thresholds are and things like that. That's good. cross language duplication where it will check between Typescript and JavaScript files by stripping the TypeScript stuff to to see 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 autofix feature but I to be honest autofix features kind of freak me out even though for some reason I don't know if this this 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 I wonder if this complexity finding solves the opposite of code duplication because what I often find AI does is it will modify by a function just and throw a whole bunch of if statements. Oh, you want to 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 uh reusable. So yeah, I hope I hope that that's what it does because I I find the opposite as well is 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 complexity. So it has a number of different complexity metrics. Uh 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. Yes. How does this work? It obviously analyzes your code. Um, but then it probably just gives scores based on different things. That's probably what the plugins are. Yes, there's a bunch of different scores. Uh, there's different uh let's see, fellow uses binary coverage model. A file is either test reachable or it's not test reachable mean. So there's different types of essentially rubrics that it's it's uh evaluating your code on scores. 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 efficiently as it can. not as efficiently as your codebase should have and then that can lead to maintainability issues. It can lead to performance issues. It can lead to bugs overall. Yeah. Yeah. And even if you are vibe coding, 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. That's cool. I'm I'm gonna gonna check that out. There's even a VS Code extension for it. It's written in Rust, so you know that it is fast. Probably amazing. Then it must be. Yeah. Um here's another one. So there's also CSS. And one of the tools that I really like for CSS uh code quality finding is uh 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. 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 want to see more of is tools like the spelt autofixer which comes in their spelt mcp which will basically read your file and tell you like what is not spelt best practices. 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 uh 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 uh viewfixer for things that might be considered not best practices that might be hard to lint about. Man, the project Wallace 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 know, and go. like why did you set like it's the the trifecta is line height, font size, and letter spacing on every single background text element in there. Yeah. And Project Wallace is is excellent at like hunting those out and figuring out where that's gone wrong. And 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 goes nuts with those types of things. So if you have those things in place beforehand, maybe it doesn't happen as often. Yeah. as we saw in the codec system prompt and the open codec system prompt, it says use gradients and expressive CSS and stuff. So yeah. Yeah, that stuff I get cuz it looks better than some of the crap that gets pushed out, but then it it just does it all the time, you know, and then everyone it overdo does it and it becomes played out and it looks awful. It's hard to maintain all that. All that. Yeah. Uh 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 uh like testing components and isolation. We actually use storybook on the syntax uh website and storybook has some really good new AI tools uh specifically around finding and indexing your components, testing your components. So, there is a storybook MCP server that the thing that I I like most about the storybook MCP server. Now, it does require buy into storybook, but if you're already using Storybook, this gives you a number of things like uh list all documentation, get documentation, uh 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 codebase looking for components and then trying to guess here. It it's actually like okay here are all of the components. Get that components documentation. And one of the more powerful things is that there becomes canonical examples because you're using stories to show how the components used because 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 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 with 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 how to interact with it. Great use case. So I I've become more of a believer in the storybook stuff since all of the AI. I always have enjoyed it, but like now where 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 story book becomes a little bit less annoying because I'm not having to hand author all the story components like oh yeah just oh now I got to 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 this. I love testing because with AI my tests always passing it out because uh AI will just make them pass. Yeah. Well, like not not exactly that, but like the just the work of of like scaffolding them out and writing them and coming up with potential 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, tests are 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 Sentry tools. Sentry, which is well, Sentry presents syntax. Head on over to centry.io/sax and I'm get uh two months for free with the coupon code tasty treat, all lowercase, 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. Um 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. 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. 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, yeah, check it out. Uh, another tool that I think has gone under the radar a bit is the Spotlight tool from Sentry, 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. 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 uh 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 scoop up those errors dev tools and and paste in 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 centry for that. But in development as well sometimes that or often that info is extremely helpful um especially when you're using agents. Yeah. and you still get that root cause analysis which I think is super helpful but there's also performance so you can get database query timing API request waterfall component render times like you get all of this in your local devow and I don't feel like enough people talk about this tool because I I find it to be very helpful so it's easy to install works with everything and uh I like spotlight next step on the list is generally formatting and linting these are tools that again uh we many of us have just always use formatting and linting tools or even type-checking tools like just TypeScript. 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. Um, one thing I really like in this regard is uh, Vit Plus uses VP check to run linting and formatting and type checking if you wanted to. Uh, it does so with caching. It's just the best for this type of thing. So, if you're using Vit Plus, the VP check is the the one to use. It's really great. But otherwise, using something like ESLint is 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 in spelt, it's a problem where it just uses effect for everything. It's like brother just coerces the value, you know, it uses as or it just like makes up its own types. 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 that that should be inferred from from like the database something like that. And it I feel like with Typescript a lot it as good as it is as TypeScript it it cheats it quite a bit. Yeah. A lot of people are just like oh no test pass you know types there's no type errors. Yeah because you just use assertions everywhere. Yeah I know. And so one of the things that like I think vibe coders might do in this situation is just put it in their agents.mmd saying hey don't do that. Please, no, 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 going to consider it. But if you put it into a tool like this, then that changes things quite a bit. So, uh, I I think Kevin from the spelt team was saying that he even put in his ESLint setup, it would fail if the agent used effect in spelt kit just because of how much it was doing it. So he wrote a custom ESLint plugin just to check for those types of things. And I think that's really underutilized. Writing custom ESLint plugins instead of just tossing stuff into your agents.mmd. Yeah, I think is something that people don't do enough. Make it deterministic. You know, don't write a wisher rule. And the beautiful thing about that is that it is so easy to get the AI to write a deterministic plugin, right? and and then you can write tests against it and see that it actually works. It's man I've written like three Vit plugins 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. Uh and then on the CSS tip of things, Styent is still great. It's something that is so underutilized. I think I've said that about a hundred times on this podcast. Stylent is basically CSS linting in the same type of way. It helps you find those exact type of things. expected custom property name this allowed unit like again like all right you are assigning a 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 going to error on this and then you know that can be used in addition to actual like agents MD files uh about saying what to do in those types of situations I am working on my own because stylant is great but I would rather a tool that was more effortless. So I 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. Yeah. So what's what's wrong with styint? I find styint to be difficult to work in. I find it to be a bit bloated. It's been around forever. It's very fullfeatured, but I'd rather it be like like Parcel or even like with the new Vit stuff, right? Where it is just really smart defaults, no configuration, throw it in there as long as you're okay with it. Like, that's what that's what I've been telling people with like oxlin and ox format and stuff 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 know 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 codebase but if yeah as long as you 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 Clint, like CSS lint Clint. Uh check it out. And uh 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 uh give it a try. and accepting uh contributions to it. That would be great. Uh next one here is making your browser usage headless. The king of this area is the agent browser from Verscell. Agent browser is great because it's very fullfeatured. You can tell agents to hey check this in the browser. Uh 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. 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 debugging port um which is an an argument. So you can open Slack and pash it d- remote debugging port 9222 and then your agent browser skill will be able to connect to it. And like I sent Scott's like what what were you using? I was like I use agent browser and I sent him a message from I just went into cloud and I was like use the agent browser. Um you have to restart Slack with the with the flag but 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 um 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 going to 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 going to get my agent browser dialed in so that if Randy posts something in Slack, I'm going to 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. Yeah. Uh there's also Chrome DevTools MCP, which is uh great for this as well. The thing I like about Chrome DevTools 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. Okay let me and then it's like the wrong site and it's like huh for some reason the app is showing something weird here. I'm like that's cuz you're at the wrong app and you didn't check the port. So yeah Chrome Dev Tools MCP great great uh usage for that as well. But having these tools are great because again you can look at the uh they can take screenshots and see what it looks like. can read the console log and and it can read the network panel and those types of things. Another option here is light panda. Have you seen light panda? I I had this on a list for another show um that I've been been mulling around. So they rebuilt an entire browser. Um it uses it uses V8, but it's apparently way faster for headless. And I I went back and I I looked at it. It says the first browsers for machines, not humans. And I was like, "Wow, they're like they really are going hard on this like aentic 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 as molasses because they got to like take a screenshot or or go to the DOM and then send a click event. Absolutely. So brutally slow." So Light Panda is like a a new browser that they basically just took V8, which is like the engine. It can run JavaScript. Um, I don't know if it runs CSS or not, but because it just needs like the the markup, right? And then it runs 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 know, like that's crazy. Ladybird is doing that, but they are crazy. Yeah, cuz it just says a browser engine. So, okay. Yeah, it does say Light Panda is written with Zigg and it uses build the V8 engine for Zig.js JS runtime. Interesting. Yeah. Okay. Yeah. And I looked into it. I went on way back machine and I was like, this is not just some thing that someone vibed up in the last like 6 months because everything everything is agents. And they it they used to be a browser for scraping, which makes sense. So they they were they used to be this thing that like scraped websites and got data and it was as fast as possible. And I guess they've sort of changed. I guess that still is a big use case, right? Is visiting websites and scraping. Yeah. You know there's pricing on here. Is the pricing only for their cloud pro but or is it just using light panda in general? That's you can install this thing and run it no problem. I think the okay thing that nobody is talking about with these like AI agents and whatever is that you need a lot of IP addresses and you need a lot of compute to actually run these browsers. Um 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 listened to this really good Darknet Diaries about these like streaming boxes and I've also gotten lots of emails from people saying I have residential IPs available and it's because you can't just like use a VPN and like scrape a thousand websites. They're going to block 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 light panda running on somebody's illegal streaming box and you have like a nice clean IP address that you're able to send requests out on behalf of someone. I don't know that that's actually happening, but and I don't know that this is light panda is doing this, but I guarantee that's happening in some regard right now in our industry. It's very interesting. And also if you're curious out there, you can have agent browser use light panda as the engine. So if that's like it's like puppeteer compatible, right? Yeah. If you want to just have your whole setup with agent browser that you already have and then pop in light pandas the engine. It's a simple config change. Another thing here we have is tasks and to-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. So, I have a couple of tools here and this is less for deterministically scanning your codebase, but this is more for a general workflow type of thing. I use Dex uh at dex.ri which saves everything to a JSON file. And then there's beads which is one that's popular that stores things into a database and uses gith hooks. But either way the things that are nice about these is that they can be blocking uh you can have uh 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 plan deterministic thing. Uh that way if it's saying give me the next task to do. It's not just like huh 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. Uh so I I like dex.ri for this and not just because it was made by my boss. Next one here is context 7 for docs. I still use Context 7 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 7 v 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 uh assess a better version of like, okay, this is what it should be done 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 quality, but when you're looking up patterns and examples, context 7. Great. Yeah. Did you see Tanstack 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 blo 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 can be run, right? It's the same idea that everybody is saying don't use MCP just let it run CLI. 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 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 is basically just giving the LLM a little spot to run some code that is in sandbox. That's what the Cloudflare dynamic workers are. Now, Tanstack 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 code certainly hits on some of those. Code mode is an interesting name for that. I uh don't know if I get the naming, but 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.nd file. We put it into skills. We we tell it, hey, always Yeah, I I've had good luck with saying upon completion of any feature, always run this sequence, right? Runow quality, run first run type checking or VP check, then run checking, then do this, then do that. I've had good luck with that. 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." Or you can say in your agents, please do this. Or you can have skills which is like my quality check skill commands that run the quality check commands. But it's very difficult. Uh besides that, um 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, well, it surfaced that and I don't necessarily care about that and then I have to go and put this weird comment in my code to ignore that. But running it on commit is maybe a good idea. That means it will never actually make its way into your your codebase until things pass. 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 got to do to get these things passing or fixed, etc." 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? Just swearing mostly. Um, we did find out via when the cursor thing leaked, we did find out that swearing at cursor does log into an internal anthropic dashboard and they have an F chart that they can see um how angry their users are. So swearing does swearing at your LLM does work. I wonder if I'm on the leaderboard. That's all I got to say. There certainly is the top. Oh, that would be that would be hilarious. All right, 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 going to 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 SN half blades or whatever. And the blades are just so incredibly cheap. You can get really nice blades from different places. Um you don't have to buy their specific ones. It's standardized. But this razor in particular is a twoblade razor. 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. 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 liked it for so long that I was like, you know what? I'll just get the two blade one for for normal shaving. And my god, I it's it's just like a completely different experience because every single time you got these just beautifully sharp blades. Twice as much. Yeah. Oh man. A fresh blade. Man, I don't I don't use razors to shave cuz my skin gets on fire, right? I just turn into like a red tomato. But I cut things with razor blades. And a fresh one, man. I bought a 100 pack for my like utility blades. Nothing better. Yeah. Nothing better, man. It just like, man, shaving has gotten so much nicer and it's fast. You have the old timey like you brush it on. No. No. I'm not that snobbish about it, which is why I'm concerned that there people be like, "Oh, you buy the leaf razor." Yeah. Yeah. But it worked great. So, uh uh 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. puzzle. 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 Robber 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 know? I just want to learn so much more about puzzles. But my kids absolutely love them. It's super fun. So, just generally get a puzzle. Get a puzzle. Yeah. My my daughter is she's got the engineering brain and she is really good at puzzles. 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 now 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 countries in in Europe or something like that. It's like the countries of Europe and it just shows like 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 an outer space one. She's naming all the planets. She knows all the she's giving me facts about all kinds of stuff. Um, but yeah, no, they're they're uh and we push it, too. So, every single time we're like, "All right, we're going to go a little bit crazier with this one." And uh yeah, she's doing some We should make a syntax puzzle, man. Yes. Count me or like like a code mode puzzle where like cuz you could read the code on the pieces and know where that goes. That would actually be kind of funny. That actually be Yeah. code puzzle. And then the code could be funny in some sort of way. I'm real quick before we get out of here, I do want to shamelessly plug my wife's podcast, Phases.fm. Man, she uh she's been working really hard on this and uh just her first video episode, which is going to be on YouTube, phases FM, or it's on Phases uh 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 want to also shout out the transistor.fm, I believe, is the URL. Transistorfm as a podcast hosting platform. It's really good, Wes. And I know we we we use Megaphone for ours. We used Libson before. They have a really neat feature on here which is like showing you amount of downloads in the release window. So it's not just like day one downloads. It's like you can get hotspots for seeing what the re release window looks like. And one interesting thing that they've add they're adding right now that you might be curious about is video distribution where now that Apple's added video content. That's why we didn't go with them cuz there was no standard for Yes. And so they're implementing that and I I'm curious to see I've signed up for the waiting list. So Justin, if you're listening, uh please get me on that waiting list because I want to try I went out for lunch with him a couple months ago. So I I'll get I'll get you in. I'll get get me in. Yeah, cuz I'm interested. Uh, it's good product though, man. It's really good. So, shout out to Shan Sister. Check it out. Canadian product as well. 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. She's a psychologist. She's a doctor of psychology. She taught master's level human development courses. So, she's brilliant and uh what she's doing. She's talking about human development, neurodeiversity. She's talking about kids and parenting in like a scientifically backed, light-hearted, fun way. So, check it out. Cool. All right. Thanks for tuning in. Catch you later. Peace. Peace.

Get daily recaps from
Syntax

AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.