How we work

No discovery theatre. Just briefs in, estimates back, things shipped.

Our process is shaped by 20+ years of running a small studio for agencies that don't have time to manage another vendor. It's deliberately boring. Predictable response times, fixed-hours quotes, async-first communication, two-stage QA. Below, in the order it actually happens.

Principles

Four operating defaults. They don't bend per-project.

PRINCIPLE 01

Fixed-hours, not open-ended

Every engagement starts with an hour estimate against a defined scope. We eat small misjudgements; new asks get re-estimated before they start. No silent overruns, no surprise invoices, no T&M roulette.

PRINCIPLE 02

Async by default

Most communication runs through your project tool — written, traceable, replyable on your schedule. Realtime is for active fix-loops and final QA, not for status updates. Saves everyone hours per week.

PRINCIPLE 03

Two-stage QA, always

Pre-handoff QA on our side via Site Checker (our own WP plugin). Post-handoff QA on your side. Fix loops until you sign off. The backlog stays public; nothing lands silently.

PRINCIPLE 04

One point of contact

You talk to one person — me. The dev team works behind that. Your client never hears our names. NDA when the partner agency requires it — signed before any access is shared.

A typical engagement

From brief to ship, in five concurrent phases.

Phases overlap — QA opens new backlog items as earlier ones close, client changes integrate without pausing development. The calendar reflects overlapping passes, not sequential gates.

PHASE 01

Brief & estimate

~24 HOURSBefore any work begins

You send the Figma, the scope, target timeline. We sign NDA if needed, ask 3–5 sharp questions, return a fixed-hours estimate and a delivery date. No discovery call.

  • NDA signed (white-label)≤ 2h
  • Clarifying questions1 round
  • Hour estimate + dateFree
  • Decision on your sideAsync
PHASE 02

Initial build

~50% OF CALENDARPage-by-page

Agency provides staging access within days; page-by-page implementation against the Figma begins. Daily updates in your project tool. We flag any design ambiguity before we guess at it.

  • Staging accessAgency’s environment
  • Daily progress updatesAsync
  • Component library mappedPer-Figma
  • Design ambiguity flaggedBefore guessing
PHASE 03

QA iterations

~30% OF CALENDARConcurrent with build

Issues backlog opens as you review. We fix in rounds, not in a single late pass. Each round covers the pages touched by that round's adjustments. Backlog closes only when you sign off.

  • Issues trackedYour tool
  • Cross-browser passPer round
  • Mobile / tablet QAPer round
  • Backlog closureSign-off only
PHASE 04

Pre-handoff gate

~5% OF CALENDAROur side

Site Checker runs across core settings, content / SEO surface, URL structure, content-language sanitization, menus and widgets, and multi-resolution screenshots. Fail-zero gate before we hand off.

  • Site Checker scanFail-zero
  • Cross-resolution screenshotsAuto-captured
  • Redirect map verifiedIf migration
  • Forms tested in production-likeLive SMTP
PHASE 05

Staging handoff

FINAL DAYAgency takes over

The completed build is handed back to the agency on the staging environment they provided. Site Checker report, launch checklist, content-parity record, and the QA paper trail go with the handoff. The agency owns the cutover call: production deploy, DNS, SSL, Search Console resubmission, post-launch verification on the live domain.

  • Build handoffOn agency staging
  • QA paper trailSite Checker + checklist
  • Production deployOwned by agency
  • Post-launch on liveAgency / SEO layer
Site Checker

The QA gate we built so you don't have to be the only check.

Most freelance handoffs land on the agency's QA team with mistakes that should never have made it past the dev. After enough of those, we built a WordPress plugin that runs deterministic checks before anything is handed off.

Site Checker scans every page on staging, flags broken links, missing alt text, sanitization issues across post content, Elementor data, menus, widgets, taxonomies, and ACF; runs a multi-resolution screenshot pass; produces a single report. Anything red is fixed before you see the build.

It's a fail-zero gate. Warnings are reviewed and judged non-blocking by the team, but no critical issue ever lands on your QA team.

— Site Checker scope

What runs before any handoff

  • Core WP settings audit
  • Content / SEO surface (titles, meta, schema)
  • URL structure + redirect map
  • Content-language sanitization
  • Elementor data sanitization
  • Menus, widgets, taxonomies
  • Cross-resolution screenshot capture
  • Image alt-text coverage
  • Broken-link scan
What we promise

Four commitments. The same on every engagement.

01
Response within 24 hours, on weekdays
For new briefs, questions, or any work you've raised. Faster on active fix-loops — usually within hours. Holidays and weekends communicated upfront, not after the fact.
02
No silent overruns
If we're going to need more hours than estimated, we tell you before the budget is gone — with the reason and the new estimate. You decide if we proceed.
03
Zero client-facing visibility
On white-label engagements: we never speak to your client, never appear on email threads, never show up in CMS author fields. NDA signed before any access shared.
04
Per-client overrides, never shared-component drift
If you've invested in a branded template system, we customise it without modifying the shared components. Your portfolio stays consistent across the rest of your client base.
What we use

Your tools, mostly. Plus a few of our own.

Project management

Whatever you use

Our default toolset is Asana and Redmine — if you use a different PM tool, we'll plug into it. We do bring our own internal Redmine for backend tracking.

Communication

Where your team already is

Slack and Rocket.Chat are our defaults — we can spin up a shared channel or join yours. Email is fine for low-frequency engagements. If your team uses a different chat tool, we'll plug into it.

Version control

Git, everywhere

GitHub, GitLab, Bitbucket, your private GitLab — all fine. We commit early and often. PR review on your side if you want it; merge access only if you grant it.

QA

Site Checker + your tool

Site Checker (ours, WP plugin) runs the pre-handoff gate. Your post-handoff QA tool — Lighthouse, BrowserStack, manual review — is what we work to.

Hosting

Yours, agency-side

For WordPress: WP Engine, Kinsta, or whatever hosting your agency has standardised on — we work in your environment, not ours. For non-WP / custom-app deploys, our infrastructure team works across Hetzner, DigitalOcean, AWS, and your in-house infra (separate scoping).

Design handoff

Figma, primary

Sketch, Adobe XD, Penpot, even Photoshop or PDF if that's all you have. We build to whatever artifact you give us as the source of truth.

How case studies are produced

Real client data. AI-assisted drafts. Human editorial review.

Every case study on this site starts from primary source material — Redmine project exports, Rocket.Chat task threads, Google Sheets workbooks, and the live production URL when accessible. An AI drafting agent works from that data under explicit editorial guards that prevent fabrication, overgeneralisation, and cross-project contamination. The draft then clears a 48-check automated verification pass before a human editorial pass by the studio principal. Only then does it publish.

  1. Source ingestion. Real client data from 112 Redmine project exports, 1,438 Rocket.Chat task chats, and per-project Google Sheets workbooks. Six projects are excluded where anonymisation was not possible.
  2. Triage and classification. Each project enters a structured matrix — tier (a / b / skip), type (rebuild / build / templated / refresh / redesign), and industry — before any draft is started.
  3. AI-assisted drafting under guards. A prompt-governed subagent produces the draft. Five explicit guards enforce source-only claims, ban chat verbatim, block cross-industry framing, and require at least one stated limitation and one decision-rationale sentence per draft.
  4. Automated verification (48 checks). A deterministic script checks signal coherence, anchor-text consistency, type classification, YAML structure, word count, and factual referenceability. All checks must pass before human review begins.
  5. Human editorial review. Anton Hersun reads every draft, runs a fix-and-reverify loop for any issues, and signs off. Wave 2.3 corpus closure completed 2026-05-03 — all 107 active drafts in the published corpus are verified clean.
  6. Idempotent publish. An importer script checks a content hash before touching any existing post; only changed content creates a new revision. Atomic state writeback records the WordPress post ID and import timestamp per project.
  7. Ongoing maintenance. Source data is re-checked before any re-import. Theme and importer changes go through a two-stage code review — spec compliance first, then cross-cutting quality — before any batch publish run.
Editorial review by Anton Hersun, studio principal. Last reviewed:

Process clear? Send a brief.

The estimate is free, the NDA is on request, the questions are sharp. Within 24 hours you'll know the hours, the date, and exactly what we'll ship.

Start a conversation
Scroll to Top