A client told me that they needed a custom website for a store. I recommended going with Shopify and adding a custom theme to satisfy the designer: a simple three-week project, a couple grand, and I’d be done.
I got the design files from the designer, and I saw that they had a very complex pricing scheme to the point where I could either create a Shopify plugin or, better yet, create my own backend. Other than that, the backend was still relatively simple, so I did that, asked for an extra week, and finally presented the client with the project ready for revisions.
The client was a complete tech novice but the type who believed everything I did was magic to the point where he didn’t even bother listening to me when I talked. On the other hand, he was incredibly involved in the decision-making and was always changing things without even understanding what they were supposed to do.
After a week of back and forth, I decided to schedule some time with [Client] in person so I could present the website and we could discuss any further changes. I drove up to his office (an hour away) and showed the website on my laptop. We had an hour together, and I asked him to go over the entire website to ensure it worked as intended. I explicitly asked him to try to upload products and view orders so we could see if there was anything wrong. He kept saying he trusted me and didn’t have to review it; he only had one change, which I promised to have done in a week.
A week later, I finished it up, and that was when the storm came in. [Client] started complaining that the website didn’t work (he was using the wrong URL), the prices were wrong (he entered them wrong), there were missing features (which we had never discussed and were not standard), etc.
I was new to freelancing and wanted to keep him as a client, so I made the mistake of not blocking his number. I kept on fixing and adding features. For every change he made, we argued for hours about whether it was a change or a bug. He told me multiple times that I couldn’t charge him for changes because he had no way of knowing that he was gonna need those features.
Even if I managed to make him pay (pennies) for an additional feature, the hours I spent arguing with him made it less than minimum wage, and he felt like he now got five more features for free.
All of this took about a year. The site was finally done, and I was ready to launch when I got a phone call from [Client].
Client: “I’m very happy with your work, but I have just one quick request. My IT guy wants to install the self-checkout, and I need you to tell me how to install the app on the tablets.”
Me: “You commissioned a website, not an app. And even if I was going to make an app, this would add a lot of complexity to the backend.”
Client: “I understand. Send me a quote.”
Throughout the whole project, whenever I was complaining, [Client] would always tell me that I was going to make a lot of money over the next two years, so it was worth it to stick with it. So, when he told me that he needed an app, as well, I looked into how much I would have to work on it, and after some calculations, I decided that I would need to rewrite the backend from scratch.
I gave him a quote, and two minutes later, I got an angry phone call demanding an explanation as to why it was so expensive. It was about a fifth of what any beginner developer would charge and less than ten percent of what an agency would charge — I looked it up.
I tried explaining it, but he demanded a meeting, so the next day, I drove up to his office again and sat down to explain. Again, he was uninterested but ended up agreeing with me. He apologized saying that he had been shocked by the numbers but it all made sense now. I went home.
The next day, I got a phone call. [Client] was on the line with three of his employees all yelling at me for trying to squeeze more money out of them after I had already made so much — less than 3,000 for a project that an agency would charge 25,000 for.
Me: “Why can’t you just explain to your employees what I told you yesterday?”
Client: “I didn’t really understand it.”
They started yelling and questioning my capabilities.
Me: “Look. My quote stands. And if you don’t want to pay, you can take what I have already finished and lose my number.”
They asked for a discount on the deposit. I lowered it from fifty to forty percent, and I started working. A week passed, and I still didn’t get the deposit, so I called [Client] up.
Client: “I’m tight on cash right now.”
Me: “Send me what you can, and I’ll do what I can.”
I was tight financially, so I had no choice. That’s when things got really bad.
Part of the new backend was also a new admin dashboard. I needed [Client] to approve it since it was the part he was going to use all the time, and I didn’t get any designs for it.
When the deposit was all paid up, I sent [Client] a link to the dashboard to get his revisions and comments. He replied the next day saying that it looked good, so I sent him an invoice for the rest of the money.
Me: “I still have to build the app for self-checkout. I won’t be able to start working on it before I get paid for my previous work in full.”
Client: “I’m tight on money, but I’ll send you the deposit for the app.
Of course, I didn’t agree to that, but at that point, I was exhausted and couldn’t argue anymore, so I started building it. I finished it after a few weeks and sent it to him for review.
At this point, we were two and a half years into the project. I had sent him the app and dashboard five months before and hadn’t heard back; I assumed he didn’t have the money to finish, and after running after him for a while, I stopped.
One day, I get a message from him crying, yelling, and calling me every name in the book
Client: “How come I’ve been stuck on this project for two years with no movement?! I have a shop ready to open, and I can’t because you are lazy and irresponsible!
I was shocked! He had everything, and I was waiting for a review, never mind the fact that he owed me thousands of dollars.
I caved in again and told him that I’d finish it up
Over the next six months, [Client] proceeded to change everything over and over again. He even hired a girl to manage me; when I tried telling her that I couldn’t do something because they hadn’t paid for it, she said that the client had approved it. Of course, when the invoices arrived, he threw a tantrum.
Finally, after the worst six months of my life during which I was routinely up until the morning, [Client] announced that he was ready to launch. I reminded him that he had dozens of open invoices from me, and he said he’d pay, so I told him we could go ahead with the launch day.
A week before launch, [Client] sent me a message saying that now he finally had time to test, and he was gonna dedicate the next week to testing. Apparently, he thought that what we had done until then (working on a fully production-ready system — in other words, testing) was still development, and he still had all of his revisions!
His argument? Since he’s not tech-savvy, I should’ve known that he wouldn’t understand and he’d need the actual app to make revisions, which he had also had for six months. I thought I was about to collapse; I literally stopped breathing when I realized that this nightmare was far from over.
The day before launch, I sent [Client] a message reminding him that I hadn’t seen a single payment in almost a year and he couldn’t launch without a substantial payment and a plan. He called me, and we agreed on a payment every day or every two days, basically every day, but he might miss once a week. That worked for me, and for some stupid reason, I caved in… again.
[Client] immediately sent me a payment, and two weeks passed where the only messages I got from him were complaints about how orders were not coming in (he’d never checked out the page, so he didn’t know how to look for it), he didn’t know how to make refunds (I’d told him a dozen times I wouldn’t support this), and that pricing is wrong (yep, two years later and he still hadn’t read the detailed documents I’d written).
Not a single payment.
I messaged [Client] saying I would have to shut it off if it continued this way, and he sent another payment and that was the end of it.
Most stories here have a happy ending where you get to kick the client on their way out. I am hoping to have that happy ending one day, but no matter what happens, I wasted three years of my life for a lot less than minimum wage. I hope someone here can learn from my experience and block these people before it’s too late!