Working together
What is a software maintenance retainer and do you need one?
Published Lefty Software LLC
A software maintenance retainer is a standing agreement with a developer: instead of calling for help each time something needs attention, an agreed amount of the developer's time is set aside for your product every month. Whether you need one depends less on the software than on how often it changes and how quickly you need decisions made. This post explains what retainers typically cover, what they never should, and how to decide between a retainer, ad-hoc hourly work, and doing nothing — including how I structure it for my own clients.
What a retainer actually is
Strip away the sales language and a retainer is priority access plus predictable availability. You are not buying fixes; you are buying a place in the developer's calendar. That matters most when the work is unpredictable by nature: an operating-system update breaks a screen, a vendor retires an API your integration depends on, or a small change becomes urgent because a customer hit it first. With a retainer, that work happens inside an existing relationship with agreed expectations. Without one, every request starts a fresh conversation about scope, price, and scheduling — which is perfectly workable, just slower on average.
The distinction that matters in the contract is what the retained time covers. Honest versions separate three kinds of work: keeping the system working (updates, compatibility fixes, small corrections), changing it (new features and adjustments, which deserve their own written scope), and watching it (monitoring for outages and errors). Agreements that blur those categories are where disputes come from — "just a small change" is the most expensive phrase in software.
What maintenance should cover, and what it should not
- Fair to include: applying dependency and platform updates, fixing regressions in shipped behavior, small content and configuration changes, and check-ins that the system still runs as expected.
- Should be scoped separately: new features, redesigns, new integrations, and anything that changes what the product does rather than keeping it doing what it already did. These deserve an estimate you approve before work starts.
- Never assume: on-call response guarantees, outage prevention promises, or "unlimited small requests". If a vendor promises the first two, read closely what they actually commit to. Monitoring can catch problems; no maintenance agreement prevents them.
Retainer, ad-hoc, or nothing: how to decide
The honest answer for many small products is ad-hoc hourly work, and a developer who tells you that is worth keeping. Ask these questions of your own situation:
- How often does the product genuinely change? A stable internal tool used by one team may need attention a few times a year. A customer-facing product in active development is a different animal.
- What does waiting cost you? If a broken screen means staff revert to spreadsheets for the afternoon, speed has value. If a glitch can wait a few business days without anyone noticing, priority access is buying little.
- Do you want budget predictability? A retainer converts irregular maintenance spend into a regular, planned amount. Some businesses value that calm more than the raw hours.
- Who else can do the work? If the original developer became unavailable, could another take over from the handover documentation? A retainer with a developer who is also the only person who understands the system is a dependency, not a service.
How I structure it for my clients
New projects are fixed-price. I agree a written scope and quote with you before development starts, so the initial build has a defined cost. Changes and maintenance can be provided at an agreed hourly rate. Every website project includes 30 days of support for defects and questions after the website goes live; beyond that window, maintenance continues at that hourly rate, with the work discussed before it starts. Monitoring is available if purchased separately; it is not bundled automatically. If a client's change pattern ever makes a standing monthly agreement cheaper for both of us, I would propose one — the test is whether it fits how the product actually behaves, not whether it smooths my revenue.
The questions to ask before signing any maintenance agreement
Whatever the arrangement is called, get written answers to: what is included and what is explicitly excluded; the rate and when it can change; how quickly non-urgent work is picked up; what happens with unused time; what counts as an emergency and who decides; and how the agreement ends, including what handover you receive. That last one matters more than any other. I wrote about the standard in what to expect when hiring a solo developer: could a competent stranger continue the work from the documentation alone? A maintenance relationship that cannot survive its own end is a lock-in scheme with a friendly name.
Maintenance is also where the buy-vs-build question resurfaces: an off-the-shelf tool carries its vendor's maintenance inside your subscription, while a custom build carries your developer's. I weigh those honestly in buy vs build for internal tools. And if you want the underlying products judged by their upkeep, the StringBench case study describes a platform built to be maintained, not just launched — inventory precision is only useful while the system keeps working. I am based in Bradenton and work with clients remotely; Gulf Coast businesses can read about custom software development in Bradenton, Sarasota & Tampa Bay. For the launch-side of the same story, see my custom web app development service, which includes the first 30 days of support as standard.
Want a real number for your idea?
Tell me what you're trying to build. I'll reply with a written scope and a fixed price — not a sales call.
Start a project