<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Brightcode</title>
    <description>The latest articles on DEV Community by Brightcode (@brightcode).</description>
    <link>https://dev.to/brightcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4188562%2F184c69f3-3049-4c06-b9c7-6c13edbcff7a.jpg</url>
      <title>DEV Community: Brightcode</title>
      <link>https://dev.to/brightcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brightcode"/>
    <language>en</language>
    <item>
      <title>How we turn "how much for a website?" into a quote you can defend: a developer's scoping checklist</title>
      <dc:creator>Brightcode</dc:creator>
      <pubDate>Mon, 19 Oct 2026 04:12:15 +0000</pubDate>
      <link>https://dev.to/brightcode/how-we-turn-how-much-for-a-website-into-a-quote-you-can-defend-a-developers-scoping-checklist-1pd2</link>
      <guid>https://dev.to/brightcode/how-we-turn-how-much-for-a-website-into-a-quote-you-can-defend-a-developers-scoping-checklist-1pd2</guid>
      <description>&lt;p&gt;&lt;em&gt;By the Brightcode team, a small web agency in Delhi NCR. Reviewed by Gaurav Khokkar, Founder.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you build websites for small businesses, you know this message. "How much for a website?" And the person wants a number in the next reply.&lt;/p&gt;

&lt;p&gt;We're a small web team in Delhi and that question reaches us every week. Answering with a number straight away feels helpful. It rarely is. Either the client compares it with a quote that covers half the work, or three weeks in you learn that "simple website" meant online booking plus a CRM sync.&lt;/p&gt;

&lt;p&gt;So we stopped quoting off the first message. Below is the checklist we now use to get from a vague ask to a scope we can price and stand behind. It's written for developers and freelancers. If you're the one buying a site, it shows what a good quote should rest on.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Count templates, not pages
&lt;/h2&gt;

&lt;p&gt;"10 pages" tells you very little. Ten blog posts share one template. A home page, a service page, a product page and a checkout are four separate builds. Each has its own layout, states and edge cases.&lt;/p&gt;

&lt;p&gt;So we list every &lt;strong&gt;unique template&lt;/strong&gt; and price those. Pages that reuse a template are content entry, and the quote says so. That single change explains most of the gap between a ₹15,000 quote and a ₹1.5 lakh one, when both sides are calling it "a 10-page site".&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Write down the project type before anything else
&lt;/h2&gt;

&lt;p&gt;Clients use the same words for very different jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Brochure site&lt;/strong&gt;: mostly read-only content and a contact form&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lead-gen site&lt;/strong&gt;: landing pages, forms, conversion tracking, ad-ready structure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Store&lt;/strong&gt;: catalogue, cart, checkout, payments, shipping, returns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web app&lt;/strong&gt;: logins, roles, dashboards, reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SaaS&lt;/strong&gt;: one codebase serving many customers, billing, multi-tenancy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The further down that list, the more testing and long-term maintenance you're signing up for. When a brief straddles two types, like a service site with a client portal, we split the quote in two. That way the expensive part is out in the open.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Treat every integration as its own mini-project
&lt;/h2&gt;

&lt;p&gt;Here in India the integrations list tends to look the same: a payment gateway (Razorpay, PayU, Cashfree), WhatsApp alerts, a CRM, Google Sheets. Sometimes accounting software like Tally, or an ERP.&lt;/p&gt;

&lt;p&gt;Every one of those means setup, auth, error handling and a test plan. Plus the webhook that fails at 2 a.m. A gateway isn't finished when the happy path works. It's finished when refunds, failed payments and duplicate webhooks are handled too. Older systems with thin API docs take longer, and we flag that as a risk in the estimate instead of hiding the hours.&lt;/p&gt;

&lt;p&gt;When a client asks "can you just connect it to X?", our answer is "yes, and here's what that involves". A lot of &lt;a href="https://withbrightcode.com/services/software-api-development" rel="noopener noreferrer"&gt;software and API integration work&lt;/a&gt; hides inside projects that get called "a website".&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Decide the platform by who edits the site after launch
&lt;/h2&gt;

&lt;p&gt;WordPress, Shopify, Next.js, custom. We try not to start from what we enjoy writing. We start from who will update the site, how often, and what it'll cost to run over the next two or three years.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WordPress&lt;/strong&gt; suits content-heavy sites where non-developers publish often. Someone still has to own updates and security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shopify&lt;/strong&gt; gets a store live fast. The monthly plan and paid apps are ongoing costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js or custom&lt;/strong&gt; gives you speed and control, for more development effort up front.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's a longer write-up of the trade-offs in &lt;a href="https://withbrightcode.com/insights/wordpress-vs-custom-website" rel="noopener noreferrer"&gt;WordPress vs a custom website&lt;/a&gt;. Short version: picking a platform also picks the running costs, so bring it into the quote conversation early.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Ask who supplies content and photos
&lt;/h2&gt;

&lt;p&gt;Cheap quotes almost always assume finished copy and photos show up on day one. They rarely do. In our experience content is the most common reason a project runs late. So we ask straight out: who writes the copy, who shoots the product photos, does anything need translating? If the answer is "you", it becomes a separate line item with its own timeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Put migration and SEO in writing
&lt;/h2&gt;

&lt;p&gt;If the client already has a site that ranks, a redesign without a redirect map can quietly wipe out years of traffic. We list migration as its own line: URL inventory, redirect map, and a Search Console check after launch. Basic on-page SEO (titles, meta, headings, sitemap) comes with every build we ship. Anything deeper gets scoped separately. Our &lt;a href="https://withbrightcode.com/insights/website-migration-checklist" rel="noopener noreferrer"&gt;website migration checklist&lt;/a&gt; is the list we actually work from.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Show the first-year cost, not just the build cost
&lt;/h2&gt;

&lt;p&gt;If the quote only shows the build price, month four brings a nasty surprise. So we add a short running-costs section: domain and SSL, hosting, yearly theme or plugin licences, platform plans like Shopify, gateway fees, SMS/email/WhatsApp API charges, and maintenance.&lt;/p&gt;

&lt;p&gt;People rarely complain about running costs they were told about upfront. It's the ones nobody mentioned that cause the argument.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Agree on what "done" means
&lt;/h2&gt;

&lt;p&gt;Our scope documents end with the dull bits. They're also the bits that prevent fights later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many revision rounds&lt;/li&gt;
&lt;li&gt;Who owns the domain, hosting account and code (always the client)&lt;/li&gt;
&lt;li&gt;What's covered after launch, and for how long&lt;/li&gt;
&lt;li&gt;What counts as a change request&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The red flags we see in other quotes
&lt;/h2&gt;

&lt;p&gt;Clients sometimes show us a competing quote. These are the things that make us wince, and they're worth checking in your own quotes too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One line: "Website – ₹X", no scope&lt;/li&gt;
&lt;li&gt;Nothing about revisions, hosting or maintenance&lt;/li&gt;
&lt;li&gt;Domain, hosting or code registered in the agency's name&lt;/li&gt;
&lt;li&gt;Mobile layout, speed or basic SEO sold as extras&lt;/li&gt;
&lt;li&gt;No redirect plan when replacing a live site&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;None of this is hard. It just means having one proper conversation before the number instead of after it. The quote takes a little longer to write. In exchange, it survives being compared line by line with someone else's.&lt;/p&gt;

&lt;p&gt;On the buying side and want to see how all this turns into real price ranges in our market? We published a longer guide: &lt;a href="https://withbrightcode.com/insights/website-development-cost-delhi-ncr" rel="noopener noreferrer"&gt;what decides website development cost in Delhi NCR&lt;/a&gt;. It has the ranges other agencies publish for each type of site, the running costs, and a prep list for getting quotes you can compare.&lt;/p&gt;

&lt;p&gt;What's on your scoping checklist that isn't on ours? Tell us in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by the team at Brightcode, a Delhi NCR agency that does &lt;a href="https://withbrightcode.com/services/website-development" rel="noopener noreferrer"&gt;website development&lt;/a&gt;, e-commerce and web apps.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>wordpress</category>
      <category>freelancing</category>
      <category>career</category>
    </item>
  </channel>
</rss>
