App Maintenance Cost: A Buyer's Breakdown
Most teams spend somewhere between $500 and $5,000 a month keeping a live mobile app healthy, and the number lands wherever it lands because of three things: how much the app does, how many outside services it depends on, and how well the previous team documented their work. The often repeated rule that maintenance runs 15 to 20 percent of your original build cost each year is a reasonable starting point for a budget conversation, though it’s worth knowing that the figure circulates mostly through agency blog posts rather than independent research. The honest version is that maintenance is labour plus subscriptions, and you can estimate both if someone shows you the parts.

What does app maintenance actually cover?
App maintenance covers four separate jobs that often get billed as one line item: keeping the app running on current operating systems, fixing what breaks, paying for the services it depends on, and making small improvements that keep users from leaving. Those jobs have genuinely different costs and different urgency, and a quote that merges them into a single monthly figure is hiding information you need.

The first job is the one nobody can skip. Apple and Google both ship major operating system releases every year, and each release deprecates something your app relies on. Sometimes the change is invisible and your app keeps working. Sometimes a permission model changes and your camera feature silently stops working for everyone on the new version. Staying current isn’t optional work you can defer indefinitely, because the platforms eventually stop accepting builds compiled against older toolchains.
The second job is the fees. An Apple Developer Program membership runs $99 per year, and a Google Play developer account is a one time $25 registration. Those are the small, predictable ones. The real recurring spend sits in the services your app talks to, which typically means hosting, a database, push notifications, crash reporting, analytics, and whatever payment or messaging provider you integrated. A modest app might spend $70 to $320 a month on hosting alone, and that figure climbs with your user count rather than with your feature list.
The third job is fixing things. Crashes, failed payments, a third party API that changed its response format without warning. This work is unpredictable in timing but fairly predictable in volume once an app has been live for a year, which is why sensible retainers are sized on observed history rather than guesswork.
The fourth job is the one teams cut first and regret later, which is small ongoing improvement. Not new features, just the steady work of removing friction that shows up in your analytics.
How much does app maintenance cost per year?
For most small and mid sized apps the realistic annual range runs from about $6,000 to $60,000, and where you sit inside that range depends far more on complexity and dependencies than on the platform you chose. The commonly published figures line up reasonably well across the industry, so they’re useful for setting expectations even though they’re self reported by firms selling the service.

| App profile | Typical monthly | Typical annual | What that usually buys |
|---|---|---|---|
| Simple, few integrations | $500 to $2,000 | $6,000 to $24,000 | OS updates, crash fixes, hosting, light monitoring |
| Moderate, several services | $1,000 to $5,000 | $12,000 to $60,000 | The above, plus regular releases and small improvements |
| Complex or regulated | $6,000 and up | $72,000 and up | Dedicated capacity, compliance work, on call response |
The first year after launch usually costs more than the years that follow, and the difference is not small. Published figures put first year maintenance at roughly 40 to 50 percent of the original build cost, settling to 15 to 20 percent afterwards. That pattern matches what I see in practice, because a newly launched app is still discovering its own bugs. Real users find edge cases your test devices never produced, and the first few months are spent closing them.
There’s a second reason the early period costs more, and it’s worth naming because it affects how you plan. A new app often launches with rough infrastructure choices that were correct for zero users and wrong for ten thousand. The database query that ran fine on a seed dataset starts timing out. Fixing that isn’t a bug fix in the usual sense, it’s the tax on shipping early, and shipping early is usually still the right call.
What makes one app cost more than another?
Dependencies drive cost more than anything else, and it’s the factor teams underestimate most consistently. Every outside service your app talks to is a thing that can change without asking you. An app with two integrations and an app with fifteen might have taken a similar effort to build, but the second one will cost several times more to keep alive, because each of those fifteen providers ships breaking changes on their own schedule.

Complexity of your own code matters next. Offline support, background sync, real time features, and anything touching payments or health data all raise the ongoing cost, partly because they break in subtle ways and partly because testing them properly takes real effort. Regulated categories carry an additional burden that has nothing to do with engineering quality, since compliance work recurs whether or not your app changed.
Team location changes the hourly rate substantially, with published rates running roughly $70 to $100 an hour in North America, $50 to $80 in Western Europe, and $20 to $50 across Eastern Europe and Asia. Rate isn’t the same as cost though, and this is where buying decisions go wrong. A cheaper engineer who doesn’t know your codebase can easily spend four times the hours on the same fix, and you’ll have paid more for a worse result. Our work on the MerchApp rebuild is a reasonable illustration of how much familiarity changes the arithmetic.
Whether you built native or cross platform has a smaller effect than most comparisons suggest, and the effect runs in both directions. A single React Native or Flutter codebase means one set of business logic to update instead of two, which genuinely saves money. It also means you’re exposed to the framework’s own release cycle on top of Apple’s and Google’s, and a major framework upgrade can consume more time than a year of ordinary platform updates. Cross platform tends to be cheaper to maintain for straightforward apps and roughly a wash for apps that lean heavily on device features.
What does it cost to take over an app someone else built?
Taking over an existing app costs more in the first three months than ongoing maintenance ever will, and the size of that premium comes down almost entirely to documentation. This is the number nobody publishes, so here’s a plain description of what drives it.

Before anyone can safely change a line of code, the new team has to be able to build the app, run it, ship it, and understand what it does. When the previous developer left good notes and a working build pipeline, that takes a few days. When they left a repository with no README, credentials nobody can find, and a build that only ever worked on one laptop, the same work takes several weeks. The gap between those two situations is commonly a difference of $5,000 to $20,000 in one off cost, before any actual improvement happens.
The specific things that generate the bill are consistent enough to predict. Access recovery comes first, meaning Apple and Google accounts, code signing certificates, backend hosting, and the various dashboards the app reports to. Certificates are the frequent stumbling block, because an expired distribution certificate held by a developer who has stopped answering email can block releases entirely until Apple’s recovery process runs its course.
Rebuilding the release pipeline usually comes next, since a project that shipped from someone’s personal machine has no reproducible way to produce a signed build. After that comes the genuine reading, which is an engineer working through the codebase to map what it does and where the risks sit. A rescue engagement we ran for SafeWorks followed exactly this shape, and the pattern repeats often enough that it’s fair to call it standard.
The useful thing about the takeover premium is that you only pay it once. Budget it as a distinct project rather than folding it into a monthly retainer, and be suspicious of anyone who quotes a low monthly rate for an app they haven’t opened yet, because they’re either planning to charge you for the discovery later or they haven’t thought about it.
How do you tell a fair quote from a padded one?
A fair maintenance quote tells you what work it includes, what it excludes, and how many hours it assumes, while a padded one gives you a monthly number and a list of adjectives. The difference is visible within about two minutes of reading, once you know what to look for.

Start by checking whether the quote separates fixed costs from labour. Your hosting, your developer program fees, and your third party subscriptions are knowable amounts that pass straight through. If those are bundled invisibly into a single monthly figure, you have no way of telling whether you’re paying a fair margin on them or a large one. Ask for them listed separately, and treat reluctance as informative.
Then look at how the labour is described. A quote that says twenty hours a month at a stated rate is something you can hold someone to. A quote promising ongoing support with no hours attached is a number the vendor can satisfy with almost any level of effort, including nearly none in quiet months.
These are the things worth questioning directly before you sign:
- A monthly figure quoted for an app the vendor hasn’t audited or even built locally
- No stated response time for a production outage, or a response time with no consequence attached
- Emergency work billed at an undisclosed multiple of the normal rate
- Included hours that don’t roll over, paired with a scope that guarantees quiet months
The last one deserves particular attention because it’s so common. Maintenance work is genuinely lumpy, with an operating system release creating a burst of work in September and very little in February. A retainer that expires unused hours every month while charging extra for the busy ones has been designed to win both ways.
When does maintaining cost more than rebuilding?
Maintaining becomes the wrong choice when the cost of a routine change stops being proportional to its size, and that threshold is more measurable than it sounds. If a small, well specified change reliably takes weeks instead of days, and if each fix tends to break something unrelated, you’re paying interest on technical debt rather than paying for maintenance.

Two other signals point the same way. One is a dependency that has genuinely reached the end of its life, meaning a framework version that no longer receives security patches and has no supported upgrade path. The other is an app whose original architecture assumed something that’s no longer true, such as a design built around a single region that now serves users on three continents.
None of that means a rewrite is automatically right, and rewrites fail often enough that the decision deserves care. A full rebuild costs what the original build cost, or more, and it typically delivers nothing visible to users for months. The middle path is usually better and gets overlooked: keep the app running while replacing one subsystem at a time, so that each piece of spending produces something you can ship.
The honest test is whether your current spend is buying progress or just holding position. Paying $3,000 a month to keep a stable app current is ordinary business expense. Paying $3,000 a month for an app that gets worse anyway means the money is going somewhere other than your users, and that’s the point to stop and reconsider rather than renew.
Where the money actually goes

App maintenance cost is mostly labour, and labour is mostly determined by how much unfamiliar or fragile code someone has to work through to make a change. That’s why the same feature set can cost one team $800 a month and another $4,000. The difference isn’t the rate card, it’s the state of the codebase and how well the people working on it know it.
If you’re budgeting from scratch, start with your fixed costs since they’re knowable, then estimate labour from your integration count and your last six months of bug reports rather than from a percentage. If you’re taking over an app from someone else, treat the first quarter as a separate project with its own budget. And if you’re comparing quotes, the one that shows its arithmetic is worth more than the one with the lower headline number, because you can hold it to something. Building lean from the start helps too, which is one of the reasons we push clients toward an MVP first rather than a full featured launch that costs a fortune to keep alive.
Frequently asked questions
Is app maintenance cost really 15 to 20 percent of the build cost every year?
It's a serviceable planning figure and it's roughly consistent with what the industry publishes, but treat it as a starting estimate rather than a law. The percentage comes from firms that sell maintenance, and it doesn't distinguish between an app with two integrations and one with fifteen. Estimating from your actual dependencies and observed bug volume gives a better number.
What's the minimum I can spend and still be safe?
The floor is your platform fees plus hosting plus enough engineering time to ship an operating system compatibility update once a year, which for a simple app is realistically a few thousand dollars annually. Below that you're not maintaining the app, you're waiting for it to break. The risk isn't gradual, because an app that stops working after an OS release can lose its users in a single week.
Does app maintenance cost less if the app has few users?
Somewhat, since your hosting bill scales with usage, but the engineering half barely moves. Operating system updates arrive whether you have fifty users or fifty thousand, and a security patch takes the same work either way. Low usage lowers your infrastructure cost, not your obligation to keep the app current.
How much does it cost to fix a single crash?
Published labour estimates put a minor bug fix at roughly $100 to $200 and a performance problem at $500 to $1,000, which matches typical experience when the team already knows the codebase. For a team seeing your code for the first time, expect the diagnosis to take longer than the fix. That gap is why continuity is worth paying for.
Should we hire in house instead of using an agency?
In house makes sense once your app needs more than roughly half a full time engineer's attention every month, because at that point you're paying agency rates for something close to full time work. Below that threshold a retainer is usually cheaper and gives you cover when your one developer is on holiday. The awkward middle is real, and plenty of teams handle it with a part time retainer alongside one internal developer.
What should I ask for before signing anything?
Ask for the fixed costs listed separately, a stated number of hours, a response time for production incidents, and confirmation that the vendor has built and run your app locally. Any vendor quoting a monthly price for an app they haven't opened is guessing. Getting a short paid audit first is a reasonable way to turn that guess into a real number.
Have a product decision to make?
RapidLabs helps founders and operators shape, build, and launch focused software.
Email the studio