My Thoughts on Web Design Pricing


Let me open by saying my comments are very biased in my favor as a web developer. This is also based on my past experiences which may differ from your own. Please keep in mind that I’m speaking as a company of one with no outsourcing. Just a freelancer working from home doing the best I can. For the record, I have over 20 years experience in the world of the web.

The question I keep asking myself is…am I able to make more money working by the hour or the project?

What works for me? I accept hourly projects only.

Call me old school, but I think ultimately it all comes down to how much you think you’re worth in the marketplace on a per hour basis.

Every project is unique. Quoting a project as a fixed price requires a full and complete definition of all the deliverables along with a timeline. Let me repeat, a FULL and COMPLETE definition of every detail in the project. I say this because every client has a different idea of when something is complete. If our contract is not clear and specific, things can be left up to interpretation. Especially, if things escalate to the legal arena.

Hourly vs Fixed Bid Pricing

Many times a client wants to know exactly what it will cost to build their website. I prefer to give ballpark estimates and work on an hourly basis only. Here’s why.

First, let’s operate under the assumption that my goal is to build you a great site that will make you money. My incentive is to have a long term relationship and grow your website as your company grows. A sloppy job will not help me in the long run. I truly believe your success is my success.

If a client requires a fixed bid project, a contract between the developer and the client is critical. If we’re talking about a high dollar project ($10,000 or more), I may opt to go for a fixed bid and write up a contract.

But, a web developer is not an attorney. Yes, there are generic contracts out there. Since each website is unique each contract needs to be as well. Every small detail needs to be spelled out for things like; images, text, layout, colors, fonts, number of pages, menus, forms, functionality, etc, etc, etc. The list goes on and on.

Writing a proposal and contract for this will take many hours. And, I assure you there will be clients that will stretch the definition of something in your contract. Here are 2 real stories of what happened to me.

Many times there will be disputes that simply won’t happen if you’re working on an hourly basis.

If you have enough of these experiences, you start to rethink the whole contract thing if you want to build small to medium websites as a freelancer.

As long as you’re doing honest work and showing the client the progress each step of the way, they will see what can be accomplished in a set amount of time. This is when the novice client begins to understand the complexities of building a website and becomes more understanding of the fees they’re paying.

This is what I tell all my clients…

In just a few hours you’ll see what I’m capable of. If you’re not happy with my initial progress I will happily cancel the project and refund all your monies.

Now I’m able to focus completely on what I do best which includes understanding your business and audience. It’s much easier to be creative if I’m not watching the clock. The more focused I am the happier you’ll be.

If a developer still wants to use a contract the next step would be to improve the contract. So, either spend an enormous number of hours or hire an attorney. Most of us freelancers cannot afford an attorney. We’re not getting rich believe me. So, where do you think those costs are gonna go? Yep, added to the next project bid.

Now that you have the perfect contract things are gonna go your way, right?

Are you sure you covered everything in the contract? In my experience, I have never built the exact same website twice. Never. Even if the clients are almost identical. Therefore each contract needs to be carefully written, making sure you cover all possible “read my mind” items. Being clairvoyant would be a huge benefit.

Sure, we can add cleverly worded clauses that seem to cover our ass in odd situations. But, now we’re back to focusing on something other than building a website that is going to help THE CLIENT make money.

If I’m working for a jerk on a fixed bid project and being pushed to work miracles without compensation, my goal now is to finish the job rather than do a good one. I don’t want to be that guy.

I can no longer look forward to an ongoing relationship because I know that a maintenance contract will be needed and who knows what great times that will bring. I’m also risking a bad review which is what we live by.

Let’s say I’m committed to my perfect contract and a fixed bid project. Here’s what might happen.

The client will never know how long it takes me to do something. I’m going to boil my estimate down to the total number of hours I think I’ll need to complete the project. My goal is to work as quickly as possible to make the most per hour.

I’ll need to pad my fee by at least 25%-33% or more. Obviously, this is to cover any scope creep or “read my mind” items.

Let’s also be clear that no matter how hard we try, we will always encounter something that takes longer than expected. Sometimes much longer. It’s probably a good time to mention how cheap web hosts can substantially increase development time, too.

Ok, I now have my signed contract and proposal and it’s time to get to work. My new client turns out to be very easy going and not very particular. They leave it up to me. They love the progress and everything I’m doing. No design changes. They say move forward and complete it.

Well, I tend to work smart and make things easy for not only myself but the client. I’m talking about things like making a page template that can be used on all inner pages for example.

I can now rip thru all the pages in just a few hours and essentially the site is done. Let’s say I spent a total of 15 hours on the project. The client signed a contract for $4,000. I just made $265 per hour. Damn, that sounds good.

But wait a minute. I spent 8 hours writing the proposal and contract. Oh yea, I also spent about 3 hours on the phone with the client making sure I have all the details for my contract and proposal. Ok, now we’re up to 23 hours which equates to about $150 per hour. Considering my hourly rate is $75 this is a pretty good take.

But this whole scenario is not fair to this client. They are supplementing the costs of the other jerks that have squeezed me to where I made very little. So the jerks win. That’s not how it works in my little universe if I can help it.

While making a quick buck like this may appeal to many, I’m not one of them. Yes, I would like to win the lottery. But, I do not want to charge inflated prices. I know what I’m worth and I pride myself on my honesty and setting an example for others. My conscience won’t allow me to rip people off even though it’s happened to me more than once. I charge an honest buck for honest work. It’s pretty good work if I do say so myself. And, I truly love what I do.

In Conclusion

It’s uncomfortable for both the client and myself if I need to refer to my contract when asked to do something. I’m not completely against fixed bid projects as long as the recipe is correct. But, I prefer hourly so I can focus on what I do best and always say “yes” to your requests.

Story 1:

I was just starting out and was willing to build a site for practically nothing to build my portfolio. Somehow I managed to find a client, a police officer, that would pay me $500 for a website to sell German Shepherds. I met the officer and his partner at a coffee shop and a generic contract was signed. He also showed me the website he wanted me to duplicate “exactly”. I thought it would speed things up if I didn’t need to worry about creating a design.

The site was built, looked exactly like the site he wanted duplicated and he was happy. The next day he sent me an email with a Word doc containing a list of sires and dams (parents) for the German Shepherds. We speak on the phone where he tells me how to decipher the Word doc and exactly what he wants.

All the information was added to the site exactly as he described which took quite some time. The next day he sent me a nasty email saying it’s all wrong. He then describes a completely different deciphering of the Word doc and I bite my tongue and update the site again.

The next day another email arrives saying it’s all wrong again and goes on to describe the exact same layout we had the first time. I update the site again.

The flip flopping goes on for about 3 weeks and it’s now New Years’ eve. Unfortunately, I had no plans and apparently neither did my client. He wanted to work on the website. So, I decided to work in hopes of finishing the site and ring in the New Year with a completed project.

Most of the night was spent working with this client. Dozens of emails were sent back and forth and I thought I may have finally finished the project. Two days later I get an email asking for something to be added to the site which was not part of the original plan.

By this point, I had 40+ hours into the project for only $500. It was time to ask for more money to continue. I sent him a very nice email stating that further work on the site will require additional fees as I had over 40 hours into the project.

The email I received in response was hard to believe. He actually said, “just do it!” I guess he thought $500 allowed him to work me like one of his jailhouse snitches for life. My next response was to let him know that I’ve met my contractual obligations, he had a fully functioning website, change all his passwords and I was no longer going to be working for him. He never responded and it was over.

Some clients simply don’t agree on the definition of a completed website project and think they own you until they say it’s complete.

Story 2:

I built a rather small website of maybe 10 pages or so. This was an hourly job and the client was a bit cheap so I’m sure there were instances where I chose speed over quality to meet the limited budget. He was very happy with the site when finished. Everything was fully tested and approved by the client each step of the way.

Once I turned the site over I never heard from him again. He did not want any ongoing maintenance and was not interested in growing the site. After all, it’s just an online business card, right?

Fast forward to a year and a half later. I get a less than friendly email from this client saying that a page on his site should have had XYZ on it. If memory serves, I believe he thought a popup form should have been made for a particular button on the site. Nothing in my original notes had anything about this.

He stated that I should have known that (read his mind) and he “expects” me to do this now and for free. By the way, the client is a doctor.

In my response I expressed how nice it was to hear from him after a year and a half. I went on to say that even if I was informed of this requirement during development, he would have been billed for the hours because it was an hourly project. I said I would be happy to add this new functionality to the site at my new hourly rate. Yep, never heard from him again.

Sure, we could have had a contract for this and I could have sent it to him and said it’s not in there. This was a very low dollar website (less than 1k) so writing up the contract would have eaten a huge percentage of the my final fee. I’m sure this client (and all others like him) would have dragged out the project insisting on these “read my mind” things that they think are inferred in the contract. Maybe even a year and a half later! And, this client was a doctor and has a lot more access to high priced attorneys than I do.


  1. Indeed. I have also found that the clients most concerned with the total price of the site are the ones that try to squeeze more work out of you. Clear expectations ahead of time are key. BTW, I have 21 years building websites too.

    PS. Thanks for the post on adding the function to change the Proceed to Paypal text on WooCommerce. 🙂 Worked like a charm.

    • You’re welcome Mayda and thanks for the comment!


Submit a Comment

Your email address will not be published. Required fields are marked *