InvoiceWithMe

Web development invoice template

A template for solo developers and small agencies. Milestone-based or hourly-with-cap layouts, a maintenance retainer block, hosting and SaaS pass-throughs, and the source-code transfer clause that prevents the post-launch IP argument six months later.

By Muhammad SaadPublished Updated 7 min read
Open the templateBrowse all templates

Who this is for

Freelance web developers, full-stack engineers, two-to-five-person agencies, no-code builders. Anyone shipping software for clients who need an invoice they can hand to a finance team rather than a Stripe receipt link.

Three structures for dev invoices

1. Milestone-based. Used for fixed-scope projects. Break the project into phases (Discovery, Design, Build, QA, Deploy) and invoice at the end of each. Example line: Milestone 2: Responsive templates, $4,000. Most professional for one-off builds because it ties money to deliverables rather than to effort.

2. Hourly with cap. Used for projects where total hours are uncertain. State the rate and the not-to-exceed cap up front; invoice for actual hours worked. Example line: Discovery and technical audit, 8 hrs @ $125/hr, $1,000.

3. Retainer drawdown. For ongoing support clients. Charge a monthly retainer, show hours used, and roll unused hours forward or expire them (clearly stated). Example: Monthly retainer $3,000, 24 hours included. Hours used this month: 18. Carried forward: 6 hours.

The clauses developers underdo

Source-code ownership. Always state when code ownership transfers. The standard is "Source code ownership transfers to client on final payment". This prevents disputes about whether the developer can take work to a competitor (they cannot, after transfer) and whether the client can fork it (they can).

Warranty period. A 30-day bug warranty on delivered scope is the freelance standard. Bugs in your delivered features within 30 days are a free fix. Bugs outside that window, or new features, are billable.

Out-of-scope handling. Spell out the rate for change requests up front. "Out-of-scope work billed at the agreed hourly rate" in the terms block is enough.

Third-party costs. Hosting (Vercel, Cloudflare, Render), domains, SaaS subscriptions, design tools, fonts. These are easy to forget. Either invoice them at cost with a small markup, or have the client buy them directly under their own account. Putting them on your card and forgetting to invoice them costs real money over a year.

Maintenance retainers

The most profitable part of a web project is what happens after launch. A small monthly retainer for security updates, dependency bumps, hosting management and bug fixes (typically 4 to 8 hours a month) is a stable revenue line and usually welcomed by clients who do not want to re-engage every time something breaks. Show it as its own recurring line with the included hours visible.

Common line items

Payment terms

For project work, milestone payments at whatever cadence you negotiated. For retainer work, Net 14 with autopay set up via Stripe or GoCardless. Avoid Net 30 on project work unless the client is a Fortune 500 buyer; the float on a $20,000 build is not a fight worth picking with a small company.

How to use this template

  1. Open the web development template.
  2. Replace placeholder milestones with the actual phase you are billing.
  3. For hourly work, change the quantity to actual hours and update the rate.
  4. Adjust the source-code and warranty language in Terms to match the engagement.
  5. Download the PDF and attach to your email.

Related

Shipped a milestone? Open the web development template.
Web development invoice template: milestones, hourly, source-code transfer | InvoiceWithMe