Most web application estimates start with screens.
That sounds normal, but it is usually too shallow.
Screens show what the user sees when everything works. They rarely show the behavior that makes the application expensive to build, maintain, and support.
The missing layer is state design.
What state design means
Before a team scopes a custom web application, it should define:
- who can see each object
- who can edit it
- what happens when data is missing
- what happens when an integration fails
- what the user sees while waiting
- how drafts, approvals, and history work
- which actions need notifications
- which errors should be recoverable
- which analytics events prove the workflow is working
This is where a simple app becomes a real product system.
A dashboard with three screens can be straightforward if the states are clear. The same dashboard can become risky if permissions, exceptions, and data ownership are vague.
The scoping mistake
A common early brief says something like:
We need a portal where clients can log in, submit requests, see progress, and message our team.
That is not a scope yet.
The real scope lives inside questions like:
- Can clients edit a request after submitting it?
- Can internal users override client data?
- What happens when a required attachment is missing?
- Is progress manually updated, computed from workflow status, or synced from another tool?
- Which messages are private, visible to the client, or visible to the whole team?
- What happens if two users edit the same record?
Those details decide the architecture.
They also decide whether the project needs a custom application, a configured tool, or a simpler automation layer.
A better early checklist
Before pricing the build, map the application as behavior:
- objects: accounts, requests, projects, files, messages, approvals
- roles: admin, staff, client, reviewer, external partner
- states: draft, submitted, in review, blocked, approved, archived
- transitions: who moves an object from one state to another
- failure modes: missing data, rejected data, duplicate records, failed syncs
- audit needs: who changed what, when, and why
- communication: notifications, reminders, internal notes, client-facing updates
This gives designers and engineers a shared model before they draw or build the first interface.
Why it matters for agency selection
If an agency only reacts to the screens, it will probably under-scope the operational behavior.
A serious web application team should pressure-test states, edge cases, permissions, and integration boundaries before selling certainty.
MDX has a deeper guide on web application development scope here:
https://mdx.so/blog/web-application-development-agency
And for teams comparing a broader app partner, this agency-evaluation guide is the companion piece:
https://mdx.so/blog/how-to-choose-an-app-development-agency-what-to-ask-what-to-watch-out-for-in-2026
Disclosure: drafted with AI assistance, then reviewed and edited before publishing.
Top comments (0)