Budget for the work your app will need after launch
A useful Flutter app maintenance budget starts with the product's operating needs: routine care, platform changes, incidents and planned improvements, with a clearly priced level of support. Add the services the app consumes and any initial work needed to take responsibility for it. A percentage of the original build price cannot tell you whether those obligations are covered.
For a UK business, the practical question is: what must keep working, who owns it, and how quickly must someone respond when it fails? A staff reference app and a customer booking service can share a framework while needing different maintenance arrangements.
This guide provides a planning model for an existing or proposed Flutter application. The worked figures are deliberately illustrative, not UK market rates, supplier quotations or a promise of availability. Products with regulated activities or exceptional availability requirements need specialist assessment alongside engineering planning.
Separate maintenance into work you can actually scope
Start with four work categories. They explain the purpose of an activity; your commercial agreement then specifies its coverage and price.
| Category | What it achieves | Example to include in the scope |
|---|
| Corrective | Restores intended behaviour | Investigate a failed sign-in or repair a broken booking flow |
| Adaptive | Keeps the app compatible with its environment | Update a platform integration after an operating-system or API change |
| Preventive | Reduces a known future risk | Replace an unsupported dependency or rehearse a recovery procedure |
| Product enhancement | Changes the product's capabilities | Add a new checkout option or redesign onboarding |
Product enhancement belongs in the overall ownership budget, but it should remain visible as a separate allocation. Otherwise a feature request can consume the hours intended for keeping the existing service healthy.
Use five planning lines: baseline care, platform change, incident provision, product change and service coverage. List hosting and other direct service charges alongside them. Assign each task once; an upgrade included in baseline care must not appear again as a separately charged platform project.
Establish the baseline before agreeing a monthly number
A maintainer needs to know what they are accepting responsibility for. For an inherited app, commission a bounded handover assessment before committing to ongoing coverage. Ask for its findings, exclusions and remediation estimate as separate outputs.
The assessment should inventory the Flutter and Dart versions, important packages, native integrations, backend services, build pipeline, signing arrangements and store accounts. It should also identify who can deploy, who receives alerts, where operational instructions live and whether a new engineer can reproduce a release.
An app that builds only on a departing developer's laptop has an immediate ownership problem. Budget to resolve it explicitly rather than expecting a small maintenance allowance to absorb an unknown backlog.
Keep dependencies and the build environment usable
Flutter recommends its stable channel for production releases and provides commands for reviewing and upgrading dependencies. Its upgrade guidance is a useful starting point for the maintenance schedule. Updating the framework, application packages and platform build tooling should be a reviewed change, followed by appropriate checks.
Ask for a version inventory, a reasoned update plan and evidence that critical journeys still work after changes. Avoid a contract that simply promises to install every update immediately, regardless of product impact.
Flutter's breaking-change guides are organised by release and warn that historical workarounds may become inaccurate. The practical budgeting implication is to reserve time to assess the specific migration path, including plugins and native customisations, rather than treating an SDK upgrade as a fixed-duration command.
Include monitoring, accounts and service ownership
Baseline care should specify who reviews crashes, performance, failed jobs and third-party service notices. Define the review frequency and the action expected when a signal deteriorates. A dashboard without an assigned owner is not a support process.
For example, Firebase's Crashlytics setup guidance for Flutter includes sending a test exception and additional symbol handling for some builds. A sensible acceptance check is evidence that a controlled test report arrives and can be interpreted; merely adding a package is insufficient evidence of a working setup.
Record renewal dates and owners for domains, developer accounts, certificates where applicable, and essential subscriptions. Also scope backup checks, restoration exercises, access reviews and handover documentation according to the actual system. Agree what diagnostic data may be collected and retained; avoid placing customer secrets in logs.
For a focused review of slow journeys, use the mobile app performance audit checklist. Keep a separate improvement estimate when findings exceed routine care.
A stable feature list does not freeze the environment around the app. Google Play publishes target API requirements, including different rules for submissions and continued availability. Apple maintains a separate requirements calendar covering matters such as build SDKs and minimum deployment targets. Check the requirements that apply to your application before estimating an update.
Your maintenance calendar should name the owner of each relevant deadline and work backwards through implementation, regression testing, release preparation and submission. Avoid promising that a supplier can control an external review timetable.
Flutter can share substantial application code across platforms; the budget should still name the device and operating-system combinations that will be checked. Include important native features such as notifications, authentication, camera access and purchases where the product uses them. A shared codebase does not eliminate platform-specific acceptance work.
Identify the cost drivers before comparing suppliers
Count meaningful risks and obligations rather than screens alone. Ask these questions during scoping:
- Business criticality: what happens if customers cannot complete the main task for an hour, a day or a weekend?
- Integration exposure: which payment, identity, messaging, mapping or other services can change independently?
- Technical condition: can the team build, test and release reliably, and how much undocumented work exists?
- Customer diversity: which devices, accessibility needs, languages and network conditions are important?
- Release frequency: how often will features, configuration or content require engineering involvement?
- Data and assurance: what access, audit, privacy and sector-specific reviews are actually required?
- Operating scale: which service costs and operational tasks grow with usage, storage or traffic?
Do not assume that twice the user count means twice the engineering effort. Ask which workload or failure exposure changes. Likewise, separate routine security work from specialist assurance: a maintenance agreement is not automatically a penetration test or a compliance assessment. The secure mobile app guide provides a useful companion scope discussion.
Build an annual envelope from explicit assumptions
Use this planning calculation:
Annual envelope = mobilisation + planned engineering + incident reserve + direct service charges + any separately priced coverage commitment.
Planned engineering includes baseline care, platform work and approved product changes. Calculate those hours at an agreed rate, or use separately quoted fixed work packages. Keep the incident reserve visible as money available if needed, not evidence that the work will occur.
If an incident happens, replace the relevant reserve allowance with actual or forecast work. Do not add the actual bill while leaving the same risk fully funded elsewhere. Similarly, a retainer's included hours should not be counted twice.
Three illustrative planning scenarios
The following examples were prepared on 28 October 2026. Every hour and service allowance is an invented planning assumption to demonstrate the calculation. The common £85 hourly rate is a chosen arithmetic input, not a claim about market pricing. All totals exclude VAT, where applicable, and specialist third-party assessments. Coverage is during agreed business hours; no 24-hour response commitment is priced.
| Annual planning line | Stable utility | Active customer service | Inherited, more complex product |
|---|
| Baseline care | 72 hours | 144 hours | 216 hours |
| Planned platform work | 24 hours | 48 hours | 96 hours |
| Product improvements | 24 hours | 96 hours | 120 hours |
| Incident reserve | 12 hours | 36 hours | 72 hours |
| Total engineering allowance | 132 hours | 324 hours | 504 hours |
| Engineering at assumed £85/hour | £11,220 | £27,540 | £42,840 |
| Direct service allowance | £600 | £2,400 | £6,000 |
| Initial mobilisation | £0 | £0 | £5,100 |
| First-year planning envelope | £11,820 | £29,940 | £53,940 |
The third example adds 60 mobilisation hours outside the ongoing engineering allowance. The zero mobilisation entries assume a documented, accepted handover already exists. The service allowances must be replaced with actual provider quotes and usage forecasts.
These are not recommended packages or minimum prices. Change the assumptions to fit your product. A lower total might reflect fewer obligations; a higher total might reflect extensive new features, exceptional service coverage or inherited remediation. Ask which explanation applies before deciding whether a quote is expensive.
Convert the annual envelope into a cash-flow schedule. Platform work and mobilisation may fall into particular months, and unused incident provision may remain unspent. Dividing by twelve is a useful saving target, but does not describe the invoice pattern.
Choose an ownership model that matches the workload
Retainer with a defined service scope
A retainer can provide a recurring review rhythm and agreed access to a team. Confirm the hours or deliverables included, response arrangements, treatment of unused capacity, and the price of excess work. Ask whether a major SDK migration, emergency release or investigation without a confirmed code defect is included.
Separate an acknowledgement target from a restoration or resolution commitment. A supplier may acknowledge a report quickly while still needing access, reproduction steps or a third-party fix. Set severity definitions around customer impact and agree the escalation path.
Time and materials with a spending limit
This arrangement can suit intermittent, well-understood work when someone inside the business owns prioritisation. Agree an authorisation threshold, a regular forecast and a limit beyond which investigation pauses for a decision.
Ask who performs routine checks between requests. Paying only when a ticket is raised does not, by itself, assign responsibility for looking for problems. If proactive review is required, include it as a scheduled task.
Internal ownership or a mixed arrangement
An internal team still needs capacity for leave, handovers, documentation and operational work alongside new features. Budget that time explicitly. A mixed model can keep product knowledge in-house while buying specialist help or additional coverage, provided responsibilities and access boundaries are clear.
Compare offers using the same inventory, service window and acceptance criteria. A monthly fee has little meaning until the supplier has said what it covers and what remains your responsibility.
Request quotes against a maintenance scope checklist
Send suppliers a short pack containing the product purpose, release history, platform inventory, main journeys and known limitations. Ask them to return a scope with these items answered:
- Ownership: named contacts for application code, backend, infrastructure, store submissions and third-party escalation.
- Baseline: recurring checks, reporting cadence, dependency review and documentation responsibilities.
- Platform change: included update effort, migration exclusions and who tracks external deadlines.
- Testing: critical journeys, device coverage, release checks and evidence retained.
- Incident handling: severity definitions, contact route, service hours, response expectations and spending authority.
- Capacity: planned hours or deliverables, unused allowance, excess charges and feature-work boundaries.
- Direct costs: provider bills, account renewals, usage assumptions and who approves increases.
- Transition: initial assessment, remediation, access ownership and an exit handover process.
Ask for a sample monthly report structure: work completed, reliability signals, forthcoming obligations, risks requiring a decision and the updated forecast. The purpose is to make decisions visible, not to maximise ticket counts.
Ask which defects remain covered by the original delivery warranty, if any, and which work becomes chargeable maintenance. Record the handover date, exclusions and approval process so the same correction is not charged twice. Keep this distinction separate from requests for new functionality.
Revisit the budget when the product changes
Review the envelope regularly and whenever a major integration, release pattern or operating requirement changes. Compare planned work with actual effort, examine which incidents consumed provision, and update the next quarter's platform calendar. Record the reason for a changed assumption so the business can see whether spending bought additional capability or addressed an existing risk.
Start with an inventory and a defined service level, then price the work against them. If you want help turning those obligations into a comparable supplier scope, plan a realistic support and maintenance scope with FlutterCraft.
Research checked: 28 October 2026. Review platform requirements before a release and refresh this guidance by 26 January 2027. This is an operational budgeting framework, not a supplier quotation or financial, legal or compliance advice.