
How Much Will Your Website or Web App Cost?
Tell us what you're planning to build. Answer a few simple questions and get a personalized estimate for development, launch, and ongoing costs. No technical knowledge needed.
ESTIMATE
Build your estimate
Answer what you know. Skip what you do not, and choose not sure where that is the honest answer.
Estimate so far
Your range appears once the features step is complete, so it reflects what you actually need. Keep going.
How this number was built
(fast + 4 × typical + slow) ÷ 6, then × rate, then ± margin
Effort and uncertainty stay separate. Known complexity changes the hours. Unknown detail changes only the width of the range.
Read the full methodMETHODOLOGY
How the estimate is produced.
We break the project into the pieces of work it needs, from discovery to handover. For each piece we estimate three cases: a faster one, a typical one, and a more complicated one. The typical case counts most, and the three combine into one expected figure.
That figure is the middle of your range. The width around it comes from how much we could not check. A project with a finished design and settled requirements gets a narrow range. One described in three sentences with an unreviewed reference gets a wider one.
The timeline runs the same model. Build work can overlap, planning and launch cannot, and feedback rounds take real time. The weeks you see are a range for the same reason the price is.
Effort and uncertainty are kept apart. Known complexity changes the hours. Unknown detail changes only the width of the range.
The formulas
Expected hours, per task
E = (O + 4M + P) ÷ 6
A faster case, a typical case, and a slower case. The typical one counts four times, so one wild guess cannot drag the estimate.
Development cost
C = Σ (E × R)
Every task's expected hours multiplied by the hourly rate for that kind of work, then added together.
The range
Range = C ± u
The margin widens or narrows with how much nobody has verified yet. It never changes the work.
Monthly running cost
Monthly = (h × r) + o
Support hours at the support rate, plus the hosting, database, storage and services the project needs.
- E
- Expected hours for one task
- O
- Fastest realistic case
- M
- Most likely case
- P
- Slowest realistic case
- R
- Hourly rate for that kind of work
- Σ
- The sum of every task in the project
- u
- Margin for what has not been checked
- h, r, o
- Support hours, support rate, running costs
The margin, by how much is unverified
- Low±15%
- Moderate±25%
- High±35%
- Very high±45%
Three or more separate unknowns step this up once, so the range stays explainable instead of stacking.
What this means in practice
- Each work item carries optimistic, most likely, and pessimistic hours. Expected hours are optimistic plus four times most likely plus pessimistic, divided by six. This is a standard three point estimate.
- Expected hours are multiplied by the rate for that kind of work: strategy, design, engineering, integration, quality, delivery, project management. Project management is a share of the rest, so it is never counted twice.
- Where two pieces of work overlap, one replaces the other. Checkout already includes a payment step, so choosing online payments does not add a second implementation.
- Uncertainty is the highest single concern, never a sum. Three or more moderate unknowns step the range up once, and the top band is 45 percent either side.
- Monthly running costs are bands, not invented vendor prices. They are added once, and managed support is a separate line at its own hours.
THE TOOL
An honest number, before the first call.
Most quotes arrive after a long conversation, and most estimates arrive as a single number with no explanation. This tool does the opposite. It asks what you want in plain words, estimates the work each part needs, and shows you the range before you speak to anyone.
It covers a simple website, an online store, a subscription product, a dashboard, an internal tool, a marketplace, or something powered by AI. If you are not sure which one you need, that is a valid answer too.
Nothing is sent to us until you choose to request a quote. You can change any answer and watch the estimate respond.
The figures come from our delivery model and our current rates. They are estimates, not quotations.
HOW IT WORKS
Three minutes of plain questions.
- 01
Describe what you want
Choose from familiar options, with examples. Where the answer is genuinely technical, we ask about the outcome instead and work the rest out ourselves.
- 02
See the range
We estimate the work behind each part of your project, combine it, and widen the range for anything nobody has reviewed yet.
- 03
Ask for a quote
If it looks right, send your answers across. We reply with an architecture opinion, an honest timeline, and a number in writing.
WHAT MOVES THE NUMBER
Six things decide most of the cost.
Every estimate is a sum of real work. These are the parts that change it the most.
How much there is to build
A five page site and a thirty screen product are different jobs. Each screen needs designing, building, and testing.
What people can do
Accounts, payments, bookings, dashboards, and messaging each add real work. A contact form does not.
How much access differs
One shared view is simple. Several roles, each seeing different records, needs rules and testing at every step.
What it must connect to
Accounting, a CRM, a stock system, or a calendar. Each connection has two sides, and both can fail.
What you already have
A finished design saves design work. Screenshots do not, because the design has to be rebuilt to be built.
How much nobody knows yet
An unreviewed reference or an unchecked codebase does not make a project cheaper. It makes the range wider.
TWO KINDS OF COST
Building it is one cost. Running it is another.
These are separate on purpose. A project can be finished and still cost money every month.
Development
One time. Paid while the work happens, before launch.
- Planning, design, and building
- Testing, deployment, and handover
- Paid once, then it is yours
Running and support
Every month, for as long as the product is live.
- Hosting, database, storage, and services
- Optional managed support and updates
- Separate from new features, which are quoted as work
The calculator shows both, so the monthly figure never hides inside the build price.
PUBLISHED PACKAGES
Packages are priced separately.
These packages have their own defined scope. The estimate above is built independently from your answers, and the two are not required to match.
Ranges are typical, not fixed. Your number is confirmed in writing before the build starts.
- Launch Site
- $900 - $2,500
- A site whose job is conversion. For launches, campaigns, and offers that need to exist this month.
- Product Build
- $5,000 - $15,000
- SaaS platforms, AI systems, and internal tools. Auth, database design, APIs, admin workflows. Built once.
- Enterprise / Custom
- $15,000+
- Complex systems, migrations, audits, and partnerships. Architecture that survives your roadmap.
- Ongoing Maintenance
- $400 - $1,800/mo
- Someone who knows your codebase watches its vital signs every month.
Your number is confirmed in writing before any build starts.
WHERE THIS LEADS
The services behind these numbers.
Most projects are a combination of these. Each page explains the work in the same plain language.
Web Development
Custom web development services for SaaS and startups. React and TypeScript frontends, Node.js APIs, and databases engineered to ship fast and scale clean.
AI Integration
AI integration services that wire LLMs, embeddings, and AI features into your product. Prompt-engineered pipelines built for reliable, production-grade behavior.
Questions about the estimate.
[ FAQ ]
What the number means, what it does not mean, and why the range moves.
No. It is an estimate from a documented model, with a range that reflects what we could not verify. A quotation is issued in writing after we review the requirements together, and it is the number that counts.
The estimate comes from the same model we use to scope projects: the work each part needs, at our current rates. A project with settled scope and a finished design gets a narrow range. A project described in a few sentences gets a wider one, and the top of that range is the safer number to plan around, because unknown parts usually take longer than they look.
Width comes from things nobody has checked: a reference site we have not reviewed, an existing codebase whose condition is unknown, integrations that are not specified, or data that has not been inspected. Narrowing the range is exactly what the first conversation does.
No. The budget question is there so we can suggest the right scope for you, and it never enters the calculation. What you see is what the work costs, whether your budget is higher or lower than that.
Usually yes, and we will say so. If you mark features as able to wait, we suggest a smaller first version that launches sooner and proves the idea before the rest is built.
They are shown separately. Running costs cover hosting, a database, storage, email, AI usage, and monitoring. Managed support is a separate arrangement with its own hours, and you can decline it and manage the product yourself.
A finished design removes most of the original design work, and the estimate reflects that. Screenshots do not, because a picture of a screen still has to be rebuilt properly, including everything a picture cannot show.
The estimate treats it as a review plus the work you described. If the code is unavailable or its condition is unknown, the range widens instead of pretending the review is free. A short audit usually settles it.
The running cost covers hosting, a database, storage, email delivery, AI usage, monitoring and backups, depending on what the project needs. It does not include domain names, card processing fees charged per sale, or software subscriptions you already pay for. AI usage is billed by the model provider and varies with use, so it is shown as a range rather than a fixed price.
No. The estimate appears on screen without any contact details. Email is only used if you ask for a written copy or a quote, and the consent box is only for that conversation.