Think of new software like a new building. The day you move in, everything is fresh. A year later, locks need changing, the boiler needs a service and someone has to deal with the leak in the roof. Software is the same, except the weather comes from browser updates, new phone operating systems, security threats and your own changing needs.
A maintenance contract is the agreement that decides who looks after all of that, how fast, and on what terms. Here is what a good one should spell out.
Define the scope in plain language
The most important section answers a simple question: what counts as maintenance? Most agreements split work into a few buckets:
- Corrective work: fixing bugs and errors in features that already exist.
- Adaptive work: keeping the software compatible with new versions of browsers, operating systems, frameworks and third-party services.
- Preventive work: updating libraries, patching security holes and tidying code before it causes trouble.
- Perfective work: small improvements and tweaks requested by you.
Be clear about where maintenance ends and new development begins. Adding a whole new module is usually a separate project, and the contract should say so to avoid arguments later.
Response and resolution times
Not every problem is equally urgent. A checkout that will not take payments is an emergency. A typo on the About page is not. Good contracts define priority levels and attach a target response time to each. For example, a critical issue might get attention the same working day, while a minor cosmetic fix waits for the next planned update.
Note the difference between *response* (someone acknowledges and starts looking) and *resolution* (the problem is fixed). Ask for both to be described, and check which hours and time zones apply.
Security and updates
Security should never be optional. The contract should state who is responsible for:
- Applying security patches to the framework, plugins and server software.
- Monitoring for suspicious activity or known vulnerabilities.
- Renewing certificates and keeping domains active.
- Responding if a breach happens, including who notifies whom.
If your software stores personal data, check that the maintenance terms support your obligations under the privacy laws that apply to you.
Hosting, backups and monitoring
Sometimes the developer also manages hosting, sometimes they do not. Either way, write it down. Who pays the hosting bill? Who takes backups, how often, and where are they stored? Who gets alerted if the site goes down at night? Has anyone ever actually tested a restore? If hosting is part of the deal, our cloud hosting page explains the kind of things that are worth covering.
How work is charged
Avoid inventing numbers until you understand the pricing model. Common approaches include a fixed monthly retainer with a set number of hours, a pay-as-you-go hourly arrangement, or a hybrid. Ask what happens to unused hours, how extra work is approved, and how much notice is needed before rates change. What drives cost is mostly the size of the system, how many integrations it has, how critical uptime is and how quickly you need responses.
Reporting and communication
You should not have to guess what has been done. A sensible contract includes a regular summary of updates applied, issues fixed and anything the team is worried about. Name a main contact on both sides and agree how issues are raised, whether through a ticket system, email or a shared channel.
Ownership and exit terms
Finally, plan for the day you might part ways. The agreement should confirm that you own the code and data, that you can get full access to repositories and hosting accounts, and that a reasonable handover will happen if either side ends the contract. Notice periods should be fair and clearly stated.
FAQ
Do small websites really need a maintenance contract?
Even a simple site runs on software that receives updates and security fixes. Without someone responsible for them, small problems pile up quietly until something breaks or gets hacked.
Can I switch maintenance providers later?
Yes, provided you hold the access credentials, source code and documentation. That is why ownership and handover clauses matter so much.
Is maintenance the same as support?
Not exactly. Support usually means helping users with questions, while maintenance means keeping the software itself healthy. Many contracts include both, but it is worth checking.
Next step
Export Apps offers ongoing care for websites and apps we build, and we are happy to explain how a maintenance plan could work for you. Contact us for a friendly conversation.