marketingengineer.

↳ marketingengineer / outfight

The log_

Building outfight in the open — decisions, numbers and dead ends, in chronological order.

02 Jun 11, 2026 latest entry shipped

The stack, and why it’s boring on purpose

This site: Astro, deployed on Cloudflare Workers, source on GitHub. Content is MDX in the repo — no CMS, no database, nothing to maintain at 2am.

The reasoning is the same one I give clients: every moving part you add to a marketing stack is a thing that can silently break your measurement. Static pages have a near-zero failure surface, ship in milliseconds from the edge, and score perfect Core Web Vitals without heroics — which is also a ranking and GEO citation factor, so the boring choice compounds.

The one non-boring part is the front of the house: GSAP for motion, a WebGL field in the hero, bilingual EN/NL routing. Performance budget is strict — the fancy layer loads after the content, never instead of it.

Newsletter infrastructure is next. Entry 003 will have the numbers from launch week.

01 Feb 12, 2026 shipped

Why build in the open

outfight is the company: marketing engineering for brands that want their growth instrumented, not guessed. marketingengineer is the notebook next to the workbench.

The deal I’m making with myself here is simple. Every meaningful decision, experiment and faceplant gets written down — with the numbers attached. Not because transparency is a brand strategy (it is, but that’s not the point), but because writing forces the rigour that dashboards let you skip.

The rules: real numbers wherever clients allow it, ranges where they don’t. No success theatre — the dead ends get published with the wins. And every entry ships with whatever artifact it produced: a checklist, a script, a spreadsheet.

This is entry 001. The workshop is open.