EXPLORE CLOUDWAYS
Experience lightning-fast loading times and seamless platform
View Demo > AI can make performance debugging dramatically faster without replacing developer judgment. In this Cloud Bootcamp 2026 session, a former Google engineer shows how to use AI tools and Claude Code to analyze performance data, prioritize fixes, and automate parts of the optimization workflow.
🎙️ Speakers
▸ Adam Silverstein — Owner, Round Earth
▸ Host: Danish Hameed — Cloudways
✨ Key Takeaways
✦ Don’t chase the latest model, pick one that fits your ecosystem and stick with it; the tooling and how you interact with it matter more than which model you choose.
✦ Use AI early to synthesize complex reports from GTmetrix, PageSpeed Insights, or DevTools traces into a prioritized action plan, and ask it to explain the “why” so you learn.
✦ Skills train AI on a specific capability; ready-made ones like Addy Osmani’s performance analyze command or the official WordPress performance skill run a Lighthouse report and return prioritized fixes.
✦ Enable the agentic loop by giving AI tool access (MCP servers, Playwright for interaction testing) so it can make changes, test its own work, and iterate until CI passes.
✦ Set guardrails, work in a Git branch, review permission prompts, and add trusted commands to an allowlist so the agent can run safely on its own.
✦ Export and date-stamp performance data as you go, then feed it back (or into NotebookLM) so AI can compare runs and flag regressions.
✦ Use Git worktrees and Worktrunk to run parallel agents while you wait, and always review what the AI does rather than blindly trusting it.
Host: A very very interesting one. We’re basically going to talk about how AI is going to help you debug faster without replacing your expertise. And we’re very delighted to have Adam Silverstein with us. He has a very longstanding career in development and engineering, including six years at Google. So Adam, over to you.
Adam Silverstein: Great. Hi everyone. Thanks for having me here. Glad to be here speaking about AI debugging performance at the Cloudways Bootcamp. And I’ve been working on performance for quite a while now, several years at Google. We focused on Core Web Vitals and helping developers improve their website performance. But a lot of what I’m going to be talking about today is actually using AI, and really how we use AI as developers. And I’ll do that through the lens of performance, but a lot of what I’m talking about actually applies to all of our work that we do as developers.
So about a year ago, I built this WP Performance Wizard that was designed as a WordPress plugin. And the idea of it was that it would take a bunch of information from both your WordPress sites, so the plugins you’re running, the theme you’re running, other data about the capacity of your site, and then combine that with information from places like PageSpeed Insights API or Chrome DevTools, and put it all together, send it off to an LLM, and get actionable advice for you about how to improve the performance of your site. Of course, this was a year ago and things have changed tremendously, especially with AI as you all probably know. And so, I’m going to kind of revisit this topic and see how we as developers can leverage AI these days.
As a starting point, I just want to talk briefly about models. It is a little overwhelming how many new models are announced seemingly every week. You’ve probably seen these leaderboards where people are comparing which is the best model, which does the best on coding tasks. My advice to you regarding models is just to choose a model and stick with it.
And it may, you may choose it because it’s the ecosystem that you’re comfortable with. If you’re a Google user, maybe just choose the Google Gemini. If you like Claude, you know, stick with Claude. OpenAI is also valid. There’s all of these lower cost models out there. I don’t really think there’s that much difference. One may be better at the moment. They sort of tend to leapfrog each other.
A lot of your experience will depend more on the tooling around the models and how you’re interacting with them than the model itself. And the other thing that happens is you need to start investing in these, right? You’ll start out with a free account, but if you really start using AI, pretty soon you’re going to be paying for it. And once you start paying for it, you want to really start using what you’re paying for.
So, myself, I’ve really settled on using Claude. I use Claude Code primarily. So, most of the examples I’m going to be giving you today are using Claude Code. But again, my advice to you is just stick with what you like, what feels good, and then just don’t worry about the other ones. Don’t worry about someone saying the other one is better because they’re all getting better very quickly.
And there’s a lot of different ways that we can interact with these tools. I find the CLI to be the most powerful myself, primarily because it has access to all of the tools that you have access to at the command line, but I frequently also interact with AI debugging issues in my IDE or assigning it to review things in GitHub. So, there’s all these different ways. And by the way, I created this graphic with AI. All the graphics on this talk I created with AI. It was a fun fun thing to do. But the point here is that you’re going to have all different ways you can interact with it. That’s going to affect your experience at least as much as which model you choose.
This is a typical session for me. I’ve got Claude open and I’m typing the usage command to see how much I’ve used. I’m kind of like in the old days when we would try to get our computers’ fans to spin by giving them a very hard test. Same thing with AI. Now that I’m a paying customer, I really want to make sure that I’m utilizing it to its max. So I pretty regularly am checking my usage stats and making sure that I’m actually using it.
So as a starting point for performance analysis, I think it’s important to use AI early on in your process. I will say use it all along. But it’s very powerful at taking the data that you have that you get from your various performance tooling like GTmetrix or PageSpeed Insights, taking all of that data and then coming up with meaningful recommendations about what you should work on, what’s going to be the most impactful thing to address.
And these reports are quite complex. I mean when you run a PageSpeed Insights report it does give you advice about, you know, focus on this, this is a big problem, this is a biggest opportunity, but there’s a lot of data underneath all of that. And especially when you start to get into using real user metrics or doing something like a DevTools trace like this waterfall chart here. If you’ve looked at these, you can drill down over and over again.
And you can actually access AI right in DevTools now, where you can right-click on something and ask AI about it. But you’ll find you get better results by taking all of this data, bringing it down and then ingesting it inside of a single environment. So you can combine data from multiple sources and then ask questions of the AI and it will actually use all of that information to provide you with more meaningful answers.
If you haven’t used CrUX Vis and you do have real user data in the Chrome user data set, I highly recommend this tool. By the way, there are going to be a bunch of links in this talk. I will have a single QR code at the end of the talk that you can click on that we’ll, I’ll be sharing the slide deck. So don’t worry about capturing these as I go through. But CrUX Vis is just a great tool for getting real user data.
If you’re not in the CrUX data set, if you don’t have enough traffic to your site, it’s definitely worth considering adding a real user metrics tool, a RUM tool. I really like DebugBear. And this is a little script that you add to your site and it will collect data from real users as they visit your site and give you performance profiling data about their interactions, their experience using your site, which can often be quite different than what you see with lab metrics like the PageSpeed Insights reports. Because real users are going to be using real devices with real network conditions, and that may vary from what you see in the lab when you’re testing your site or your plug-in or whatever the product is that you’re developing.
But for this case, I’m going to assume it’s a website. So yeah, so use AI to do this analysis. And I’ll talk a little bit more about what tools you can use to do this, but think about asking AI, what should I be working on? What’s the most important thing? What will have the most impact and why should I work on that? Let it explain to you, learn from its explanations.
One of the really cool innovations that’s come out in the last probably six months is this idea of skills. We’ve already had MCP servers where AI can access remote data sources and remote services. The idea of skills is to train your AI on a specific capability, something that you wanted to be able to do inside your own stack, inside your own environment. And this is especially useful if you find yourself interacting with AI and frequently going off and doing some manual process. So it does some optimization and then you find you have to manually test that. So instead of doing that, you can actually teach it a skill for how to do that process and then it will be able to do that on its own.
And of course there’s some great skills out there already that you can just leverage by downloading. So a few that I really like: Addy Osmani has this web quality skills and it includes a performance analysis command. You just type this one command and it will install into whatever your AI tool of choice is. It works with nearly all of them. And again, these skills are simply English language files, right? So they’re not that complicated, but they do enhance the ability of the AI to perform specific tasks.
And so once you have this installed, you just type /performance analyze this site, and you’ll see the very first thing it does is it goes out and it runs a Lighthouse report. And then it goes through all of these different steps to analyze that data. It might look at the source code of the page. It might do a bunch of different things. And in the end, it’s going to give you this sort of prioritized action plan.
And you’re in your AI environment now, right? So you can ask follow-up questions. What does that mean? Number one, eliminate redirect chain. Why should I do that? What is inline critical CSS? How can I accomplish that? And on any one of these tasks, you can dig in, ask it to start working on it. So this is kind of a starting point, this analysis tool. You can also ask it to, you know, export that data and then come back and look at that later. So there’s a lot of things once you run this analysis directly inside of your tooling that you can then do as follow on steps.
There’s another great set of skills. If you’re a WordPress developer, which I know some of you are, there’s an official agent skills for WordPress and they specifically include a performance skill. So you can type this WP performance skill and it can analyze your site based on some other criteria that are WordPress specific like caching and database optimization and so forth. So it will analyze your code with this sort of skill at hand. Again, very powerful. These skills can be invoked manually using Claude Code, but they’ll also get invoked automatically by Claude when it sees that the request that you’re making is related to the skill.
And finally, creating your own skills. I mentioned this before. Again, they’re written in English. It’s not that hard, but even better, use the AI agent to create the skill for you. Right? So with Claude you just type create a new skill and it starts this wizard where you can go through step by step and tell it exactly what you want it to do, when you want it to do it, how you want it to behave. So you can train it how to do something that only you know how to do or that you find yourself doing repeatedly and you want the AI to take over that task for you because it’s a manual task that is just taking your effort when you can just train the AI to do it for you. And this is going to come in useful in the next step when we talk about how to get the AI to work for you.
Just a couple more points about approaching problems with AI. There’s kind of two different ways that you can tell the AI how hard you want it to work or how you want it to work. The first is making a plan. And this is something that was developed probably within the last year. I think Cline was the first one to come out with this, but the idea is that before the AI starts working on a task, it’s going to come up with a detailed plan, kind of a step-by-step list, a bullet list of what it needs to do to accomplish the task at hand. And this works really well for long, complicated tasks that are going to require many changes.
Maybe you want to go through and rewrite all of your code in many files from JavaScript to TypeScript as a way of improving type safety. So you can assign the AI to come up with a plan for this task and then it will list out all the different files and sections and how it’s going to make those changes before it starts making any of the changes themselves.
And the second thing you can do is choose how much effort you want the AI to put in. So this works better for very complex tasks. So take that task of critical CSS that we saw before, that is quite complex. You need to figure out which CSS is going to show up on which pages, what needs to be in the header inlined as critical CSS and what CSS can remain to be loaded later, and this is going to take some thought and some deep thought. So this is where you can increase the effort that the AI puts into it. In Claude it’s just in the model selector, and also Claude has this special keyword called ultrathink. When you type that in, you’re going to get a nice rainbow effect and also you’re going to get maximal effort out of Claude to try to solve the problem at.
And, finally, I mentioned this before, but when you get to a point where you’ve gathered some data inside Claude, go ahead and export it. Just tell it to export the data for you. I like to use a file name that has a date in it, although my example doesn’t show that. That’s just a nice way to capture where you’re at.
So with performance, you often will make a little bit of progress, maybe some regression, make some more progress. You’re constantly trying different things to improve performance. A lot of it is trial and error. You have some empirical data about what might work, but you need to test it to make sure it works. Once you’ve had some success or made some changes, go ahead and export that data that you’ve gathered and keep that as a record so that you can go back and look and see if you’re making progress. You can ask the AI to compare a previous data export to the current data export and it will give you meaningful results about what’s changed, even if it’s a very large disparate set of data.
And another really nice thing you can do is collect all of your data into a single location. This is NotebookLM, product from Google. I’m sure there’s other products out there, but what I’ve done here is I’ve included, you know, a bunch of different files that I’ve collected about this particular performance task and I’ve uploaded them and then I can ask questions about it. So I have all of my different CrUX files, the, you know, the Lighthouse report, all that data in one place. And now I can ask, you know, what is the most impactful change I can make? How does this change reflected in the data? I can upload new data sets as I’m developing. You know, maybe the exported data that I mentioned could go here.
One little trick I’ve noticed with this one is they do not allow you to upload .json files, which is a lot of the data exports are in that format. But if you just rename the file to .txt, you’ll find that the upload works fine and that the LLM has no problem understanding the structured data inside the file. They just don’t allow the file format for some reason. And this works great for docs. You can also print things out as PDF and upload them. Images, screenshots are fine. It’s a great way to collect a bunch of data in one place and then ask questions about it later. So that’s NotebookLM.
In this section, I’m going to talk about enabling the agentic loop. I don’t know why I love that word so much, but the idea here is that you want the AI to be able to work on its own. You want to be able to give it a task like optimize the CSS on my site using critical CSS and it should be able then to go off and work on that and test its work and go back and iterate on that process. So the idea here is that not only can the AI complete the work that you’re trying to assign it, but it can also test that the work that it’s done has actually improved the thing that you’re intending to improve. And if not, it can come back and work on it again.
So a good example of this would be having AI fix all of the continuous integration tests that are running on a PR in GitHub, and it can check the PR, see what tests have failed. If some tests have failed, it can try to fix those tests. It can make a commit. It can push that up to your GitHub repo. Then it can monitor the CI and continue that same loop until it gets all of the tests passing, all of the tests green. And that’s ideally what you want. You want to be able to assign the agent a task and let it go off and work and accomplish the goals of that task.
And that does require several different things to be in place. The first one is the ability for the AI to use tools. And these are the tools that you would use typically at the command line. And a lot of these tool use features will be built in. I did talk about MCP servers briefly, but that’s the ability to add an additional tool, kind of additional capability. Skills are also in a sense an ability for the AI to use specific tools which you can define.
So I can give some examples of that. I did want to briefly mention this Playwright MCP server which is very powerful as a developer but also works great for performance. So Playwright is typically used for testing and lets you kind of script a series of interactions in the browser. And by having this installed in your AI, it can actually write a script to perform some interactions on your site and measure performance while those interactions are happening.
So a lot of times performance isn’t just about how the page loads or how your product loads but also what happens when users are interacting with it. Famously INP to solve for, and that has to do with interactions, right? What, how quickly does the browser react when users open a select box or click on an accordion? Is it janky? Is it slow? And those are difficult things to measure just in a single state. You need to actually kind of go through the interaction. So this is where Playwright can come in really helpful.
So once you have this tool installed, you can type a command in here like I typed in: use Playwright to test the performance of navigating from the homepage by clicking on the learn more button. And so once I’ve told the AI to do this, it will actually create a scenario in Playwright. It writes a script and then it performs that action in the browser in a live browser and measures the performance of that. So this is just one example of a skill, of a capability. I guess it’s an MCP capability that you can leverage using your AI.
I built one just recently that had to do with, I was developing a feature for WordPress core that involved uploading images inside WP Admin. And I wrote a skill that taught the AI how to not only log into WordPress, but also capture the login cookies so that on subsequent test runs, it didn’t have to log in anymore. It could just present the logged in cookies.
An important point here when letting the AI run amuck and do work on your computer without a lot of your interaction is to have guardrails in place. And the AI agents that are running in CLI do a pretty good job of this from the get-go, out of the box. They can really only make changes to the folder that you’re in. So if you’re in a GitHub, if you’re in a Git repository in a folder, I feel very confident that Git will protect me from any changes the AI may inadvertently make. I’m in a branch. Everything is version controlled.
And also every time it runs a new command, the AI is going to prompt you, do you want to let me run this command? And sometimes I found that many of these commands just feel totally safe. So running npx Lighthouse, this is going to run the Lighthouse tool that’s provided by Google. I feel very confident that the AI can run this safely in almost any context. I don’t feel like this could be hijacked. So as soon as I see the AI agent ask me for permission to do this, the next thing I’m going to do is go into my permissions file and add that command to always be allowed.
And you can set this at the project level or system-wide. But I would just, any commands that you feel comfortable with running without your authorization, you can just add that into the permissions allow list and then the next time the AI agent is trying to use that tool, it will just use it without asking you. And I’ve got a whole bunch of these in there. And what again this allows me to do is set up that loop where the agent is just going off and doing work for me and researching and trying things and testing to see if they worked until it gets to the right result. And I don’t have to intervene at the end of that process. That’s where I come in and do the code review, do the manual testing, ask it why it made this change or that change. But during that process, I want it to be able to kind of iterate on its own, to act on its own, and that’s why I’m going to add these permissions in to allow it to do things that I feel are going to be safe.
One fun feature that I’ve discovered somewhat recently is this status line command. I don’t know if all the tools have this, but this lets you customize your status line. So here you can see in Claude Code I’ve added these nice little, these are not default. So the context and the session usage, and also I’ve added, in addition to the PR number I show the number of tests that have passed and failed or were skipped and the name of the PR.
So you just type in status line and then you tell Claude what you wanted to do. Please add a line that shows the number of CI tests that have passed and failed on the current PR. And then it writes the code for you and you verify that it looks correct. So I didn’t actually code this up. I just asked the LLM to do it for me.
When you’re working on performance, you tend to make small changes and want to see how those have affected your site. An important point here that I want to make is that as you’re going, you need to sort of capture the results as you go, because sometimes you will make changes that regress your performance and you want to be able to go back and identify those. So again, I mentioned exporting your data as you’re going. That works really well.
The other thing that you’re going to be able to do is take all of that exported data as you capture each of these changes. You make a commit to your repository. And then later you can take that data and pull it into AI again. So you can ask AI to import all of your JSON files. They’re all in one folder. And then tell it to put it in a spreadsheet. Tell it to do a comparative analysis. Identify the changes that had the most impact. Identify changes that had a negative impact. It’s great for being able to look back after a period of time if you’re using real user metrics and see how those have changed and compare those over time using AI.
So the idea here is that as you’re working, each time you make small changes you should have some record of what that change is, and AI is really good at helping you analyze those and connect the dots between the changes that you made.
I think I’m getting close to the end here. This is just the point that once you start using AI in this sort of agentic workflow where it’s off working for you, you will find yourself sitting around waiting for the AI. So, you know, that’s fine. Go ahead and have, take a deep breath, go have a coffee, let the AI work for you. But also, you may find yourself wanting to branch off and start a little bit more work on a different task, a different performance optimization task. And this is where worktrees come in.
So worktrees are a feature of Git that most people don’t know about, but it’s a built-in native feature of Git that allows you to essentially create a copy of your repository in another place on your hard drive and work there separately. So you can create different worktrees just like a branch, but instead of just being a branch in one folder, it becomes a separate folder and it’s again all managed through GitHub. So it’s all controlled under the same version control under one GitHub repository, but you have multiple copies and that allows you to launch your AI agent in each copy to work on a different task.
Like I said, this is a native GitHub feature, but I found using this Worktrunk tool actually makes it quite a bit easier. It has some just niceties built on top of worktree that allows you to very quickly switch and delete and push your worktrees. So I highly recommend checking out this Worktrunk and especially if you find yourself waiting around for AI to complete tasks. You don’t need to like clone another copy of the repository. You just create another worktree and then you can start working immediately on the next task.
And that’s it. That is my talk. I hope you’ve gotten some nuggets of information out of it. That QR code will give you a shared version of this deck, and then I am here to answer any questions you might have.
Host: Thank you, Adam. That was very interesting and a lot of details. So, that’s very good. For everybody on the call, if you have any questions please add them in the Q&A tab. So to start with, one of the questions was about, can Claude Code get access to WordPress website via the Claude Code, via the Claude Chrome extension?
Adam Silverstein: Yes, although I have not, so Claude itself can script a web browser. So it will, it already knows how to launch a web browser and do tests in it. I mentioned using Playwright to do that as well. I know what you’re talking about, the Chrome extension that you can install. I’ve seen that used more in the context where you want Claude to take over your browser and do some specific task for you like go search for a cheap hotel room, say. I have not seen them yet link the two together. I’m sort of expecting them to come out with that feature since Claude moves very fast. But I would love exactly sort of what you’re describing where I’m debugging an issue in Claude Code and then it sends something off to the Claude extension. You would think the extension would have access to kind of all of this internal data about the browser as well. I have not seen that actually working yet, but I won’t be surprised if it comes out tomorrow.
Host: So in terms of maintaining the website or bug fixing, would you prefer Claude Code directly on the installation of the WordPress environment?
Adam Silverstein: I think ideally you have a local copy of your WordPress environment. So you would have some local instance of it that you could test out your changes before you push them up. And short of that would be a staging environment. Obviously you don’t want to work in production. But an online staging environment would work. It’s just faster if you’re working locally because you can just make the changes and test them much more quickly. That said, often performance issues do have to deal with real users interacting with your site and that limits what you can do in a local environment. So you will need to, at some point there will be certain types of optimizations that you’ll just need to have pushed to your site and then see, you know, it might even take weeks or a month before you get data about how that impacted your work, which can make it really challenging to make changes that have a positive effect. But a lot of times you can get a hint if something’s going to work by doing local testing in the right way and then with fair degree of confidence push that up to production and hope that it’s going to improve things.
Host: And one question is about how AI will replace the, or how much hours basically will the AI replace of the developer, or basically save time with this bug fixing.
Adam Silverstein: Yeah, I mean I think it varies a lot. What I have found for me personally, I’m still spending the same amount of time sitting at my computer working. I’m just accomplishing a lot more in that time. So for me, it’s been a multiplier of my work. I’m able to spend some time writing a prompt, thinking about a problem, interacting with Claude, and then send it off to do some work and then start on another task.
I do find there’s a limit, like cognitively, to how many different tasks I can work on at once. Once I hit like four or five different things that I’m working on, then when I switch back to the first task, I have to kind of remember what it was. It’s not that Claude forgets, it’s just that I forget and then I have to kind of reacquaint myself.
One thing I do really like about Claude is that if I’m, I work in a co-working space and if I’m in the middle of something, I can close my laptop and just shut it down. I can get home and open my laptop later and it just happily resumes where it was. It doesn’t lose any context or anything. And if you do inadvertently quit it, you can also, there’s a continue command where it will sort of reload the context. So I do really appreciate that about it. You can sort of pause tasks that you’d been working on, continue working on one thing and then eventually get back to the other things.
I think the main thing about the multitasking is just not feeling like you’re waiting around for the AI. Because once I had, and really a lot of this has been just in this year that I felt confident assigning these long running tasks, but once you have given the AI a task that it might spend 10 or 15 or half an hour on, you know, might spend quite some time on it, and then you’re just sitting there waiting for it, that’s when you really start to think, okay, what can I do now, and you start to, you know, go to these other tools like Worktrunk.
Host: One question from Joe is, combining Claude with Gemini, useful for saving resources or just a waste?
Adam Silverstein: I mean, so I don’t know exactly what you mean by using Claude with Gemini, but I know you can use different AI agents with different tools. I think with Claude Code you’re pretty much stuck with Claude, but I might be wrong about that. I know with, you know, tools like Cline, which is a Chrome extension, I’m, not, sorry, a VS Code extension, that allows you to choose from many different models and they even have usually typically some free models available to you. That’s really a fun way to experiment with different models and to try them out. I think that’s great if you’re just getting into it and you want to try out the different tools that are out there, the different models, and there are some that are much lower cost than Claude, or free. So definitely use that as a way to experiment. My personal feeling is that once you’ve found a model and a tool set that you like, just stick to it. Don’t spend a lot of time trying all the different things because it becomes more of a distraction than a help.
Host: And your presentation had a lot of insights. AI is going very very fast. So for somebody who feels overwhelmed, where can they start to get more familiar with the tools that you have covered?
Adam Silverstein: Yeah, I mean that’s a really good point. My experience with AI is unique to me. I have many many years of development. So I’m at a level where I’m using AI like a teammate for me where I’m assigning it tasks. If you’re more junior or if you find that it’s overwhelming how much it can do, perhaps a better use is as a tutor or as a kind of mentor for you, as an assistant where you’re asking it more the why question. It’s really helpful at explaining code.
If you’re looking at a performance problem and you ask it to analyze it and it tells you a bunch of things that you don’t understand exactly, just ask it like, what do you mean by that? Explain that in more detail. Explain that to me like I don’t know anything about performance. Like I’m a 5-year-old. The AI will not judge you. It will not feel bad about having to repeat itself. So, you know, use it to help you to learn and help you feel more confident in what you’re doing.
Tell it that, you know, you feel like you should make this change. What does it think of that idea? When it comes up with an idea, tell it, what other things did you consider? What else, other ways could I tackle this problem? Use it to kind of expand your thought and help you understand things rather than just assigning it stuff and having it do things then you don’t learn from or don’t understand. So a lot of that usage depends on kind of where you’re at in your developer journey, what you’ll find most valuable.
Host: Yeah, that’s a very useful feedback. And then, what are basically common mistakes with AI and how would you avoid them?
Adam Silverstein: You know, that is, so that’s an interesting question. I would have answered that very differently six months ago, I think. Because the AI has gotten so much better at not making mistakes. One of the things that I would see in the past was the AI would be focused on a very narrow task and fail to look at the larger picture.
So a humorous example of that is asking the AI to fix a linting error and then it fixes the linting error but while it’s doing that it introduces a PHPStan error, and then you ask it to fix the PHPStan error and it does that and it reintroduces the exact same linting error that it just fixed a moment ago. And I actually had that experience where I had the AI just in a loop and it would have sat there all day long if it didn’t hit its query limit, just trying to solve its own errors. I don’t think the most junior developer would have gotten through that loop two times before it realized, wait, I just did that a minute ago. So I guess, but I haven’t seen that happen more recently because one of the things that’s happened now is the AI tends to check its own work. So it will do something and it will actually notice when it’s made a mistake.
I guess a mistake that you could make would be to sort of blindingly trust the AI to do work for you. I do think we still need to review what the AI does. When it’s asking you, is it okay to do this command, you need to actually look, is that okay? It’s quite fun to use those tools where you just go and you type build me an app that does this. And you can do the same thing with Claude. You can say build a React app that analyzes my, you know, GitHub profile and it will just go build a whole app for you. And that’s fine for a one-off thing. But if you’re editing your codebase of a product that you launch or a website that you own and maintain, you need to make sure that what you’re putting in there is actually appropriate.
I’ve seen it, for example in my WordPress core work, I’ve seen it use external tooling, external libraries to bring in on a particular task when WordPress already has an API to handle that. So some of that is it just doesn’t know the right context, but some of it is just it’s just moving fast and trying to fix the problem you’re asking it to fix, and it may not have the larger picture of what you’re doing overall.
I guess one other thing I would say is that more recently I’ve been spending more time like building my own skills, writing CLAUDE.md files to modify the behavior. So one mistake you could make is not investing any time in actually fine-tuning the AI to work with your project. Definitely take the time to do that. And it’s something you can revisit. It’s something the AI can help you with. But make sure that, you know, wherever you’re working, whatever tool you’re working with, that you take the time to understand its commands and that you’ve customized it to suit your needs.
You know, recently I told Claude, not Claude Code, but the app that I use on my phone, that I don’t want to have a conversation with it every time I ask it a question. I just wanted to answer the questions. And that has been very effective. Just taking that small bit of time for me to adjust its behavior. It works much better for me now. So I think that’s an important point that people might miss.
Host: Okay. Thank you. And a question related to that. So how are you basically maintaining consistency in the code but also across templates?
Adam Silverstein: I mean again I think Claude Code is doing a much better job of that now. Especially when you give it sort of like a, put it in plan mode first and it does a bunch of analysis. I definitely use CLAUDE.md. You can also use AGENTS.md, which is a more generic file, but the idea is to describe in plain English exactly what you want its behavior to be.
A good example of that is I write a lot of commit messages and I want the commit messages to have a specific style. Typically, the WordPress core commit style is my own style, but it means keeping the title small. It means using a certain tense when you’re describing the changes. So you don’t say, you say, you know, add new protection for failure instead of I added this, or, you know, how you state things is very specific.
So I wrote a skill for that and part of that skill is just me describing how I want it to work. Part of it when I created it was pointing to the reference documents that we have in core and part of it was giving some examples of commits that I had made previously. Now, anytime I’m in Claude Code, I can just use my slash commit command and I know that it’s going to follow sort of my own pattern. And again, that comes back to things that you’re doing regularly. You want it to behave a certain way. Take the time to train it to do that either in your CLAUDE.md file or creating a skill for it.
Host: Very good. And then last question. So with the AI, basically, how do you keep your API cost as low as possible while it does the work? A personal pain point.
Adam Silverstein: Yeah, I mean that’s fair. And like I said, I’ve already convinced myself that it’s worth it and I’m actually paying for the Max plan right now. So I’ve invested in it. There are definitely much cheaper ways to do it. I do really like the tool Cline if you haven’t checked that out. Cline is the name of that tool and it’s a Chrome DevTools extension that lets you connect with many different models. It often has free options built into it. So, and there are a lot of models out there. You can run models locally on your machine if you have a significantly powerful machine.
You can sign up for free accounts and use a little bit here, a little bit there. I’m kind of on the opposite end right now where, like I said, back in the old days, we used to try to write code that would make the fans in our laptop spin, meaning like we’re trying to make the computer work hard for us. And I sort of feel the same way with AI now. I am paying a significant amount of money every month to use Claude. So I’m trying to use it as much as possible. I’m trying to get my money’s worth out of it.
But I would just say, you know, if the cost is a concern and you don’t feel like you’re getting the value out of it, use the free capabilities that are provided. Switch around to different models. Try some of the freer or lower cost models. And again, check out Cline because it’ll let you just experiment with all these models all in one place, right in your IDE, and you can find ones that work well for you that are much lower cost. So you don’t have to spend a ton of money on this stuff. I appreciate all the questions. It’s great that there were so many questions. Thank you.
Host: Thank you. Thank you. And there were very insightful answers. So thank you Adam, and for everybody here, stay around. We have a very interesting session coming up. Break the speed acronyms, decode common speed and website acronyms. So stay tuned and we’ll be back shortly. Thank you.
Answer a few questions, and we'll present you with a personalized tour of the Cloudways platform based on your answers.