This is a tale of woe – a long one. More accurately, it’s a tale of WHOAOMGWTF. And it’s one of the reasons I’m no longer officially providing website development services.

I’m sharing it now because I want it to serve as a learning experience.

Back in April 2011, I was contracted to build two websites for a client. It was one of the first few contracts I’d landed after making the decision to trek out on my own on Christmas Day, 2010. After being under the wing of a single client for so long, it was good to have my choice of work.

I’d guessed the creation of two websites – one pretty easy, one deceptively complex – would take about 20 hours of my time. Normally, I’d bill that out at $75/hr – or $1,500. Keep in mind, I was just back on the beat as a web designer – so, as many of you can guess, I severely underbid the project. I offered the project for $1,250, a discount to an hourly rate of $62.50 for 20 hours. Here’s the kicker – I did this because, and I told the client this as well – I thought it would be a fun project to try. I wasn’t sure how I’d do it, but my contract indicated he’d have the choice to accept any budget increases or not.

Keep that project rate of $1,250 in your mind for later. There’ll be a test.

I realized after quite a bit of tinkering, research, trial-and-errors, and trying to build my own code on top of WordPress, that I could not complete the more complex of the two websites. I offered the client a refund or the choice to work with us to get the project developed through a third-party coder. I’d pay the coder the difference from my project fee of $1,250 after I developed the second site. The client chose to keep working.

After meeting with the coder I knew could build it out, I discovered they were already committed to several projects, and ultimately, couldn’t begin to work until November. But, there were things I could do to speed up the process. Again, I informed the client, and asked to start in on the other site. A while went by and the design was finally issued for the other site, which I coded out immediately. Total billable coding time, plus two rounds of revision time, came to 12 hours, or $750 of the budget. I delivered the site and the client seemed to be pleased.

I started in on those things I could do to speed up the project – to compile all the information that the third-party coder would need to develop the site. Getting the full functionality outlined, gathering bits of code, recommendations for what modules to use, lots and lots of research to see what might exist out there to help this project go smoother. In all, I’d spent four hours gathering information to get the site organized. This amount, $250, also came out of the budget.

Last week, I received an email from the client asking if the full $1,500 of development fees were available to put toward the third-party developer’s rate. I was taken aback by the question, considering I’d already delivered one of the two websites in the contract. I hadn’t noticed the mistakenly inflated project budget (the client had paid $1,250 for the project).

I outlined the budget, how it’d been used so far – all in line with what the contract stated. By my math, if the contract was $1,500 (whoops) and $750 had been put to use to develop one of the two websites and $250 had been used toward the second – we had $500 left for the developer to work with.

The client was outraged the full project budget didn’t remain. I offered the client a refund.

I gladly offered – it was my mistake. I didn’t stand up for myself like I should have. I didn’t charge my cancellation fee I’d built into the project. I didn’t charge for my unbilled time at the start of the project, the time invested before I figured out I couldn’t do the second site. I just issued the refund because I felt it was the right thing to do.

In my mind, I’d underbid the project. It had drug on for months because I’d chosen a busy developer to continue the work – in my opinion, the only one who could complete the project as requested and for a reasonable budget. And, apparently, I’d been so eager to take on the project, that I hadn’t fully explained the contract to the client – that it did in fact, cover both sites we’d talked about at our meeting. That my work was valuable and that my time cost money – and when I was working, it would come from the project budget. That they’d be paying $1,250 total and that it wouldn’t turn into $1,500 total down the line when they wanted to see what was left for the developer. Those things, I guess, weren’t explained… even though I remember explaining those things (except for the last one, because it’s just absurd).

I’m not sure how the client became so… confused… but in any case, I was doing the right thing by issuing the $500 refund.

Can you see the problem here? Let me outline the math: a $1,250 contract, minus $1,000 in work leaves… $500? Whoops.

Fast forward to the end of the story – the client, despite numerous requests to return the overage, has opted to keep the extra $250. Because they felt like it would teach me a lesson. Despite my explanation of the mistake. Despite being shown a manifest of how the budget was used. Despite the contract being explained. The client, indignant, decided they were OK with being a thief – exploiting an honest mistake by someone trying to do the right thing.

Did I screw up? Sure. Lots of times. Does that give the client the right to become a thief? Well… Do you know that $250 can pay for 50 kids to have memberships at the Boys and Girls Club for a year? Or pay for 1,000 meals for local families at the food bank?

So you might wonder what my lesson is here. Am I about to tell you to not try? To, you know, stop being ethical because apparently most folks don’t give two shakes about your morals, doing the right thing, or being honest?


It’s hard to be ethical when it seems like unethical behavior is rewarded more often. Just remember, being unethical pays off immediately – but the rewards dwindle just as fast. Those unethical kinds of folks damage their community – and there’s lots of them. Every freelancer I’ve ever met has a list as long as their arm of clients who owe them money, undercut them on a project, or behaved unethically.

I could have been unethical, too. I mean, I own the hosting that the client’s domain is pointed to. I hear the Tijuana Donkey Show has a website now. It would be really easy to redirect the client’s site to that less than reputable website until they returned the $250.

But I didn’t. And I won’t. I just put up a simple “under maintenance” sign instead, at their request.

I have a long list of clients whose projects I did my very best on, folks who speak well of me. Each time, I bent over backwards to make them happy, just as I tried to do in this case. I just bent a little too far. My friends that I do business with – the very, very good business people I’m pleased to count as mentors and friends – they have similar experiences.

One oddball, dishonest client out of a bunch of awesome clients is pretty small fry. I doubt folks who act unethically – even occasionally – are aware of that kind of peace of mind. It doesn’t come from redirecting bad clients’ websites to bestiality blogs.

Doing the right thing is usually a bitch – and sometimes it bites you, but it’s still worth doing. The effort proves you care. Being ethical pays off slowly – in that you grow the community for your efforts. That’s when being truly ethical pays off – because the community values your input.

The gray area exists for a reason; everybody thinks they’re in the right, even if they’re not. The only real question is – how much does your community value your input?

(Header photo: Community)