The short answer: cost follows uncertainty
A web application has no universal price, just as “commercial premises” have no meaningful cost without their size, location, and utilities. Two products with the same number of screens can require very different levels of effort: one merely displays data, while the other manages permissions, payments, approvals, synchronisation, and history.
A serious estimate models the scope known at a particular point in time. It shows what is included, what is excluded, which assumptions were made, and where risk remains. The less clear the requirements—or the more they depend on unverified systems—the wider the range should be. Precision displayed without analysis is not certainty; it is simply a number with many hidden assumptions.
First: website or web application?
A website primarily publishes information and guides people towards an action: reading, requesting a quote, buying, or getting in touch. An application lets users work with data and processes: they create an account, manage projects, approve documents, book resources, track states, or collaborate with others. Many products contain both areas, but they should be estimated separately.
- A company website with a form does not become an application simply because it uses React.
- A visually simple portal can conceal extensive access, audit, and synchronisation logic.
- An administration panel is part of the product, not an automatic backend bonus.
- A mobile application, when needed, adds platforms, distribution, and testing; it is not merely the same interface made smaller.
A correct definition prevents a proposal for a set of pages from being compared with one for a complete operational system.
What actually creates cost
The number of features matters, but the relationships between them matter more. An access rule affects the API, interface, tests, notifications, and audit trail. This is why estimates should be based on complete workflows, not a list of buttons.
Users, roles, and access
Basic authentication is different from a system with organisations, teams, invitations, delegation, and object-level permissions. Add requirements such as multi-factor authentication, company identity sign-on, suspension, recovery, and deletion, and both the implementation and testing surface grow.
- Which user types exist, and what can each one see or change?
- Does a user belong to one organisation or several?
- Who invites, approves, suspends, and restores access?
- Which actions must be retained in an audit log?
Workflows and business rules
Cost lives in the exceptions. “The customer submits a request” is simple until that request can be saved as a draft, completed by colleagues, returned for corrections, approved in two stages, cancelled, and reactivated. Map the states and transitions, including who can perform each step and which notification it triggers.
- Calculations, pricing, availability, and conditional rules.
- Approvals, deadlines, escalations, and automated actions.
- Files, versions, comments, and simultaneous collaboration.
- Payments, refunds, invoicing, subscriptions, and intermediate states.
- Reports, exports, and bulk operations for administrators.
Data, search, and migration
A customer list is not the same as a relational history of customers, contracts, invoices, and activities. Volume, relationships, retention, access rights, and data quality affect the model and infrastructure. Where a legacy system exists, the import needs analysis: mapping, cleaning, deduplication, missing files, validation, and the ability to resume a failed run.
Searching a small set by name differs from complex filtering, document search, relevance ranking, suggestions, and near-real-time indexing. Do not let “search” appear as a single line in a proposal without defining the expected behaviour.
Integrations and external dependencies
An integration cannot be estimated from API documentation alone. Access to the test environment, limits, data quality, webhooks, authentication, reconciliation, and product behaviour when the external service does not respond all matter. Legacy systems without a stable API can turn integration into the riskiest part of the project.
- Which data enters and leaves, which system is authoritative, and how often does it synchronise?
- Are documentation, a test account, and real response examples available?
- How are duplicates detected, and how is a partial synchronisation repaired?
- Who bears the cost and changes imposed by the external provider?
Security, quality, and operations
Requirements that never appear on a screen are often what make a product safe and operable. Backup, restoration, observability, data protection, accessibility, and testing need to be estimated. An MVP may have fewer workflows, but it should not ignore access control, data validation, or recoverability.
- Data sensitivity, retention, consent, and deletion requests.
- Required availability, backup, restoration, and the incident plan.
- Accessibility, devices, browsers, and supported network conditions.
- Logging, alerts, conversion measurement, and error diagnosis.
- Test environment, production deployment automation, documentation, and ownership transfer.
How to build a verifiable estimate
For a product that is still unclear, the first estimate should be a decision range, not a contractual price. After discovery, features can be divided into workflows, each with assumptions and a level of uncertainty. An unverified integration should not be estimated with the same confidence as a familiar form.
- Define the actors, problem, and measurable outcome for the first version.
- Map the core workflows and the exceptions that must be supported at launch.
- Divide delivery into components: UX, interface, API, data, integrations, administration, QA, and infrastructure.
- Mark dependencies and assumptions that could change the effort substantially.
- Validate major risks through API access, a data sample, or a technical prototype before making a broad commitment.
- Apply the team’s rate or commercial structure to the effort and present options, contingencies, and recurring costs separately.
A fixed-price proposal can be healthy once the scope is sufficiently stable and changes have a clear mechanism. During exploration, a budget by phase with decision points can be more honest than a total that will be renegotiated at the first unknown.
Three levels of scope, without headline prices
The examples below are not packages and imply no price. They show why the label “web application” covers very different products and what must be clarified before a proposal is prepared.
- Focused internal tool: one main user type, a few records, clear operations, a controlled import, and basic reporting. Risk remains relatively low when the rules and data are known.
- Operational portal: several roles and organisations, approvals, files, notifications, administration, search, and one or more integrations. Permissions and exceptions become a significant part of the effort.
- SaaS product or transactional platform: onboarding, subscriptions or payments, separation of customer data, configuration, audit, support, analytics, automation, and scaling requirements. In addition to features, the product needs mechanisms for commercial operation.
Even the same level can vary considerably. A portal with one well-documented integration may be more predictable than an apparently small tool that depends on a legacy ERP. The supplier therefore needs to explain the effort drivers, not merely select a category.
How to reduce an MVP without making it fragile
MVP means the smallest version that can validate an assumption under real conditions. It does not mean implementing every feature superficially. Reduce the variety of cases, premature automation, and rare customisation, while retaining baseline security, data integrity, monitoring, and one complete workflow for the chosen user.
- Limit the first audience to one team, market, or customer category.
- Support one complete, measurable workflow rather than five half-built ones.
- Temporarily replace rare automation with visible, documented administrative operations.
- Postpone configurability until there is evidence that rules genuinely differ between customers.
- Integrate the critical system first; controlled exports can temporarily cover secondary connections.
- Keep the architecture clear enough to add the next stage without a complete rewrite.
How to compare two proposals
Do not compare only the totals. One proposal may include analysis, administration, import, and launch support while another assumes the customer will provide them. Normalise the scope and ask what happens when an assumption proves false.
- Does the proposal describe outcomes and workflows, or only technologies and a screen count?
- Are UX, content, administration, migration, QA, infrastructure, and training included?
- Which browsers, devices, volumes, and access levels have been assumed?
- Who owns the code, repository, accounts, domain, and documentation?
- How is a feature accepted, and how are scope changes handled?
- What defect-remediation warranty, maintenance, and incident response exist after launch?
- Are third-party dependencies, licences, and recurring costs named?
A lower price may be the right choice when its scope is deliberately narrower. It becomes dangerous when the difference comes from omitted work that the project will require anyway.
Costs after launch
The product budget continues after publication. Separate relatively predictable costs from those driven by usage and the pace of development. Do not ask for one figure without a traffic, storage, support, and availability scenario.
- Hosting, databases, storage, file delivery, and traffic.
- Email, SMS, maps, search, payment processing, and other metered services.
- Monitoring, backups, security updates, and restoration testing.
- User support, interventions, and data administration.
- Product improvements, legislative changes, and changes to external integrations.
Ask for three operating scenarios—starting, likely, and growth—based on stated assumptions. The cost can then be updated when user numbers or data volume change, without artificial promises.
What to prepare for a useful estimate
You do not need a perfect specification. You need enough context for the team to distinguish certainties from assumptions. A short brief completed in a discovery conversation is more valuable than a long, unprioritised feature list.
- The current problem, who encounters it, and what happens if it remains unresolved.
- The user types and the three most important actions for each one.
- The workflow that must work from end to end in the first version.
- External systems, their owners, and available access to documentation or a test environment.
- Existing data, its format, approximate volume, and migration requirements.
- Security constraints, legal requirements, target devices and languages, and accessibility requirements.
- The decision deadline and available budget, if known, along with the reason behind them.
- What can be postponed and which outcome would validate further investment.
This information can produce a reasoned range, a phased plan, and a clear list of unknowns. That is the useful answer to “how much does it cost?”: not a universal number, but an investment connected to the product you are actually building.