I started DoodleWeb after five years of freelancing and one very specific bad experience as a client, not a developer.
I'd hired an agency to redo the site for a side project. The proposal was two pages, the invoice was one line item — "Website Development" — and by the time the project wrapped I genuinely couldn't tell you what I'd paid for. Was the $9,000 CAD mostly design hours? Was some of it a markup on stock photos and a page builder licence I could have bought myself for $60? I asked, and got a vague answer about "our process." That answer is the reason this company exists.
What I decided to do differently
When I started taking on my own clients out of a spare room in Surrey, I made one rule before I had a single client: every quote gets broken down by phase and by hour estimate, and every invoice matches the quote unless we've had an explicit conversation about scope change first. No line item that just says "development." If a client is paying for 14 hours of custom PHP work, they see 14 hours of custom PHP work, at a rate I tell them upfront.
This sounds like a small thing. In practice it's the single decision that's shaped almost everything else about how the agency runs, because transparent pricing forces transparent process. You can't hide a vague scope behind a vague invoice once the invoice has to itemize what actually happened.
The parts of this that were harder than expected
Being specific about pricing means being specific about what you don't know yet, and that's uncomfortable in a sales conversation. Early on, I lost a project to a competitor who quoted a flat $6,000 CAD for a build I'd scoped at $9,000-$14,000 CAD depending on how much custom functionality the client actually needed once we got into discovery. I found out eight months later that the client had gone $11,000 CAD over that flat quote in "change orders" and had a much worse experience than if they'd just seen the real range upfront. That didn't feel like a win, but it also didn't change my pricing philosophy — if anything it confirmed it.
The other hard part was internal. It's more work to track hours honestly and reconcile them against estimates every single project than it is to quote a round number and hope it works out. We built our own internal time-tracking habits around this before we could afford proper project management software, because the commitment came before the tooling did.
What transparency actually looks like now
A few concrete things that came out of that original decision, still true today:
- Every proposal includes a phase-by-phase breakdown with hour ranges, not a single lump sum
- Clients get access to the project management board (we use ClickUp) so they can see exactly what's in progress, not just wait for a status update email
- If a project runs over the estimated hours because of a scope addition, we flag it before doing the work, not on the invoice after
- We tell prospective clients when a competitor's tool or a cheaper platform genuinely fits their situation better than what we'd build — a WordPress site with a $40/month theme is sometimes the right answer, and saying so has cost us projects but built more referrals than any sales pitch would have
Why this still matters to me
I don't think transparency is a differentiator that wins every deal — plenty of clients want the lowest number and don't care how it's broken down, and that's a legitimate way to buy. But the clients who've stayed with DoodleWeb for years, who've referred other businesses to us, are almost always the ones who asked hard questions about scope and pricing early and got straight answers. That original bad invoice taught me the value of the thing I now try to give every client by default.
If you want a quote that actually breaks down where your money goes, that's the conversation I'd like to have with you.
Surrey, BC
A full-service digital agency working in WordPress, Drupal, Shopify, Webflow, React, and React Native. We partner with universities, governments, and growing brands to ship sites and products that hold up after launch.

