Retainers / Development Hours
A senior engineer who already knows your codebase.
The expensive part of ecommerce development is rarely the code. It is the three weeks a new contractor spends learning your theme, your apps and your data model before writing anything useful — repeated every time you hire one. A development retainer keeps that context in the same head month after month, which is why the fourth month is always cheaper than the first.
- What it is
- A monthly block of senior Shopify engineering hours with a named developer who holds the context on your store — features, integrations, roadmap work and the fixes that never quite justify a project.
- Who it's for
- Brands with a roadmap but no in-house engineer, or with one who is at capacity. Also brands who have been burned by cycling through contractors who each restart the learning curve.
- How hours work
- An agreed block each month, prioritised by you on a rolling basis. Unused hours roll over one month so a quiet month is not wasted. We flag it early if a request will exceed the block.
- Typical work
- Feature builds · third-party integrations · checkout extensibility and Shopify Functions · performance work · custom app changes · the backlog that keeps getting deferred.
- Who does it
- A named senior engineer, US-based, not a rotating pool and not an offshore team. The person who answers is the person who wrote it.
- Investment
- From $4,000 per month for 20 hours, down to an effective $175/hour at higher volumes. Three-month initial term, then rolling monthly.
- What it is not
- Not a body shop and not unlimited work. If a request is really a project, we scope it as one rather than quietly consuming six months of your hours.
The economics
Against a hire, this is not a close comparison.
The honest case for a retainer is not that engineers are cheap. It is that most brands need senior engineering intermittently, and a salary is not an intermittent cost.
| Option | Monthly cost | What you actually get | Risk |
|---|---|---|---|
| In-house mid-level | $9,750–$16,000 fully loaded, US market |
One person, 160 hours, one skill set. Salary, benefits, payroll tax, equipment, management overhead. | Fixed cost whether or not there is work. Key-person risk. Two to four months to hire. |
| Contractor per project | Variable often higher per hour |
Hours when you need them, but context resets with every engagement. | Two to three weeks of ramp-up billed each time. No continuity, no ownership of the codebase. |
| Development retainer | $4,000–$14,000 20–80 hours |
A named senior engineer holding your context, plus the team behind them for specialist work. | Scales down as easily as up. 30 days' notice after the initial term. |
In-house figures are typical fully loaded US market costs for a mid-level Shopify developer — salary plus benefits, payroll tax, equipment and management overhead — and vary widely by location. Use them as an order-of-magnitude comparison, not a quote.
Hours
Three blocks. Roll over one month.
Pick the block that matches your roadmap, not your best month. Moving up mid-term is easy; we would rather you started lower.
| Block | Hours / month | Effective rate | Suits |
|---|---|---|---|
| Standard | 20 hours | $200 / hr | A steady backlog and small features. One meaningful piece of work per month plus fixes. |
| Extended | 40 hours | $187 / hr | An active roadmap. Multiple features per month, or one substantial integration. |
| Embedded | 80 hours | $175 / hr | Effectively a half-time senior engineer on your team, with the agency behind them. |
What hours go on
Usually the work that never justifies a project.
Feature builds
Bundles, gifting, subscription changes, store locators, quiz flows — the merchandising ideas that sit in a backlog because none is big enough to scope alone.
Integrations
ERP, POS, warehouse, booking and finance systems connected properly, with retry, error handling and alerting rather than a script that fails silently.
Checkout & Functions
Discount logic, delivery customisation, payment gating and checkout UI extensions built on the supported APIs instead of legacy script hacks.
Custom app changes
Ongoing work on a private or public app we or someone else built — new endpoints, admin surfaces, jobs and webhook handlers.
Performance work
Targeted speed work on specific templates, coordinated with the performance retainer if you have both.
The deferred backlog
The forty small things nobody has had time for, worked through steadily. This is where most retainers spend their first two months, and where clients notice the difference fastest.
How it runs
Rolling priorities, not a fixed statement of work.
Your engineer reads the codebase, maps the apps and data model, and documents what they find. That document is yours regardless of what happens next.
You rank the backlog. We estimate, flag anything that is really a project, and commit to what fits the block.
Work happens on branches with staging review before anything merges. You see it running before it ships.
What shipped, hours used, what rolls over, and what is queued. No timesheet archaeology required.
Investment
Senior engineering, by the month.
Development retainer
A named senior engineer, an agreed block of hours with one month of rollover, staging review on every change, and a monthly report of what shipped and what is queued.
Three-month initial term, then rolling monthly with 30 days' notice. Hours roll over one month and then expire. If a request is really a project we will say so and scope it separately rather than absorb your roadmap into it.
Questions we get
Straight answers.
What happens to unused hours?
They roll over for one month, then expire. Rollover exists because real roadmaps are lumpy — a quiet month followed by a heavy one is normal and you should not be penalised for it. Indefinite rollover is not offered, because it turns into a large unfunded liability that eventually gets called in all at once and served badly.
Can we use the hours on anything?
On anything within Shopify engineering and the systems around it, yes — features, integrations, app work, performance, fixes. Where we push back is when a request is really a project in disguise: a full rebuild or a large custom system will consume months of your block and get delivered worse than if it were scoped properly. We flag those and quote them separately, usually as custom build work.
Do we get the same developer every month?
Yes, that is the entire point. A named senior engineer holds your context — your theme, your apps, your data model, the reasons things are the way they are. Specialist work is brought in behind them when it needs a different skill set, but the relationship and the knowledge stay in one place.
How does this compare to hiring in-house?
A mid-level in-house Shopify developer in the US typically costs $9,750 to $16,000 a month fully loaded once salary, benefits, payroll tax, equipment and management overhead are counted, and takes two to four months to hire. A retainer starts within days, scales down as easily as up, and brings a team behind the individual. In-house wins when you genuinely have 160 hours of work every month and want the person in your standups.
What if we need more hours one month?
Tell us early and we will quote the overage or move you up a block for the month. What we will not do is silently absorb it and deliver everything a little worse, or surprise you with an invoice. If overages become the pattern, that is a signal to move up a block permanently and we will say so.
Who owns the code you write?
You do, in your repository, from the first commit. Everything is documented as it is built. If you end the retainer, the next engineer — yours or another agency's — inherits a codebase they can actually read. We do not build key-person dependencies, including on ourselves.
Next step
Find out what is actually in your backlog.
The free audit produces a prioritised technical backlog for your store — what to fix, in what order, and roughly what each will take. Yours whether or not you take the retainer.