This episode is part 2 of a 2-part conversation with Joe Casabona, a systems architect for solopreneurs and a self-described automation geek. You can catch part 1 over on the Streamlined Solopreneur feed here
What if the difference between a chaotic, scope-creeping project and one delivered calmly, on time, and on budget wasn’t just better estimating - but a totally different approach?
Joe shares how he used "vibe coding" - collaborating with AI as a coding partner - to rescue a complex nonprofit website project from spiraling out of control. You’ll hear how he navigated unexpected technical requirements, avoided burning weekends, and delivered a solution that protected both his business and his mental health.
This isn’t about working faster. It’s about designing a system that supports calm, margin, and intentional business choices.
What You’ll Learn
- How "vibe coding" can help consultants keep projects on track without endless late nights
- The importance of deeply understanding client needs (and what happens when you don’t)
- Why AI is a better "rubber duck" than a magic wand
- How to approach AI as a partner rather than a replacement
- Practical ways to use AI to reinforce your business values and protect your time
Learn More About Joe
Learn More About Susan
Grab the Calm Service Design + Delivery Swipe File here
We value your thoughts and feedback. Feel free to share them with Susan here. Your input is not just valuable, it's crucial in shaping future episodes.
Susan Boles:
Hey there. Susan here with a quick note before we dive in. This is part two of a special conversation with Joe Casabona. We started over on his show, Streamline Solopreneur, where we talked about the concept of vibe coding, basically using AI as a partner in your development process instead of coding everything yourself. If you haven't listened to that first part yet, I definitely recommend starting there.
Susan Boles:
You'll find the link right in the show notes. What if the difference between a chaotic scope creep riddled client project and a calm, delivered on time system wasn't just better boundaries or more accurate estimating, but a completely different way to approach the project itself. Today, we're solving for Calm. One KPI, one bottleneck, one business at a time. And I'm your host, Susan Bolz.
Susan Boles:
As I mentioned, this is part two of a two part conversation with Joe Casabone. Joe's a system architect for solopreneurs, a former web developer, and a fellow automations geek who loves all things tech. In part one over on Streamline Solopreneur, we geeked out about the idea of vibe coding, which is basically using AI as your coding partner. You describe what you want built, and it writes the actual code for you. So if you're curious about the how of vibe coding or what can go wrong when you treat AI like a magic wand, go listen to that first part.
Susan Boles:
You'll find the link in the show notes. In the second half, we're talking about how Joe actually used vibe coding to keep a complex client project on track. We're digging into the bottlenecks he hit, the unexpected scope changes, and how he used AI not as a replacement for expertise, but as a systems design tool to keep both his business and his brain calm. So here's the setup. Joe took on a nonprofit client project thinking it would be a pretty straightforward WordPress build.
Susan Boles:
No custom code. No biggie. Right? But if you've ever worked with clients before, you could probably guess what happened next. Midway through, he realized he needed advanced custom fields, complex user roles, and even a full Google Sheets macro system to make it all work.
Susan Boles:
Basically, it got way more complicated, way faster than expected. This is usually the part where most consultants either burn the midnight oil trying to catch up to the original timeline even though the scope has now ballooned, or they go with option two, blow up the butt. But instead, Joe pivoted. We are talking about vibe coding a client project and specifically using vibe coding as a tool in client services. So talk to me about the project.
Susan Boles:
What was the project? How did it come about? And you as a developer, how did you decide not to write your own code but to try and use vibe coding to accomplish the project?
Joe Casabona:
Yeah. It was a lot of panic, basically. So I was a web developer by trade for twenty years. And then around the pandemic, I decided web development does not jive with the type of dad I wanna be, right? Like, if you do big client projects and, like, something goes down on a Saturday, like, you're kind of on the hook for that.
Susan Boles:
Right? Especially when it's somebody's website?
Joe Casabona:
Yeah. Exactly. And especially if they're making money off of that website. And so, like, I don't do web designer development anymore. I wanted to get into coaching people in systems and consulting with people in systems.
Joe Casabona:
And I didn't wanna write custom code because I didn't wanna have to support it. But I will still do the occasional simple website, usually for a nonprofit organization that I believe in, right? And so, like, this, I don't think they'll mind me saying it at this point, but, the nonprofit is called Sale Beyond Cancer. It means a lot to us. My father-in-law sells for them, and my mother-in-law passed away of cancer a few years ago.
Joe Casabona:
And so, you know, I did some pro bono work for them last year, and then they wanted this big system that they said they had budget for. And the big piece of it was managing all of their sales S A I L S with this giant Google this unwieldy Google Sheet and they wanna have a portal. So I was like, Oh, this is great. I'll, it'll be WordPress. I'll create some stuff using a plugin called Advanced Custom Fields.
Joe Casabona:
So again, no code. When something happens in the Google Sheet, I'll send it to the WordPress portal. Done and done. My fatal mistake here was that I didn't talk to the head scheduler soon enough. So like a few folks walked me through what they envisioned but I didn't understand how the actual user was going to use it.
Joe Casabona:
And then I also made a bunch of assumptions about the plugins I was using and the block editor, because I'm like, block editor came out seven years ago. Surely these issues are fixed now. They were not. And then the third assumption I made was that when you use Zapier with Google Sheets and you change a field, any time that or a cell, right? Yep.
Joe Casabona:
If you change a sell, anytime you change it, the Zap will trigger. What I learned through this process was only unique values trigger the Zap.
Susan Boles:
Oh, interesting.
Joe Casabona:
So if they had a sale scheduled and then postponed, they wanted it to be deleted from the portal. And then when they scheduled it again, they wanted it to be sent back to the portal. Couldn't do that because the scheduled sale status was not unique. And so let's forget the WordPress code for a while but like I vibe coded. There was a bunch of stuff that I realized needed custom code and I just had ChatGPT write all of the WordPress code, which I could describe.
Susan Boles:
Yeah. I think let's let's talk about the process because I think a lot of people you know, vibe coding, you and I are pretty early on when it comes to technology adoption. Yes. Yes. Both make our living We're the early adopters.
Susan Boles:
Geeky API things. Right. Then your average person doesn't necessarily understand API. And I think vibe coding, particularly because it's such a new term, new idea, I think it would be really helpful to hear what was the process that you used to have ChatGPT help you.
Joe Casabona:
Yeah. Great question. So ChatGPT, I've said before is is or AI in general has been my rubber duck. So I will talk through a problem with it. I'll ask it, Hey.
Joe Casabona:
Is there a solution that does this? And then while I am panicking because I scoped this project at, say, twenty hours and I'm realizing that it's gonna be closer to like a hundred hours if I have to custom code this stuff. I'm like asking a bunch of stuff and, it said like, Yeah, you would need a custom plugin for that. Do you want me to code that for you? And I thought, Yes.
Joe Casabona:
Let's see what happens
Susan Boles:
Let me see how this goes.
Joe Casabona:
And again, WordPress is like fully open source. So like it had a lot of material to learn from. But I needed some stuff with advanced custom fields. This is the problem. Advanced custom fields is an incredible plugin for WordPress that allows you to add additional information to a post.
Joe Casabona:
And so I created this sales post with all of like the passengers, the captain, the crew, when the sale was, the vessel, and the marina, all from the sheet. And then there's still not, like, a native way to display that in the block editor. You have to code a custom block. And I'm like, This is dumb. And so ChatGPT just wrote all of that for me.
Susan Boles:
So did you end up having to debug it? Did you test it and it just it was just fine?
Joe Casabona:
Yeah. For I'm gonna say 95% of the code it wrote for me. I just tested it and it was fine. And if it wasn't, it's because I didn't prompt it the right way.
Susan Boles:
So how did you go about creating the prompts to get the right output? Because I think that's actually the challenge here Yeah. Is I think at the beginning when AI first came out, there was a lot of talk about, like, prompt engineering Right. And that it it mattered. And I had not found that to be true up until recently.
Susan Boles:
Yeah. Recently, I found that the prompts really do matter in the quality of the output because it's doing more, I think, than, you know, when originally when it came out and everybody was like, ah, write me a LinkedIn post. Right. You know, there wasn't the granularity of information that you needed because we weren't expecting it to write a program or to be able to do things independently like it can now.
Joe Casabona:
Yes. One of the things one of my LinkedIn posts that deeply upset the AI advocates early on was telling ChatGPT to act like a doctor is like telling George Clooney to act like a doctor. Like, they're not doctors. And so someone was like, It puts it in the right context. I'm like, Do you need to tell it to act like a doctor, though?
Joe Casabona:
And since then, research has come out that when you tell it to act like something, it does improve the quality. I never told her to act like a programmer. It's stupid.
Susan Boles:
That's why I'm like, I I did not ever find success with have this personality or do this thing. I like to tell it what I'm expecting. Yes. So these are the outcomes. Or I need you to be a brainstorming partner with me.
Susan Boles:
I want you to, you know, poke holes in what I'm Yeah. Like, help me help me think through this, but don't just blow smoke up my ass.
Joe Casabona:
Right. Yeah. Don't just agree with me. That's a good one. For this project, because I also helped it generate the proposal for me, I recorded all of the, like, the discovery call and then the requirements call and the kickoff And I put that all into the this project in ChatGPT.
Joe Casabona:
I said, Help me come up with a proposal based on the requirements we come up with, and here's how I'm gonna do it now. And so it knew all of that. And so I continued in that project, basically in that one chat, Hey, I need help with this. What should I use? What are my options?
Joe Casabona:
And so by the time it got to, Do you want me to code this for you? It was already very familiar with what I needed. And so the main thing I did was I said, If I upload the advanced custom fields export of all the custom fields I created, can you code these things for me?
Susan Boles:
That's such a time saver.
Joe Casabona:
Yeah. And it did it. And then, like And then it got even crazier because, like, you know, they have about 80 users on the site, and the users could have multiple roles, which I didn't learn until later. So I was like, Oh, we'll just assign them different roles. And so I found a plugin that allowed for multiple user roles and they gave me a spreadsheet to import.
Joe Casabona:
So I gave it a CSV, and I said, Here are all the users I need to import. I'm using this plugin that allows for multiple user roles. Can you create an import script that will import each user with the roles? And, again, it did it flawlessly. And so, like, that also saved me a bunch of time or money.
Joe Casabona:
Because this is the thing, right? I could have found premium plugins for all this. Yeah. But then I would have had to go to And I'm like, sorry to all the premium plugin developers out there. But I would have had to go to the client and been like, Hey.
Susan Boles:
Hey. Can we buy this thing that I didn't know that I Yeah.
Joe Casabona:
I'm blowing up the budget unexpectedly. Right? Vibe coding the WordPress aspect of it was so helpful. And, like, WordPress is something that I've done for a long time. So I'm reviewing the code and saying like, Oh wow, this is actually the right way to do it.
Joe Casabona:
Like it's not like creating custom tables when it doesn't need to. It's not like using the wrong methodology to do stuff that could potentially break the site. It automatically created, like, admin pages so I can turn things on and off if I needed to. It was really impressive. I do wanna move on to the Zapier Google Sheet thing because that was also super helpful.
Joe Casabona:
So two things led me to needing this custom macro, right, or Apps Script, I think they call it
Susan Boles:
Yeah.
Joe Casabona:
In Google Sheets.
Susan Boles:
It's a macro.
Joe Casabona:
Yeah. Yes. I get that Google Sheets is not a database. But
Susan Boles:
So many people use it as one, though. Right. I think because it's accessible, everybody has it, and it's something that everybody can understand how it works. Like, it feels much more approachable than, like, a relational database where you need to understand relational databases and database structure and that kind of thing. Everybody understands a spreadsheet.
Joe Casabona:
Yeah. Right? Yes. Yes. And so, again, this is I have a chronic problem of if this feature is obvious to me it's definitely in there.
Joe Casabona:
And so I thought, alright, well if Zapier needs a unique value in a field to trigger a zap, I will move it from the status change which can only be one of five to a timestamp. And that timestamp I'll just say like, Hey, Anytime any of these any row or cell changes, update the timestamp. Right? Very common feature in databases. Not a built in feature of Google Sheets.
Susan Boles:
I can kinda see that because it's again, it's not a database. So something like Airtable is in fact a database which has fields that you can say. When was this created? When was this updated? And then it's built into the characteristics of the software, but Google Sheets is just trying to be a spreadsheet.
Joe Casabona:
Right.
Susan Boles:
People use it for all kinds of things, but it's just trying to be a spreadsheet.
Joe Casabona:
And I thought, for sure, if it's not native, then there's probably an extension, And there wasn't. And so I was like, ChatGPT, how do I do this? And it's like, Oh, here's the code that you need to make this happen. And so I said, Okay, here's the spreadsheet. When these columns change, update the timestamp, and so, like, the the time is unique enough.
Joe Casabona:
And so I didn't know that Apps Scripts or macros were, like, a real thing in Google Sheets.
Susan Boles:
No. I didn't know until relatively recently. Like, I've built a bunch macros in Excel and,
Joe Casabona:
like Right.
Susan Boles:
Because that's what you used to have to do back in the day.
Joe Casabona:
Right. That's, like, that's how you would get Excel to do stuff. Yep. And so, like, I simultaneously learned about this and then had the code. That took some debugging.
Joe Casabona:
And it's mostly because, like, I'm not as familiar with that and so I didn't really know what to ask for. Yep. And then I As I'm, like, doing this on the fly, I'm like, Oh, well, I really want it in this case, in this condition, and I only want it on these sheets because it's also, like, multiple sheets. It was, like, a behemoth. And so, like, I think if I had been clearer with exactly what I want, it would have probably come up with the code.
Susan Boles:
But I think it's an interesting counterpoint to you using vibe coding when you are in a system that you're very familiar with. You know, you can write custom code for WordPress. And in that case, it was very successful right out of the gate because it was benefiting from your knowledge of the existing system versus using Vibe coding for something where, yes, if you know one kind of code, for the most part, you understand how coding structures work.
Joe Casabona:
Right.
Susan Boles:
But going from one language to another is not as straightforward.
Joe Casabona:
Or environment. Right?
Susan Boles:
Like, I
Joe Casabona:
could say I want an iOS app that does this. But, like, I don't know all I know about iOS apps is that you need, like, a developer account. But, like, I don't know really how to describe an iOS app, especially the user interface. And, like, I've never done an iOS. So, like, it would also have to, which it's done for me before, how do I get this code where I need it to be?
Susan Boles:
That like, that's the piece that I think is interesting in the different experiences between using vibe coding in a system you're familiar with versus using one where you're not.
Joe Casabona:
Right.
Susan Boles:
You have to ask it a lot of questions to say, what do you need from me? What what other information are you missing?
Joe Casabona:
Yeah.
Susan Boles:
What documents would be helpful for me to provide? But it's not gonna necessarily know it. I think it's difficult in, like, environments where you are not familiar with that structure. You don't know what you don't know. Right.
Susan Boles:
Where, like, in a situation where it's a environment you're very familiar with, you know what you don't know, and you know what to look for because you're very familiar with how things can go off the rails.
Joe Casabona:
Yes.
Susan Boles:
And so I think that is an interesting aspect where right now, vibe coding works really well in an environment where you know what it is, you know what you're trying to accomplish, you know what to look for. And I think it's a lot harder to do in environments where you don't necessarily aren't familiar with the coding environment. You're not necessarily familiar with how that works or how it interacts because you just don't know what you don't know. Yeah. That's And it's not gonna tell you what you don't know.
Joe Casabona:
That's exactly right. And, like so even with, like, the WordPress project, like, there are a few ways I could have added the code to the WordPress site. There's one very right way to do it, and then there is one very wrong way to do it that would be destructive. Like, if you did it this way and the WordPress site updated, that code would be gone. And chat GPT did a good job of explaining each of those things.
Joe Casabona:
But if I'm just in a rush and not paying attention, I might have done the
Susan Boles:
wrong one. You're gonna know. And I think right now we're at a kind of an inflection point where the possibility is there and also the possibility to really mess things up where you're messing around where you don't know Yeah. What you're doing.
Joe Casabona:
You still do need to know what you're doing. But in in this case, it saved my butt. Like, it really did. It allowed me to deliver the project on time and on budget. On budget for the client.
Joe Casabona:
It probably ended up taking me, like, about ten hours more than I expected.
Susan Boles:
I mean, who hasn't scoped a project and then gone, well, mess that one up.
Joe Casabona:
Right. But I was looking at, like, triple or quadruple the amount of time.
Susan Boles:
Joe's use case is a great example of how tools, when used intentionally, can give us, as consultants, something like superpowers. They don't have to replace you, but if you understand how to harness them, they can support you in ways you might not expect. In this case, Joe managed to deliver his project on time, close to budget, and without sacrificing his weekends to scope creep. By letting AI handle the heavy technical lift, he protected his time and his client relationship. Instead of defaulting to overwork, he leaned on the lever of efficiency to rebuild the margin he would have otherwise lost.
Susan Boles:
And this isn't just about coding. It was about designing a decision system that prioritized calm. What I love here is the subtlety. Joe didn't use AI to do more. He used it to protect the shape of the project and his role inside it.
Susan Boles:
He stayed the architect, not the firefighter. It's a powerful reminder that the tools we use, AI included, aren't just about output. They're about reinforcing the kind of business in life we actually want. But let's zoom out just a little bit. What we just walked through, it wasn't really about AI or code.
Susan Boles:
It was a snapshot of how to build a calmer business by intentionally pulling that lever of efficiency. And in this case, efficiency wasn't about moving faster. It was about reducing the load, lowering the decision fatigue, and building in margin. So here's your tiny action to help you calibrate towards calm. The next time a project starts to sprawl, pause and ask yourself, what problem am I actually solving?
Susan Boles:
And is there a tool or a collaborator, whether that's human or AI, that could help me hold the boundary instead of absorbing it. That one shift can create so much more margin, not just in your calendar, but in your brain.