What a Retainer covers
A Retainer is a standing relationship, billed monthly, where we're available for a defined number of hours per month and a defined kind of work. The work falls into four categories:
Maintenance
Systems we built — or that we know well from prior engagements — sometimes need attention. APIs deprecate. Apps update in ways that break integrations. Edge cases emerge that the original implementation didn't anticipate. A Retainer means we're the first call when this happens, with full context on the system already loaded.
Small builds
Operational businesses generate steady demand for small pieces of new infrastructure. A new sales channel needs a connection. A new metric needs to land in the report. A new workflow needs an automation. Each of these is too small to scope as a standalone Build but too important to leave to whoever happens to have time. We handle them as they come up, billed against the monthly hours.
Stack advisory
The Shopify app ecosystem is enormous and full of tools that look useful but don't survive contact with a real operational stack. Before you install a new app or sign a new SaaS contract, we can vet it: is it solving a real problem, does it integrate cleanly with what you already have, what's the failure mode if it goes away. This is the most underrated part of a Retainer. The number of bad app installations we've prevented is in the dozens.
Operator advisory
Sometimes your ops lead just needs to think out loud with someone who's seen this problem at twenty other businesses. We're available for that — short calls, async questions, second opinions on architecture decisions. This is the most informal part of the Retainer and often the most valued.
How it's structured
Retainers run on quarterly commitments, auto-renewing unless either side cancels. We start with a one-month trial period to make sure the cadence and chemistry work, then formalize into the quarterly structure.
You commit to a monthly hour block — typically between ten and thirty hours per month, depending on the size and complexity of your operation. We track time transparently and report monthly. Hours don't roll over (this keeps the Retainer feeling like access to ongoing capacity rather than a stockpile to draw down), but you'll never be cut off mid-task because you ran out — we'll always finish what's in flight and we'll tell you when we're approaching the limit.
Communication runs through a shared Slack channel, with a 30-minute call quarterly to step back, review what's happened, and re-plan.
What it's not
It's not a hosting or managed-services arrangement. We don't run your infrastructure. We don't sit on PagerDuty for your systems. We're available during normal business hours for normal-business-hours work.
It's not unlimited access. The hours are real and the boundary matters. If your operational reality genuinely demands a full-time systems engineer, that's not a Retainer — that's a hire.
It's not a renewal trick. Most agencies sell ongoing relationships because they're recurring revenue. We sell Retainers because most of the businesses we've worked with intensively for two to three months don't actually want to lose access to us afterward, and a Retainer is the honest shape of that relationship.
Who this is for
Almost always: clients who've already worked with us through an Audit and a Build, and who want to keep the relationship live. These conversions happen naturally — usually in the last week of a Build engagement, when the client realizes the operational reality of their business isn't going to stop changing.
Occasionally: new clients who already know what they need. They've been a CTO before, they've worked with operational engineering teams before, and they know they want a retained partner more than they want a transactional one.
Rarely: clients who haven't done any prior engagement with us. We generally want at least one Audit or Build under our belt before formalizing a Retainer, so both sides know what we're committing to.