Web developers send estimates or proposals before any code is written, usually after a discovery call about goals, pages, features, and timeline. Clients commonly compare quotes from freelancers, agencies, and template platforms, so the estimate has to show exactly what is included and what is not.
When to use estimates: Use estimates to provide project quotes and get client approval before starting work. Once approved, convert your estimate to an invoice with one click to collect payment.
Create an invoice for payment collection
Upload logo
PDF will be generated with filename:
Invoice_1001_Client_2026-10-14.pdf
Say how many pages, which custom features, and which integrations are included, such as contact forms, booking, payments, or CRM connections. Anything not listed becomes a change order.
Naming WordPress, Shopify, or a custom stack sets expectations about hosting, plugin costs, and how the client can edit the site later.
State who provides copy, images, logos, and product data and by what date. Late content is the most common cause of delays and cost overruns.
Define how many rounds of feedback are included and how extra rounds are billed, so feedback does not turn into unlimited work.
Give estimated dates for design, build, and launch and note that they depend on timely feedback. This protects you if the client stalls.
Domains, hosting, premium plugins, stock photos, and email services are usually separate from your fee. Listing them avoids a surprise later.
Clarify whether training, a warranty period for bugs, and ongoing maintenance are included, and what they cost afterward.
| Service | Priced | Typical range |
|---|---|---|
| Hourly development (freelance, general) | per hour | $50-150 |
| Senior or specialized development (custom apps, API work) | per hour | $100-200 |
| Brochure or small business website (5-10 pages) | flat fee | $2,500-8,000 |
| E-commerce store setup (Shopify, WooCommerce) | flat fee | $3,000-12,000 |
| Landing page | flat fee | $500-2,500 |
| Website maintenance retainer (updates, backups, security) | per month | $75-500 |
| Hosting resale or managed hosting | per month | $15-75 |
| Bug fix or small change request | per hour (1-hour minimum) | $60-130 |
Typical US ranges. Rates vary by region, experience, and job size.
Estimate your hours, add a buffer of 15-25% for revisions and unknowns, and quote a fixed fee. Clients see a single number and you are protected from small overruns.
Present two or three packages, such as basic, standard with e-commerce or booking, and a version with a maintenance retainer. Clients tend to pick the middle option and it opens the maintenance conversation.
Show design, development, content loading, and launch as separate lines with their own prices. It makes the total easier to justify and sets up your milestone invoices.
Quote validity of 15-30 days is typical. Plugin prices, your availability, and your rates change, so an open-ended quote can commit you to old terms.
A short call to understand the project is usually free. For larger projects that need a detailed technical spec, wireframes, or a requirements document, many developers charge a paid discovery phase, often $500-3,000, that is credited toward the build if the client proceeds.
A fixed quote should be accurate for the defined scope, with a clear process for changes. If scope is uncertain, give a range or an estimate with an hourly cap and state that final cost depends on the confirmed requirements.
Yes, but changes should be written up as a change order with price and timeline impact before you do the work. Say this in the quote so the client expects it.
Often the accepted proposal works as the agreement if it includes scope, payment schedule, ownership terms, and signature or written acceptance. For larger projects, a separate contract reviewed by a lawyer is a safer choice.
Use the Web Developer invoice template to bill the client, or convert this estimate once it's approved.
Web Developer invoice template