Skip to main content
web developmentfreelancetechinvoicing tips

How to Invoice as a Web Developer: Rates, Terms and Templates

Web developer invoicing: hourly vs milestone pricing, deposits, hosting and maintenance lines, mistakes, and a web design invoice template.

InvoiceQuickly Team··Updated ·10 min read

Web developers often bill implementation sprints, bug-fix buckets, and ongoing retainers. Invoices should separate build phases from hosting, domains, and third-party API fees so clients see recurring versus one-time costs. Staging environments, content migration, and analytics setup frequently get lost in a single “build” line—break them out so non-technical stakeholders understand the bill.

When clients delay content or approvals, your contract should allow pause billing or milestone re-timing—reference that clause on revised invoices if needed. Accessibility remediation and performance budgets are increasingly contract clauses—if you priced them, echo them on the milestone where you shipped the fix. Third-party script audits (tag managers, chat widgets) that bloated Core Web Vitals deserve their own line when you spent days untangling them.

Typical rates

Hourly for support and unclear scope; fixed milestones for launches (design handoff → build → QA → go-live). Maintenance retainers monthly. Benchmarks fluctuate; Stack Overflow’s developer survey illustrates how specialisation affects earning power—use as context, not a quote. Retainer buckets (e.g. “up to 6 hours/month”) should show hours used versus rolled on each invoice to justify renewals. Emergency support can be 1.5× with a minimum increment—state it before the pager goes off. Headless CMS content models and webhook integrations often take longer than visual pages—split them on the invoice so stakeholders see where backend time went.

Hourly billing ($75-$200+ depending on stack and market) works for support tickets, bug fixes, and retainer-style work. Fixed milestone pricing is standard for new builds: scope the project into 3-5 milestones with clear deliverables at each stage. Monthly retainers ($500-$5,000+) suit ongoing maintenance, security updates, and feature development. Day rates ($600-$1,600+) work for intensive on-site or embedded-team sprints.

Specialisation drives rate increases. Full-stack developers who handle both frontend and backend command more than single-stack specialists. E-commerce developers with Shopify Plus or Magento experience can charge premium project rates. Accessibility (WCAG compliance), performance optimisation, and headless CMS expertise are all rate multipliers. Raise prices when your pipeline is consistently full, when you add a valuable certification, or when client results demonstrate clear ROI.

Sample invoice line items

DescriptionQtyRateAmount
Website build -- homepage, about, services, contact (Next.js + Sanity CMS)1 milestone$6,500 flat$6,500.00
Blog template and CMS integration -- post listing, single post, categories1 milestone$2,800 flat$2,800.00
E-commerce integration -- Stripe checkout, product pages (12 SKUs)1 milestone$3,500 flat$3,500.00
Monthly maintenance retainer -- updates, backups, uptime monitoring (May)6 hrs used of 8$150/hr$900.00
Hosting -- Vercel Pro plan (annual, prorated monthly)1 monthpass-through$20.00
Domain renewal -- clientsite.com (1 year)1pass-through$14.99

When to send the invoice

For milestone-based builds, invoice at each milestone completion -- typically after the client reviews and approves the deliverable (design comp, staging site, final QA sign-off). Do not wait until the entire project is done; progress billing keeps your cash flow healthy and reduces risk on both sides.

On maintenance retainers, invoice on the first of each month. Include a summary of work performed (tickets closed, updates applied, hours used vs remaining) so the client sees value and does not treat the retainer as a forgotten subscription.

For hosting, domains, and third-party renewals, invoice as they come due. Bundling annual renewals into a single invoice with clear descriptions ("Domain renewal -- clientsite.com, 1 year") prevents clients from missing payments that could take their site offline.

Payment terms

Deposit (30%–50%) before heavy build, progress invoices per milestone, final before DNS cutover or within Net 14 after launch per agreement. Net 30 for larger clients with good credit. Document out-of-scope work as separate line items. For due-date language, use invoice payment terms. Agency pass-through work sometimes needs client name + parent brand on the invoice header for AP routing—ask your PM contact.

What to include

Project or ticket reference, description per milestone (features shipped, environments), hours and rate if hourly, licences and pass-through (hosting, plugins), support window if selling a post-launch package, tax, total, due date. Use how to write an invoice for numbering and business details. Accessibility fixes beyond the original WCAG target should reference the change ticket or audit finding ID so product understands why hours spiked. Content entry you performed for the client belongs on its own line when it was not part of the build estimate.

Common mistakes

Bundling hosting into dev fees with no renewal date—clients forget to pay. “Bug fix” ambiguity—define severity or SLAs in the contract and summarise on the invoice. No kill fee language for cancelled builds—address in agreement and reflect any partial invoices. Third-party API keys on your card without recharge—pass through or mark up transparently. SEO or analytics tag implementation buried in “launch” when it was half the sprint. Single currency assumed for distributed teams—state USD/GBP/EUR explicitly. Cookie consent or CMP implementations treated as “small JS tasks” when they were multi-sprint compliance work—split legal-driven work on the invoice so privacy teams recognise the effort.

Not separating hosting renewal from build fees -- when hosting is buried in the project total, clients forget to pay it after launch and blame you when the site goes down. Failing to log content-entry time when the client asked you to populate pages -- entering 50 product descriptions is not "part of the build" unless your estimate said so. Open-ended "bug fix" lines without severity or time caps -- define what counts as a bug (your code) versus a feature request (new scope) in the contract and reflect that distinction on the invoice.

FAQ

Should I bill hosting separately or include it in my retainer? Bill hosting as a separate pass-through line, even if you manage the account. This makes the cost transparent, avoids the appearance of markup on a commodity, and ensures the client understands that hosting is an ongoing expense separate from your development services. If you do mark up hosting (common for managed hosting where you handle server maintenance), disclose it.

How do I handle scope changes on a fixed-price project? Issue a change order before doing the additional work. On the invoice, list original-scope milestones and change-order items in separate sections. Reference the CO number and approval date. This protects you from "I thought that was included" disputes and gives the client a clear financial record of how the project evolved.

What is the best way to invoice for a retainer when hours vary month to month? Show the retainer fee, hours included, hours used, and a brief task summary. If rollover is part of your agreement, show the balance. If the client used fewer hours, the retainer fee stays the same (that is the point of a retainer). If they exceed the included hours, add an overage section at your hourly rate.

Industry rate benchmarks (2026)

Web development rates vary by experience, geography, and specialization. Working ranges from Toptal + Stack Overflow 2025 dev compensation:

TypeRate (US median)Premium markets
Hourly (mid-level)$70-$130$120-$220
Hourly (senior full-stack)$120-$220$200-$380
Marketing site (5-10 pages)$5,000-$25,000$20,000-$75,000
Web app (mid-complexity)$25,000-$100,000$80,000-$300,000+
E-commerce site (Shopify/Woo)$8,000-$40,000$30,000-$120,000
Maintenance retainer$2,000-$8,000/mo$6,000-$20,000/mo

Premium factors: certification or specialized credential typically adds 20-40%, demonstrated portfolio with case studies adds 15-30%, top-quartile metro markets command 25-50% above national median.

Step-by-step: Sending your first Web development invoice

Step 1: Decide your billing model — package, retainer, or per-project

Three workable patterns: per-project (simple, but creates many small invoices), package (sold upfront, locks commitment), or monthly retainer (ongoing engagement at fixed monthly fee). Pick one consistent model per client; don't mix.

Step 2: Take a deposit on first engagement

First-time clients without referrals: 25-50% deposit on signing. The deposit protects against cancellation costs (you've blocked time, ordered materials, declined other work). State on invoice: "Deposit non-refundable. Remainder due [date or milestone]."

Step 3: Itemize deliverables, not just totals

Bad: "Web development services — $X". Good: line-item every distinct deliverable, hour, or session with its own rate. Itemizing reduces dispute frequency and helps clients expense the invoice correctly.

Step 4: Define cancellation and revision policies on the invoice itself

Don't bury terms in a separate contract. State on every invoice: cancellation window, revision rounds included, what triggers additional fees. Visibility is your protection.

Step 5: Send a follow-up reminder if not paid within terms

Day 1-3 after due date: gentle reminder. Day 14: firm follow-up. Day 30+: stop work + formal demand. Late Web development invoices are about prioritization, not unwillingness to pay.

Common Web development billing scenarios

Established repeat client: After 3+ engagements, offer a 5-10% loyalty discount on packages. State on invoice: "Loyalty pricing applied (returning client)." Locks in the relationship.

Last-minute booking: Charge 20-30% rush premium for sub-7-day bookings. State on quote/invoice: "Expedite fee for short-notice booking." Most clients accept this as fair.

Scope expansion mid-project: Don't absorb scope creep silently. Issue a Change Order invoice with the new work and pricing, get written approval before proceeding.

Refund request after delivery: Honor genuine workmanship issues; decline change-of-mind refunds. Document with photos/files. Pro-rate refunds where appropriate.

Frequently Asked Questions

Should I charge sales tax on Web development services?

Varies by state. In service-friendly states (CA, NY, FL, IL — most of the country), pure services are exempt. In a handful of states (TX, CT, NJ, OH, WV), specific service categories are taxable. Verify with your state Department of Revenue.

What's the right deposit?

25-50% is standard. Higher deposits for first-time clients without referrals; lower deposits acceptable for repeat clients with track record. Below 25% means you're carrying too much risk.

How do I handle a client who delays feedback or scheduling?

Build pause clauses into every engagement: "If feedback/scheduling not received within X days, project pauses. Restart fee: $Y to resume." Without this, clients leave projects in limbo for months.

Can I refuse service if a client tries to negotiate price?

Yes. Negotiating clients typically dispute deliverables after the fact, tip poorly, and refer fewer (or worse) clients. Set rates with conviction; politely decline to lower them.

What's a fair late-payment policy?

1-1.5% per month late fee (12-18% annualized) is standard and enforceable in most states. State on every invoice: "Payments due Net 14. Late fee 1% per month after 30 days." Without explicit terms, you can usually only collect statutory interest.

Start from our web design invoice template for milestone-friendly structure (design plus dev phases).


Join early access to generate web project invoices faster.

Editorial team
InvoiceQuickly Team

Practitioners writing for practitioners. Our editorial team includes invoicing, AP, tax, and small-business operations specialists with combined 50+ years of hands-on experience.

Invoicing best practices for freelancers and SMBsAccounts payable automationTax compliance across US, UK, EU, Canada, AustraliaAI-assisted document workflows

Free Invoice Checklist

Download our 15-point invoice checklist to make sure every invoice you send is complete, professional, and tax-compliant.

Free PDF, no spam. Unsubscribe anytime.

Related guides

Get invoicing tips that actually help

Join 5,000+ freelancers and small business owners. One email per week with practical invoicing advice, tax tips, and product updates.

No spam, ever. Unsubscribe anytime.

How to Invoice as a Web Developer: Rates, Terms and Templates | InvoiceQuickly