Pick a fixed price for a one-off build with a clear scope, hourly billing for small or unclear tasks you cannot size yet, and a monthly developer retainer when work arrives every week, urgent issues cost you money, or a product needs one developer who already knows it. A retainer buys reserved time and priority, not a finished deliverable.
What is a developer retainer?
A developer retainer is a recurring fee, usually monthly, that reserves a developer's time and attention before you know exactly what the work will be. Tasks are decided as they come up, without a new quote for each one. A web developer retainer for a website or store works the same way. The word covers two arrangements, so ask which one you are offered:
- Prepaid hours. You buy a block of hours each month at an agreed rate, and the developer reports what was used. It is hourly billing paid in advance.
- Reserved capacity. You pay a flat fee for a share of the developer's month, a response priority and a direct line. Time may be logged for reporting, but the fee does not move with it.
How does a monthly developer retainer usually work?
A monthly developer retainer runs on a fixed billing cycle, paid in advance, with written rules for what you get and how you leave:
- Capacity. Hours, a share of the week or a description of the work covered. Without one, nobody knows when the month is full.
- Priority. Retainer clients normally go ahead of project clients. Check what counts as urgent and whether the promise is a reply time or a fix time.
- Billing cycle. Monthly is the default. Six-month and yearly cycles are often priced lower per month in return for the commitment.
- Unused time. It expires at month end, rolls over for a limited period, or rolls over up to a cap. Any of these is fair if it is written down before you pay.
- Notice and cancellation. Some agreements ask for notice, such as 30 days, or set a minimum term. Others let you cancel any time and keep the service until the end of the period you paid for. Stripe's documentation shows how billing systems handle this: a
cancel_at_period_endsetting lets a subscription run to the end of the time already paid for.
How do hourly, fixed-price and retainer billing compare?
They differ mainly in who carries the risk that the work takes longer than expected. Hourly billing puts it on you, a fixed price puts it on the developer for the agreed scope, and a retainer caps your monthly cost while also capping the developer's time.
| Question | Hourly | Fixed price | Monthly retainer |
|---|---|---|---|
| What you pay for | Time used, invoiced afterwards | An agreed result, often in milestones | Reserved time and priority, paid in advance |
| Who absorbs an overrun | You | The developer, within the scope | Neither directly: the fee is fixed, and so is the capacity |
| Budget certainty | Low until the work is done | High, until the scope changes | High, month by month |
| Urgent issues | When the developer has free time | Not covered after delivery, apart from a support period | Ahead of project clients, as agreed |
| Cost in a quiet month | Nothing | Nothing once delivered | The full fee |
| Main risk | The bill grows with every unknown | Rigid scope, change requests, a price padded for risk | Paying for capacity you do not use |
When should you choose a fixed price, hourly or a retainer?
Choose by the shape of the work, not the rate. Retainer vs project-based is mostly a question of whether the work has an end.
Fixed price: a build with a finish line
A new CRM, a WHMCS module or a payment integration has an end point you can write down. A fixed quote lets you compare offers, budget once and hold the developer to a date, as long as the scope names the screens, data, roles, integrations and exclusions. Changes become priced change requests.
Hourly: small or unclear tasks
A bug nobody has traced or an audit of inherited code cannot be sized until someone looks. Pay for the investigation, then decide. Ask for an estimate range and a cap, such as "stop and check with me at five hours".
Retainer: a steady flow of work
A retainer fits when requests arrive every week, when a broken checkout costs money by the hour, or when a live product needs the person who already knows it. The models also combine: a fixed price for the first build, then a retainer or hourly support once it is live.
Is a developer retainer cheaper than paying hourly?
A developer retainer is cheaper only if you would have bought about the same amount of work anyway. Divide the monthly fee by the developer's hourly rate to get the hours a month at which both cost the same. Then count the hours you actually used in each of the last six months, including work you postponed.
For prepaid hours the comparison is exact. For reserved capacity it is a sanity check, because part of the fee pays for priority and continuity. If you needed help in two months out of six, hourly is cheaper.
Does AI-assisted development change which model is better?
Yes, because it changes what an hour of work is worth, so compare offers by output rather than time logged. I build with AI coding agents, mainly Claude Code and Codex. In my own work, a build I planned as six months before AI agents now ships in about 7 days when it builds on my existing code, and a roadmap I once quoted as a year takes about 15 days.
That speed comes from 13+ years of base code, agents working in parallel, automated tests and my review of every change. Scope decisions, outside approvals, messy data and app store review take as long as ever. Ask any developer how agent time is billed, and judge a retainer by what it finishes each month.
What should a software development retainer agreement include?
A software development retainer agreement should say what is covered, how fast you get help, what costs extra, who owns the work and how either side leaves.
| Clause | What to write down | Why it matters |
|---|---|---|
| Scope | The systems and kinds of work covered | Settles whether a request counts |
| Capacity and unused time | Hours or a share of the week, what happens beyond it, and whether unused time expires or rolls over | Both sides know when the month is full |
| Response priority | Channels, working hours, time zone, what counts as urgent | "Fast" means different things to different people |
| Exclusions | Large new builds, hosting, licenses, AI and API usage fees | No surprise invoices |
| Ownership | Who owns code written during the retainer; repositories, domains and payment accounts in your company's name | You can change developers without losing your product |
| Access and security | Named accounts with the narrowest role, two-factor login, which AI tools may read your code, access removed on exit | Limits the damage if an account leaks |
| Reporting | A monthly summary of what was done and what is waiting | Shows whether the fee earns its keep |
| Billing and exit | Cycle, notice before a price change, notice to cancel, refunds, handover notes | A clean exit protects both sides |
On access, give the developer their own login, never yours. On GitHub, an outside collaborator is a person who is not a member of your organization but can work in the repositories you choose, at a level of access you set for each. Stripe's user roles include a Developer role that can manage API keys but cannot invite team members or change the account owner.
What are the red flags in a developer retainer offer?
The red flags are gaps in writing, because anything left to goodwill gets argued about later.
- No written answer to what happens when requests exceed what one person can do in a month.
- A long minimum term with no way out if the work stops being good.
- Unused hours that disappear without anyone telling you they would.
- "Fast" support with no channel, hours or definition of urgent.
- Your domain, hosting, repository or payment accounts in the developer's name.
- A retainer pushed on you when your need is plainly one project.
When is a retainer the wrong choice?
A retainer is the wrong choice when your work comes in one burst and then stops. It will not make a one-off build cheaper, and it will not replace a team when you need several specialists working full weeks. It will not fix unclear priorities: if nobody on your side decides what matters, reserved time goes to whatever is loudest. Nor is it uptime insurance; a developer on retainer responds sooner but cannot promise nothing breaks. If you need several specialists at once, read web design agency vs freelancer.
How can you hire me: hourly, fixed price or The Year With Me?
This section is my own offer, so read it knowing that I am selling. I work all three ways.
- Hourly: $55 to $65 per hour, for investigations, audits and tasks nobody can size yet. What a WHMCS developer costs shows how I size a job in hours.
- Fixed price: a written quote per scope, within one business day of a free call of about 30 minutes. The custom CRM in 7 days is one fixed scope, with the balance paid after your acceptance checklist passes. WHMCS modules are quoted the same way when you hire a WHMCS developer. See how I work.
- Retainer: The Year With Me has three tiers: On Retainer at $799 a month, Embedded at $999 a month and Reserved at $1,599 a month. You pay monthly, every six months or yearly, and the longer cycles cost less per month. Urgent work goes to the front of my queue on every tier; Embedded adds WhatsApp priority, and Reserved adds a direct phone line and help on evenings and weekends within reason. Seats are limited. You can cancel any time, and the service continues to the end of the period you paid for.
If your work is one project, I will quote it as one project.
Last reviewed 15 October 2026. Disclosure: I sell all three arrangements described here, including the monthly developer retainer The Year With Me, so I am not neutral. I build with Claude Code and Codex, but I am not affiliated with Anthropic or OpenAI. I am also CTO at ElySpace, founder of MagizAI and WHMCSPilot, and a freelance developer for Marmaids LLC.