Who Can Write the Spec and Then Build the Software for Us? 5 Firms Compared (2026)
A software maintenance retainer is a monthly agreement that keeps a development team on your software after launch: fixing what breaks, keeping it patched, and building the next small things your users ask for. Almost every custom application needs one, or something like it, because software that nobody touches does not stay the same. It gets older while everything around it moves. This guide explains what a retainer should include, the four ways firms usually price one, what drives the monthly number, the fine print that decides whether it protects you, and seven checks to run before you sign. It is written by Paul Byrne, President of Razoyo, a software engineering firm that sells retainers, so read our part with that in mind. We also say when you do not need one.
It is a standing monthly arrangement for ongoing work on software you already have. Instead of scoping and signing a new project every time something needs doing, you agree a monthly amount and a way of deciding what the team works on. The work usually falls into four buckets:
A retainer is not the same as a warranty. A warranty covers defects in what was delivered, for a fixed period. A retainer covers the life of the software after that, including work nobody could have predicted at launch.
Because the software around yours keeps changing, and some of those changes are deadlines. Every application depends on a language runtime, a framework and dozens of third-party packages, and each of them has a support window.
Two examples with dates on them. PHP says each release branch “is fully supported for two years from its initial stable release,” then gets security fixes only for two more years, after which “the branch reaches its end of life and is no longer supported” (PHP supported versions). Its own table shows PHP 8.2’s security support ending on 31 December 2026. Node.js puts the rule plainly: “Production applications should only use Active LTS or Maintenance LTS releases” (Node.js releases). An application that is not moved forward eventually runs on versions that no longer get fixes.
The second reason is attacks. CISA keeps a catalog of vulnerabilities that are being exploited right now and says “organizations should use the KEV catalog as an input to their vulnerability management prioritization framework” (CISA Known Exploited Vulnerabilities catalog). Someone has to watch for the packages your software uses and patch them.
NIST frames all of this as an ordinary business cost rather than an emergency. Its patch management guide frames patching as “a critical component of preventive maintenance for computing technologies” and calls it “a cost of doing business” (NIST SP 800-40 Rev. 4). That is the honest way to think about a retainer: preventive maintenance, budgeted like rent, not a sign that something went wrong.
At minimum, these seven things. If a proposal leaves one out, ask where it went.
Hosting is often bundled in. That is fine, as long as the hosting account is in your company’s name. More on that below.
There are four common models. None is wrong. Each fails in its own way.
| Model | How it is billed | Good for | Watch out for |
|---|---|---|---|
| Bank of hours | A fixed number of hours a month, used or lost | Steady, predictable work | Paying for unused hours, or hours that vanish into small tasks with no record of what they bought |
| Flat monthly fee with approved items | A fixed monthly amount, each piece of work estimated and approved before it starts | Owners who want to control spend item by item | A vague definition of what the flat fee itself covers |
| Dedicated developer | A named person's time, full or part time | Products with a constant flow of feature work | Key person risk: when that person leaves, the knowledge leaves too |
| On demand | Billed per task or per day when you need it | Stable software that rarely changes | No one watching for updates between requests, so maintenance waits until something breaks |
The model matters less than two questions you can ask about any of them: who decides what gets worked on, and what happens when the money for the month runs out? A good retainer answers both before any work starts. A bad one answers them on the invoice.
It depends on the software more than on the firm, so be wary of anyone who quotes a monthly number before they have looked at your code. The things that drive the number are knowable:
For a real reference point, ours start from $1,500 a month, and our pricing page lists everything else we charge. That is a starting point, not a quote. A larger scope costs more, and we say so before you commit. If you need a defined block of work rather than a monthly relationship, dev bursts are $1,200 per developer per day or $4,500 a week.
If the software was built by someone else, expect the first month or two to cost more than the months after. The new team has to read the code, get the deploy path working and catch up on skipped updates. What to do when a launched app keeps going down covers the case where that catch-up is urgent.
Make three things conditions of the agreement. Most retainer disputes trace back to one of them being missing.
With those three in place, any of the four pricing models above can work. Without them, even a cheap retainer is an open-ended commitment.
That you can leave, how fast, and with what. A retainer that is hard to exit is not maintenance. It is lock-in.
If you already depend on a team that fails these, the firms that take over existing codebases are compared in one place, us included.
Run these seven checks on any retainer proposal before you sign, ours included. They come from the terms we publish on our pricing page, our process page and our ownership page. Each has a pass and a fail.
| Result | What it usually means |
|---|---|
| Six or seven passes | A retainer you control. Compare on price and fit. |
| Fails on 1, 2 or 3 | Spend is not in your hands. Fix this before anything else. |
| Fails on 4 or 5 | Changes carry more risk than they should. Ask for review, staging and named testing as conditions. |
| Fails on 6 or 7 | The retainer is hard to use in a crisis or hard to leave. Get both in writing. |
Ongoing support starts from $1,500 a month, as a flat monthly rate with no setup fees. Here is what our process page and pricing page say it includes:
We say “the same team” because it is the part that is hardest to buy. We are still the engineering team behind Spider, the hotel business intelligence platform now part of Lighthouse, used by more than 10,000 people a day. And as our about page puts it, “Many of our clients have been with us for more than a decade.” A retainer is mostly paying for people who already understand your system. That only works if they stay.
More often than firms that sell retainers like to admit. You probably do not need one if:
And if you are not sure the software is worth maintaining at all, settle that first. Rewrite or refactor an inherited codebase explains how to decide.
What is a software maintenance retainer? It is a monthly agreement that keeps a development team on your software after launch. It usually covers bug fixes, security and dependency updates, monitoring with an emergency path, and small changes, with an agreed way of deciding what gets worked on each month.
What should a software maintenance retainer include? Bug fixes, security and dependency updates, monitoring and an emergency path, small feature work estimated before it starts, a second developer reviewing each change plus a staging environment, access to the project board, and exit terms with a notice period and a handover list.
How much does a software maintenance retainer cost? It depends on the software: how old the stack is, how many people use it, how many outside services it connects to, how much new work you want, and whether it has tests and a repeatable deploy. Razoyo’s ongoing support starts from $1,500 a month, and a larger scope costs more.
Do I need a retainer if my software is not broken? Usually, yes, because the software around yours keeps changing. Language and framework versions reach end of life, and vulnerabilities in common packages are exploited in the wild. If your software is simple and rarely changes, booking a few days of work when updates are due can be enough.
How do I keep a retainer from turning into a blank check? Make three things conditions of the agreement: every piece of work is estimated and approved by you before it starts, the team stops at the monthly budget and asks before going over, and you have access to the board where the work is planned.
What is the difference between a retainer and a bank of hours? A bank of hours is one way to price a retainer: a fixed number of hours a month, used or lost. Other models are a flat monthly fee with approved items, a dedicated developer, or on-demand billing per task or day.
Can I cancel a software maintenance retainer? You should be able to, on a notice period measured in weeks. Razoyo’s retainers run month to month, with 30 days’ notice to stop and 15 to change the budget, and once fees are paid you own the code we write for you.
Should the same team that built my software maintain it? Often, because they already understand it, which saves the cost of a new team learning the code. That is only true if they pass the same checks as anyone else: approval before work, a visible board, reviewed changes, and easy exit terms.
If you are comparing retainer proposals, or you already pay for one and are not sure what it buys, that is a free 30 minute conversation. Bring the proposal or the last invoice. We will run the Seven-Line Retainer Check on it with you, tell you which lines fail and what to ask for, and if the software is simple enough that you do not need a retainer at all, we will tell you that too. Schedule Free Consultation.
Paul Byrne is President of Razoyo, a software engineering firm in The Colony, Texas taking prototypes and constrained systems into production since 2011.
These links open AI platforms with pre-written prompts about this page.
We use cookies to improve your experience. Do you accept?
To find out more about the types of cookies, as well as who sends them on our website, please visit our cookie policy and privacy policy.