Contact

Planned capacity

Keep the client work moving when your bench is full

A portfolio that has to be maintained every month, a build that needs a second senior for a quarter, a roadmap nobody is free to run. Booked ahead, on your tooling, under your name.

Two US agencies already work with me this way. Both will act as references.

When agencies book capacity ahead

The portfolio that has to be maintained every month.

Security windows that do not move, core and contrib updates across a dozen sites, and small client requests that each take an hour and together take a week.

The build that needs a second senior for a quarter.

The scope is known and the deadline is real. What is missing is one more person who does not need the architecture explained to them first.

The roadmap nobody is free to run.

The structural work everyone agrees on: the migration, the design-system alignment, the integration. It keeps losing to whatever escalated on Friday.

The hire you cannot justify yet.

Not enough Drupal to warrant a full-time senior, too much to keep absorbing between other projects. This is the shape that fits between those two.

How white-label subcontracting actually works, and what I need from your team to keep it invisible

None of these are emergencies, which is exactly what makes them easy to postpone until they are. Booked capacity is how the postponement stops being free.

The hours are the cheap part

Senior Drupal hours are available everywhere, at every price. What is not available everywhere is the same person still knowing the estate eighteen months from now: which module is custom because contrib did not exist yet, which one is custom because somebody preferred it, and which client request is really a request to change the workflow.

A rotating bench pays for that knowledge again every time it rotates, and the invoice never shows it, because it arrives as slow tickets rather than as a line item. Retained capacity amortises it instead. That is the whole economic argument, and it is the reason I would rather be booked than called.

What I write down is yours: runbooks, upgrade notes, the reasoning behind a decision that will look arbitrary in a year.

Kept in your repository, in your language, so the arrangement survives me being unavailable.

A retainer that produces no written trace is a dependency, not a service.

Three shapes, and what each one is actually for

Choose by how well you can predict the month, not by size.
ShapeFits whenYou commitI commit
Scoped project The deliverable is known and can be written down before it starts. A fixed price, quoted after a paid audit. The deliverable at that price, and the audit that priced it.
Monthly retainer The work recurs, and the risk is nobody being free when it lands. A monthly amount, one month’s notice either way. Guaranteed availability inside the month, and continuity across it.
Prepaid hours You want to find out how this works before committing to it. A block of time, drawn down as needed. One site, hourly, no minimum. The lowest-commitment way in.

Most agencies start on prepaid hours and move to a retainer once the estate stops surprising anyone. That order is deliberate. A retainer signed before either of us knows the estate is a number pulled out of the air, and it is usually wrong in the direction that makes someone quietly resent it.

Rates are quoted per engagement and not published.

How a booking starts

  1. You send the estate, or the scope, and what a normal month looks like. I tell you what I would take first, no charge and no pitch.
  2. If the estate is inherited, the written audit comes first and is paid. If it is your own build, it is skipped.
  3. We pick the shape: scoped, retained, or prepaid. The first two are easier to get right in that order.
  4. I work in your tracker, on your branch, to your review. White-label or co-branded, and that is your call, not mine.

What the first week on an inherited Drupal estate actually looks like

What this has already produced

Eleven sites, maintained continuously for a US agency.

Six distinct business models rather than one template repeated: single sign-on, ticketing, tenant workflows, public procurement, a certification body, a 3,000-product catalogue. Drupal 10 and 11. This is the retained shape, running for years.

Five core upgrades across the portfolio. No day lost, nothing broken.

Embedded senior support on a US public research university’s estate.

Seven sites, an in-house design system, a central web team. Custom modules, theming, migrations and integrations, alongside people who were already there. Capacity inside a team rather than a parcel of work handed over the wall.

3,431 contrast failures closed across 1,587 pages, plus 142 broken ARIA menus and references.

A festival platform, maintained since 2018.

Cinequest Film Festival - cinequest.org and picturethepossibilities.org. Donor and passholder webforms, festival passes and ticketing, sponsor management, and the traffic peaks a festival calendar brings, every year rather than once.

The festival launch shipped on its date.

“Johan was able to make up the time to get us back on schedule. He provides excellent status and understood the updates/changes to get the project to align with the goals.”

Halfdan Hussey, Cinequest Inc.

On drupal.org since 2007: drupal.org/u/joflizn

Tell me what the month looks like

How many sites, roughly how many hours, and what keeps slipping. You get back what I would take first and in what shape, at no charge. If a retainer is not what you need, I will say so before quoting one.

johan@johanweb.net

I answer within one business day. UTC+3, so your morning is my afternoon.