Discovery
The problem in your team's words, the constraints (stack, infrastructure, security), the success criteria. A short written brief comes back from this — what we're building and what we're not.
React, Python, WordPress, API integrations. The marketing-engineering hybrid that ships what consultants usually only recommend. Built into your codebase, documented for your team, designed to outlive the engagement.
Marketing engineering work tends to follow recognisable shapes. The pattern that signals this is the right engagement:
Every engagement produces the same five artefacts so the work is maintainable after handover, not a one-person dependency.
The problem, the chosen architecture, the trade-offs taken. Written before the build so we agree what good looks like, not after when scope has drifted.
In your repository, following your conventions, integrated with your CI. Reviewed and merged like any other change to your codebase — no parallel branch that quietly diverges.
Unit and integration coverage proportional to the surface area. Tests are the documentation that doesn't lie about what the system actually does.
Architecture overview, key decisions, operational runbook, how to extend, how to debug. Written for the engineer who inherits it six months from now without context.
A walkthrough session with the team that will own the code, plus availability for the first month if something breaks or needs a small extension.
Four phases. Elapsed time depends entirely on scope — small integrations land in a week or two, larger builds take longer.
The problem in your team's words, the constraints (stack, infrastructure, security), the success criteria. A short written brief comes back from this — what we're building and what we're not.
The technical specification: architecture, data shapes, integration contracts, the trade-offs taken. Reviewed by your dev team before any code lands.
Production-shaped code, in your repo, reviewed as it goes. Tests alongside the implementation. No surprise reveal at the end of the phase.
Deploy, documentation, walkthrough with the team that will own it. First-month support window opens.
Marketing engineering work sits at the intersection of three teams — the engagement is shaped to be additive to all of them.
Architecture decisions are reviewed by your engineering leads. PRs go through the same review process as in-house work. I write code your team will read — and inherit cleanly when the engagement ends.
The people who'll use the thing define what "done" means. Discovery is shaped so marketing's needs translate into engineering decisions without lossy hand-offs.
Smaller builds can run on managed infrastructure your team can operate without a dedicated developer — runbook-driven, with a maintenance shape that fits the team you actually have.
Async progress updates, one scheduled mid-build sync, the rest documented as it happens. PRs and design docs are the artefacts — meetings are the exception.
This service moves the thing most marketing teams find hardest: turning the roadmap into shipped code without waiting for a product engineering team that has its own priorities.
The compounding effect is real. Each shipped piece — the schema rollout, the integration, the internal tool, the headless front-end — unlocks the marketing work that depends on it. The audit you ran six months ago becomes implemented infrastructure rather than a PDF that's still waiting for a sprint.
If yours isn't here, drop a line — I'll answer directly and add it.
Primary: React / Next.js on the front end, Python (FastAPI, Django) and PHP on the back end, WordPress at custom-template depth, n8n for automation flows. Integrations across most major CMS, CRM and analytics platforms. For stacks I haven’t shipped recently (Rails, Java, .NET) the engagement either looks different or isn’t the right fit — happy to say so up front.
From your codebase. The point of this service is that the work lives where the rest of your code lives — same repo, same review process, same conventions. A parallel build that gets merged at the end is the recipe for code that quietly rots.
The build is designed so your team can own it without me — that’s why the spec, tests and documentation are part of the deliverable. The first-month support window covers anything that breaks immediately or needs a small extension. If you want ongoing engineering capacity beyond that, a small retainer is possible — typically a day or two per month for specific projects.
Yes. Linting rules, test conventions, naming patterns, commit-message style — I match what your team already uses. The discovery phase covers this so there are no surprises at PR review time.
That’s the strongest version of this engagement. Most front-end agencies don’t bring technical SEO depth; most SEO consultants can’t ship code. The combination — structural SEO discipline baked into the front-end build from the start — is where the work compounds the hardest.
Small integrations: one to two weeks. Internal tools and mid-size builds: three to eight weeks. Larger applications (headless front-ends, multi-system integrations): two to four months. The discovery phase produces an honest estimate before commitment.
Yes, within reason — usually deploying into infrastructure you already use rather than introducing new platforms. If the project genuinely needs new infrastructure (Cloudflare Workers, AWS Lambda, a managed Postgres) that’s part of the spec and the documentation.
Get in touch with a short description — what you're trying to ship, what's currently blocking it, the stack you work in. I'll come back within 24 hours with whether this is the right engagement and what the next step looks like.
Choose which categories you allow. Essential cookies are always on because the site won't work without them. You can change this any time from the "Cookie preferences" link in the footer.
Required for the site to function — navigation, form submission, security.
Anonymous usage data via Google Analytics 4 — pages viewed, time on site, traffic source. Used to improve the site.
Cookies that enable ad measurement and remarketing. Off by default; only relevant if Google Ads or similar campaigns are running.
Used to remember preferences like language or display mode across visits.