The portfolio we run ourselves
Client work is confidential; this isn't. These are nine live properties we own — two products and seven publications — built, shipped and operated by us on exactly the platform we build for clients. Same cluster, same pipeline, same standards. When we tell you how we'd run your infrastructure, this is the version of that answer you can open in a browser.
Products
Applications we built and operate end to end — not marketing pages with a waiting list behind them.
Ticketize.it
ticketize.itTicket synchronisation between issue trackers. The product runs as its own service — API, worker, scheduler and a managed Postgres cluster — deployed separately from the marketing site in its own namespace, so a bad site deploy cannot reach the application.
SSH Keys
sshkeys.ioA verified public directory of SSH keys, written in Go. One binary serves both the application and its own marketing pages, reached through a Cloudflare Tunnel rather than a public load balancer.
Publications
Seven independent sites, each with its own subject, voice and editorial rules. They share our infrastructure and nothing else.
AWS Labs
aws-labs.comCloud engineering write-ups and daily curated commentary on what AWS and the wider industry shipped. The archive was migrated wholesale off WordPress into static pages — the same lift we do for clients who want their CMS bill to stop.
Chaos Monkey
chaos-monkey.comChaos engineering and operational resilience: field notes on how production actually breaks, plus a twice-weekly analysis section built from published postmortems and engineering documentation.
Chaotic Monkey
chaotic-monkey.comInfrastructure writing in a comic register, under one house rule: the titles are jokes, the claims are not. No invented outages, no fictional postmortems, and no number presented as our own measurement.
DC Link
dclink.ioPC gaming and hardware, with a long-form section that exists to examine received wisdom — each piece starts from a specific claim that is wrong, incomplete, or true only under conditions nobody states.
Buy VPN
buyvpn.orgNetwork privacy writing on a terminal-styled theme. It carries no affiliate links and ranks no products — a constraint enforced in code, because the subject pulls almost everything written about it toward a buyer's guide.
Casual Cooking
casual-cooking.comHome cooking: hand-written recipes with structured data that matches the visible page, alongside a technique section written from published food science and sourced on every piece.
Casual Chef
casual-chef.comHand-written recipes on a drawn-ink design, plus a section on single ingredients worth their shelf space and the real dishes they go into. Every page is generated from one source of truth, illustrations included.
How all of it is actually run
One cluster, one pipeline, nineteen isolated deployments. This is the reference implementation of what we sell.
Isolated by default
Every site is its own Kubernetes Deployment with its own image, its own Service and its own pods. A crash, a memory leak or a bad release on one property cannot touch another — the blast radius is one site, by construction rather than by hope.
Deploys nobody has to watch
Push to main and CI builds every affected image and releases it. Rollouts keep an instance serving throughout, and a failed release rolls itself back rather than leaving half-applied state. There is no deploy window and no maintenance page.
Certificates and DNS nobody renews
TLS is issued and rotated automatically per property, and DNS records are created from the cluster's own state. No calendar reminder, no expired-certificate outage, no console clicking to add a domain.
Hardened, not just working
Containers run as a non-root user with privilege escalation disabled, secrets are injected from the cluster and never live in the repository, and every response carries a content security policy. The default posture is the secure one.
Where AI writes, and where it doesn't
The same discipline we apply to AI in client delivery, applied to our own publishing — and stated plainly rather than hidden.
Drafts are machine-generated
Several of the publications above carry a section drafted twice a week by an automated pipeline running against our own self-hosted model, working from a hand-written topic queue and a list of sources verified by a person in advance.
A quality gate runs before a human sees it
Each draft has to pass rules enforced in code before it is allowed as far as review: no copying from a source, no claims of first-hand experience the pipeline has not had, no numbers stated as measurement without attribution. A draft that fails is discarded, and publishing nothing that day is an acceptable outcome.
Nothing publishes unreviewed
Every accepted draft opens a merge request and waits out a review window before it can go live, and each of those sections says on the page that it is written from published sources rather than from first-hand testing. Automation sets the pace; it does not get the last word.
The same guardrails we run here — scoped access for AI tooling, review gates on AI-written changes, monitoring for AI-driven anomalies — are what we put around AI in client infrastructure. More on how we use AI →
Want this shape of platform on your infrastructure?
A free audit: we look at what you have, tell you what we'd do first, and you decide if the model fits.
Book a Free Audit