Support Plans

An App Decays Even When Nobody Touches It

Web software sitting on a server you control can be left alone for years. A mobile app cannot. It lives on two platforms that ship a new major version every year, inside two stores that change their rules on their own schedule, on hardware that changes shape — and none of that waits for your roadmap.

Why It Happens

Nothing You Did Caused This. The Ground Moved.

The most common support call we get starts with “we haven’t changed anything”. That is usually true, and it is also the problem. Six things move underneath a live app whether or not a single line of your code changes.

A Major OS Release Every Year

Apple and Google each ship a major version annually, and on iOS a large share of users are on it within weeks. Every release quietly retires an API, tightens a permission, changes how a system control is drawn, or alters when the operating system is willing to wake your app. The usual symptom is not a crash — it is one screen that now looks wrong, or a background refresh that silently stops running.

New Device Sizes and Aspect Ratios

Each hardware generation brings a screen a little taller, a cutout in a different place, a foldable that changes size mid-session, or a safe-area inset that was not there before. A layout that was pixel-perfect two years ago starts clipping a button behind a rounded corner or stranding a call-to-action below the fold on a tall handset. Nobody reports it; they just stop completing the flow.

Certificates and Profiles That Expire

Signing certificates, provisioning profiles, push notification keys and Android upload keys all have expiry dates, and they rarely expire at a convenient moment. The failure mode is nasty because it is invisible from the outside: the app in the store keeps running, push notifications stop arriving, and you discover the problem when you try to ship an urgent fix and cannot produce a build at all.

Store Policy and Target-API Deadlines

Both stores publish policy changes with compliance dates attached, and Google sets a minimum target API level that ratchets upward each year. Miss one and the punishment is not a warning email — it is your next update being refused, or in the worst case the listing becoming invisible to new devices. These deadlines are knowable months ahead, which is precisely why missing one is avoidable.

Third-Party SDKs Going Unmaintained

Every app carries someone else’s code: analytics, crash reporting, maps, payments, a chart library, an image loader. Some of those projects get abandoned, some get bought and relicensed, and some publish a breaking major version that the next OS release forces you onto. A dependency that has not been updated in two years is not stable, it is stranded, and the cost of moving off it grows every month it is left.

Backends and APIs Changing Underneath

Your own server gets deployed, a payment provider versions its API, a partner sunsets an endpoint, an SSL certificate rotates, a cloud function gets a new minimum runtime. On the web a bad deploy is reversible in minutes. On mobile the client is already on a hundred thousand phones and can only be changed by shipping a new build and waiting for people to install it, so backwards compatibility stops being a nicety and becomes a hard requirement.

The Calendar Nobody Sends You

A Year in the Life of a Live App

This is the rhythm of a typical year for an app in both stores. None of it is triggered by anything you do, and all of it arrives whether you have someone to handle it or not.

Conference Season — The Betas Land

Apple and Google announce the next OS versions and put developer betas out. This is the first moment you can find out whether next autumn breaks anything, and it is the cheapest moment to find out. We install the betas and run the app through its main journeys.

Summer — Beta Testing and Deprecation Notices

The beta cycle runs for months and the deprecation notes get more specific with each build. Anything that will need reworking is scheduled now, while there is no deadline attached, rather than in October when there is.

Autumn — The New iOS Ships and Adoption Is Fast

iOS adoption moves quickly, so an incompatibility that affects one screen can reach a large share of your users inside a fortnight. We ship a compatibility release close to the public launch rather than waiting for the reviews to tell us.

Autumn — New Flagship Handsets, New Geometry

New devices bring new screen dimensions, new safe areas and new display behaviours. Screenshots in your store listing may also need regenerating at the new sizes, which is a small job that only looks small until it is due in the same week as everything else.

Late Autumn — The Holiday Submission Slowdown

Both stores get slower and less forgiving around the end-of-year holidays, and Apple historically pauses new submissions for a stretch. Anything you want live before the new year has to be submitted with genuine slack in front of it, not on the last possible day.

Winter — Android Rollout Reaches the Long Tail

Android upgrades arrive device by device and manufacturer by manufacturer, so the new version keeps reaching new segments of your user base for months. This is usually when manufacturer-specific battery optimisation and background-work behaviour shows up in crash reports.

Annually — The Target API Level Ratchet

Google raises the minimum target API level that apps must build against in order to keep publishing updates. It is a fixed, published deadline and it is one of the most common reasons an otherwise healthy app suddenly cannot ship a fix.

Any Month — An Expiry You Forgot Existed

A distribution certificate, a provisioning profile, a push key, an API token, a domain, an SSL certificate. We keep a dated inventory of every one of them and renew ahead of the date instead of discovering it during an incident.

Any Month — A Policy Update With a Compliance Date

Privacy declarations, data-safety forms, permission justifications, account deletion requirements, advertising identifier rules. Each one is a small piece of work, each has a date, and the consequence of missing one is a rejected update at the worst possible time.

Continuously — Dependency Drift

Libraries publish patches, some of them security patches. We batch routine upgrades into a scheduled maintenance release every few weeks so the app never accumulates a two-year gap that has to be crossed in one terrifying jump.

Retainer Bands

Three Sizes, One Fixed Monthly Figure

All figures are indicative monthly amounts in US dollars and are confirmed in writing after we have seen the app. Each band is a fixed monthly fee, not an hourly meter, and the developer account fees and paid third-party services stay billed directly to you.

Upkeep

$750/month

Roughly 8 development hours. For a stable app with modest usage that mainly needs to stay publishable and watched.

  • Certificate, profile and key inventory, renewed ahead of expiry
  • OS compatibility testing against each new major release
  • Store policy and target-API deadline tracking
  • Crash reporting configured, watched and triaged
  • Dependency and security patch releases, batched quarterly
  • Defect fixes within the agreed scope
  • A written monthly note on what changed and what is coming
Ask About Upkeep

Roadmap

$4,400/month

Roughly 50 development hours. For an app that carries revenue, where a bad release costs money and the backlog never empties.

  • Everything in Iterate
  • A named developer and a named point of contact
  • Two-week cycles against a backlog you prioritise
  • Beta channel maintained for your testers on both platforms
  • Release-health monitoring with a rollback or halt plan per release
  • Backend and API maintenance for services we built
  • Quarterly review of analytics, retention and store performance
Ask About Roadmap

Indicative figures for planning. The hour counts are a guide to capacity, not a timesheet you get billed against — the fee is fixed and the work is prioritised with you.

Response and Resolution

What We Will Actually Commit To

Two numbers get confused in most support contracts. Response time is how long before a human reads it and tells you what is happening. Resolution time is how long before it is fixed. Only the first is fully within our control, so only the first is a promise.

Severity What it looks like First response Realistic resolution
Critical App will not launch, sign-in is down, payments fail, a crash is hitting a large share of sessions Within 4 working hours Work starts the same working day and does not stop; a store release still has to clear review before users get it
High A main feature is broken on one platform or one OS version, push notifications have stopped, a build cannot be produced Within 1 working day Typically inside the same week, shipped with the next release
Normal A defect with a workaround, a layout problem on specific devices, a slow screen Within 2 working days Scheduled into the next planned release
Low Cosmetic issues, copy changes, small requests, questions Within 2 working days Batched into a future release

Where the Honesty Matters

We can commit to when we start. We cannot commit to when a fix reaches your users, because a mobile fix has to go through a store before anyone can install it. An expedited review can help in a genuine emergency and we will request one, but it is a request, not a lever. This is the single biggest difference between supporting an app and supporting a website, and anyone quoting you a guaranteed end-to-end resolution time for a store-distributed app is quoting you something they do not control.

What We Will Not Claim

  • No staffed 24/7 on-call rotation. There is no overnight pager here.
  • No uptime percentage for the store listing — that is Apple’s and Google’s infrastructure, not ours.
  • No guaranteed review turnaround. We can prepare a clean submission; we cannot schedule a reviewer.
  • No promise that a policy change will not force unplanned work. We can only see it coming early.
Reviewing crash reports and release health in an app store console
Monitoring and Crash Triage

Most Users Never Report a Crash. They Just Leave.

A tiny fraction of people who hit a broken screen will write to you about it. The rest uninstall, or leave a one-star review three weeks later that says nothing useful. That is why crash reporting is the first thing we set up on any app we take over, and why the retainer includes someone actually reading it rather than simply switching it on.

  • Crash and non-fatal error reporting wired into both platforms, with release and device dimensions attached
  • Crash-free session rate tracked per release, so a regression is visible as a drop rather than as a review
  • New issues triaged by how many real users they affect, not by how alarming the stack trace looks
  • Android vitals and iOS metrics watched for ANRs, excessive wakeups, battery and cold-start regressions
  • Store reviews scanned for the reproducible bug reports buried among the ratings
  • Every release rolled out in stages on Android and halted if the crash rate moves the wrong way
Analytics and monetisation
Scope

Inside the Retainer, and Outside It

The line is drawn before you sign rather than argued about later. If something sits on the boundary we tell you which side we think it falls and why, before starting.

Always Included

Keeping the App Publishable

  • Certificate, profile and signing key renewals
  • Compatibility work for new iOS and Android releases
  • Target API level and store policy compliance
  • Defect fixes inside the accepted scope
  • Crash monitoring and triage
  • Security patches for dependencies
  • Submitting releases and answering review feedback

Sized by Band

Improvement Capacity

  • Small features and changes to existing flows
  • Copy, layout, iconography and onboarding tweaks
  • Store listing and screenshot refreshes
  • Performance work on start-up time and app size
  • Additional device coverage in testing
  • Analytics events added as questions come up

Quoted Separately

Work With Its Own Shape

  • A new module or a major feature needing its own design pass
  • Adding a second platform to a single-platform app
  • A full visual redesign or a migration to a new UI framework
  • Wearable, tablet or TV companion apps
  • A new backend, or a significant rework of an existing one
  • The initial handover review on an app we did not build

Not a Retainer Item

Outside Our Control or Our Remit

  • Apple and Google developer account fees
  • Paid third-party APIs, maps, SMS and payment processing fees
  • Cloud hosting, storage and bandwidth bills
  • Paid user acquisition, ad spend and influencer work
  • Customer support for your end users
  • Overnight, weekend and public holiday cover
FAQ

Support Questions, Answered Straight

Do you offer 24/7 emergency cover?

No, and we would rather say so plainly than bury it. There is no staffed on-call rotation here and no overnight pager. We work Monday to Friday, 10:00–19:00 IST, and a genuine production outage raised outside those hours is picked up at the start of the next working day. If your app carries payments or clinical data and you need a human awake at 03:00, you need a provider with three shifts and a formal on-call roster, and we will tell you that on the first call rather than sell you a plan that cannot deliver it.

What is the minimum term, and can we stop?

Retainers run month to month after an initial three months, and the three months exist because the first month is mostly discovery — reading the code, wiring up crash reporting, checking what is expiring and building the release pipeline. Give us thirty days of notice and the plan ends. There is no exit fee and nothing is withheld: the accounts, the signing keys, the repository and the release documentation are already yours and already in your name.

Do unused hours carry over to next month?

One month forward, and no further. A quiet month can lend its unused capacity to the month that follows it, which covers the normal case where a feature slips a couple of weeks. What we do not do is let six quiet months bank into a six-month project, because the retainer pays for a team holding capacity for you, not for a block of hours sitting in a drawer. If you know a larger piece of work is coming, it is cheaper to scope it as a fixed-price project alongside the retainer.

Will you take on an app your team did not build?

Usually yes, after a paid handover review. We spend a fixed number of days reading the codebase, building it from a clean checkout, checking which dependencies are abandoned, confirming that the signing keys and store accounts actually exist and are reachable, and writing up what we find. Sometimes the verdict is that the app is in good shape and the retainer starts the following week. Sometimes it is that the build cannot be reproduced at all, in which case a rebuild is cheaper than maintaining something nobody can compile. You get the written verdict either way.

What counts as a defect fix and what counts as a new feature?

A defect is the app not doing what it was specified and accepted as doing — a crash, a screen that will not load, a payment that fails, a layout that breaks on a device we agreed to support. Those are fixed inside the retainer at no additional charge. A feature is the app doing something new: a screen that did not exist, an integration that was never in scope, a second language. Small features fit inside the monthly capacity on the larger bands. Anything that needs its own design pass and more than a couple of weeks becomes a quoted project, and we say which it is before starting rather than after.

Does the retainer cover the App Store and Play Store fees?

No. Apple and Google each charge their own developer account fees directly to you, on their own renewal cycles, and those accounts stay in your company name so the billing relationship is yours. The same goes for paid third-party services the app depends on — maps, push infrastructure, error reporting above the free tier, SMS, payment processing. We will tell you what they cost before you commit to any of them, and we will warn you when a renewal is due, but we do not mark them up and we do not pay them on your behalf.

What happens if we let the retainer lapse?

Nothing dramatic on day one, which is exactly what makes it dangerous. The app carries on working for a while, then a certificate expires and push notifications quietly stop, or a store deadline passes and updates get refused, or a new OS release breaks a screen and the reviews start. Twelve to eighteen months without maintenance is usually when it becomes visible to real users. If you stop the plan we hand over a written state-of-the-app note covering what is expiring when, so whoever picks it up next is not starting blind.

Can we start a retainer before the app is finished?

It is better to start it at launch rather than before. Everything up to store approval is covered by the build engagement and its defect-fix window, so paying a retainer on top of that is paying twice for the same cover. The sensible sequence is to agree the plan during the final build sprint and have it begin the day the app goes live, which is also the point where crash reporting starts producing data worth looking at.

Put Someone Behind Your Live App

Tell us what is in the stores now — whether we built it or not — and we will come back with what is expiring, what is out of date and which band actually fits.