I Almost Lost a Client Because of One Mistake

Even as a Senior Software Engineer, I recently made a rookie communication mistake that almost cost me a new UK client. We were migrating their legacy WordPress site to a modern Astro and Tina CMS stack. The build itself went perfectly, but the delivery hit a massive wall.

The Discovery Gap

We agreed early on to host the site on Hostinger. What I failed to communicate was the technical reality: while the Astro frontend runs smoothly on standard shared hosting, the Tina CMS backend requires either a dedicated VPS or Tina Cloud.

I understood this separation in my head, but I never translated it into plain English for my client.

The Apology Trap

When the client realized the final setup didn't match our simple hosting agreement, they were rightfully upset. From their perspective, I was changing the plan mid-project.

Panic set in, and my default reaction was to apologize. I kept saying "sorry," hoping it would smooth things over. But it didn't fix the problem—it only highlighted the error without offering a way out.

Shifting to Solutions

I quickly realized my apologies were a dead end. I needed to stop playing defense and step up as a technical guide.

I completely changed my approach. I broke down the architecture in simple terms, explaining why the frontend and backend had different needs. I presented them with clear, actionable choices—weighing a VPS against Tina Cloud—and was completely transparent about the trade-offs. Most importantly, I owned the miscommunication without making a single excuse.

The Real Takeaway

That shift instantly transformed the conversation from frustration to collaboration. It reminded me that clients don't just pay for code; they rely on us to guide them through complex decisions they don't fully understand.

Mistakes happen to everyone. But while an apology merely acknowledges the error, a solution builds trust faster than an apology ever will.