In my first post, I built a client’s blog in an afternoon. That was the deliverable. But behind that deliverable is the company that produced it, and the company itself was built the same way.
I registered a consulting practice two weeks ago. Here’s what’s running the business right now.
- A public website with a blog, subscribe flow, contact page, and a billing form that collects client details
- A backend that manages subscribers, handles confirmation emails, syncs contacts to the CRM, tracks finances, and generates CSV exports for my accountant
- A financial dashboard where I track every krona in and out
- Branded email delivery with open and click tracking
- A CRM with contacts, forms, a meeting scheduler, and website analytics
- An operations system with about 30 custom automations that runs content, client management, invoicing, and everything else
Total monthly cost: about $200. That’s a Claude Max subscription. Everything else on this list is either free or close to it.
You couldn’t hire one intern in one department for $200 a month. I have marketing, operations, project management, development, architecture, tech support, and a bookkeeper. That’s not one person in one department, that’s every department.
I didn’t make most of these choices on my own. The conversations behind the decisions are what actually matter here.
I’m one person with a full-time job and a consulting gig on the side. I don’t have time to manage six different platforms with six different dashboards and six different billing cycles. That much I knew. But how to actually build any of it? I had no idea.
I’m going to nerd out for a few paragraphs. If the technical names start to blur together, that’s fine. Skim through and I’ll welcome you back on the other side. The specifics matter less than what they represent. A non-developer having conversations with AI and ending up with a real, working business stack. 🤓
It starts with HubSpot, which is the one piece of this I actually understood going in.
When I was running my company, I had HubSpot Professional and I loved the product. The data it collected, the way it organized contacts and deals, the analytics. We were spending $20,000 a month on a HubSpot partner agency to build out our inbound pipeline. That was a different life and a different budget.
Last year, after I started getting serious about AI and wanted to start writing about it, I bought HubSpot Starter and tried building a website on it. They have a CMS even at that tier, but it was painful. At every turn, something was locked behind a much higher plan. The templates were rigid, the customization was clunky, and the nickel-and-diming never stopped.
I got a site up, but the positioning was completely off. I was trying to present myself as some kind of AI expert with enterprise credentials, and it came off like a used car salesman. I was trying to find a voice that wasn’t there yet, so it was over the top and forced. I abandoned it and went back to breaking shit where I felt more comfortable.
When it came time to try this again, I knew two things. I wasn’t going to use HubSpot’s CMS, and I wasn’t faking an inauthentic message. By then I had enough real experience and real stories that I didn’t have to fake anything. I just needed a place to put my thoughts.
So I told AI that I wanted a blog that was simple, fast, and cheap. Their answer was Astro. I didn’t know what Astro was. The only Astros I knew were in Houston and won two World Series. But AI explained what it does, which is to generate plain HTML from markdown files. I looked at it, thought it made sense, so we put the site together on it. Again, I’m no developer and I still couldn’t open that repo and explain everything in it. But I understood enough and felt it was the right choice for now.
The site needed to be hosted somewhere, and AI suggested Cloudflare Pages. We discussed a few options but this was free and deployment was simple and automated. Once we moved the site there, the discussion kept going. My domain was still registered at GoDaddy. If the site is already on Cloudflare, why keep the registration somewhere else? GoDaddy charges extra for private registration while Cloudflare includes it. Moved.
I still wanted HubSpot for the CRM, website analytics, and tracking capabilities. And honestly, for that stuff, the $9/month Starter tier is a steal. I can tag emails, tie them to contacts and companies, track deals through a pipeline, and see what’s happening on the site. That’s real CRM functionality for almost nothing. So we set up the subscribe form and double opt-in through HubSpot.
Then I got the test confirmation email. It had a logo on it, but it looked bad. The form we added in the footer was equally meh. HubSpot Starter is great right up until you want to do anything marketing-related beyond the absolute basics. The moment you want control over the confirmation email or the form styling, you have to upgrade to Professional. $9 a month to $890 a month. Negative.
AI kept telling me to let it go. It’s one email and no one will care. Don’t overcomplicate this. And normally that’s good advice because I do overcomplicate things. I never expected this site to be magical but that confirmation email is the very first interaction a subscriber will ever receive from me. I don’t want their first experience to be ugly. Our current email is fairly plain but it maintains a consistent look, and that mattered enough to push back.
So I asked about the level of effort if we did it ourselves. I already had a Resend account from another project, so we looked at whether Resend could handle the opt-in flow on its own. It has unsubscribe handling, but you still need somewhere to store the subscriber data. We tried wiring Resend and HubSpot together, but that was a dead end. This meant we needed somewhere to hold the data, manage the confirmation flow, and then sync to both services.
We weren’t writing software. We were whiteboarding. We knew the business requirements, what tools we already had, and that our budget was basically zero. The question was whether we could solve this with what we’d already built or if we needed something new.
That’s the back-and-forth AI and I kept having. What about this approach? What’s the level of effort? What are the trade-offs? We’d keep at it until we found something we could stand up quickly, maintain easily, and that wouldn’t cost an arm and a leg. Some ideas we tried and abandoned. Some worked well. The end result was an API layer on Cloudflare, basically a single backend that connected all the pieces, and it cost nothing because we were already there.
And then it kept compounding. Every Swedish sole proprietorship gets told to sign up for Bokio or Fortnox for bookkeeping (think QuickBooks but Swedish). I’m sure they’re great products, but they start at 189 to 249 SEK a month with 12-month contracts. For a business with a handful of transactions per month, that’s overkill. We already had a database sitting there. Adding financial tables was extending what existed, not buying something new.
The dashboard needed login protection. One toggle in Cloudflare, tied to Google sign-in. Zero cost. Each problem just led to the next one, and the answer kept being “you already have what you need.”
A real developer might read this and disagree with every choice. That’s fine. I made the best decisions I could with what I understood at the time, and a year from now I’ll probably know enough to see what I got wrong. But that’s ok. I’m still learning and getting my reps in. These decisions are good enough for right now, and right now is all I’m building for.
👉 Welcome back! Hopefully that wasn’t too painful!
The infrastructure is our foundation but isn’t what pays the bills. I had a client call this week. Let me walk through what actually happened.
The day before, AI and I sat down and had a strategy session. I’d sent the client an infrastructure audit the week before, and I had a proposal sitting in her email for a paid diagnostic engagement. I was on the fence about how to play the call. How hard do I push on the audit findings? What’s the best way to handle a difficult vendor situation? Which technical decisions are a priority versus what could wait?
AI reframed the whole approach. The audit isn’t the deliverable. The audit is the close. Walk her through the findings, let the questions pile up, and when she’s feeling the weight of everything she doesn’t know about her own infrastructure, that’s when you transition to the diagnostic. Don’t solve the problems on a free call. Get the information you need so you can solve them properly, but on a paid engagement.
I came out of that strategy session with five clear objectives, guardrails for what I would and wouldn’t do for free, and a plan for how to handle objections if she pushed back on price or timing. I reviewed the game plan again that morning before the call so it was fresh.
She signed the diagnostic contract on the call.
After she signed, we started talking about AI. I showed her some of what I use it for. The bookkeeping app, the content system, how it drafts emails in my voice, how it helped me prepare for this very call. She kept saying the same thing:
“That would be so helpful. I want to be able to do that.”
So I told her the truth. This won’t happen overnight. When you start using it, it’s going to feel like it’s slowing you down. There will be times when you get frustrated with it and you’ll want to quit but you have to push through that. Start with the free version and use it every day. Don’t buy the team plan yet. Don’t try to automate anything. Just talk to it, ask it questions, let it help you think, and the rest comes later.
She wanted to start right there on the call. So she downloaded Claude Desktop, got stuck on the install, shared her screen, and I walked her through it.
After the call, AI processed the meeting transcript, updated the client record, and drafted a follow-up email. I read the draft. It had thanked her for signing, laid out next steps, and caught something I’d forgotten to push on because we ran long. I adjusted two sentences and hit send.
Then we did a post-mortem, something I’ve always done after sales conversations. It flagged the fifteen minutes I’d spent on the installs: that’s non-billable time, and my role isn’t desktop support. I already knew that and I’d felt it while it was happening. We discussed the context of the situation and agreed that it was worth it as a gesture of goodwill but to keep an eye on it.
That’s the value of the post-mortem. What went well, how do I do that again. What didn’t go well, how do I learn from it.
We talked earlier about all the hats AI can wear, but there is one glaring omission. AI is also a strategist. That could be architecting subscriber workflows or bookkeeping solutions. It may be helping me think about what to say and what not to say on a sales call or keeping me honest with follow-ups I’d forgotten about. Every decision I’ve described, technical or business, went through the same process. I describe the problem, we talk about options, and I make a call.
A year ago none of this existed. I was just talking to AI every day, getting frustrated, rebuilding things that broke, throwing away entire projects. But slowly getting better at it.
The $200 is where I’ve ended up, not where I began. You don’t need $200. You don’t even need $20. It’s the same thing I told my client: start now, use it every day, push through the frustration.
Just get your reps in.
Get notified when I publish.
What worked, what didn't, what I'd do differently. Delivered to your inbox.