Field notes

Real-world project retrospectives. Architecture decisions, trade-offs, lessons learned.

GitHub Actions pipeline: lint, Trivy scan, Docker build to GHCR, SSH deploy to a VPS
6 min read

A homemade CI/CD pipeline with GitHub Actions

How to deploy an app to your VPS automatically with GitHub Actions: lint, a blocking Trivy scan, Docker build to a private registry, SSH deploy, and PR checks before merge.

Lire
An AI assistant operates a WordPress site through a bridge with guardrails
7 min read

Running a WordPress site with an AI, without breaking everything

How to let an AI operate a real WordPress site (pages, Divi, SEO, media) safely: access scope, backup before writes, human validation, and what it actually does well.

Lire
Self-hosted Next.js deployment diagram on a VPS (Docker, GHCR, reverse proxy)
6 min read

Leaving Vercel: hosting your Next.js app on a VPS

Moving off a managed platform to host your Next.js app on a VPS: standalone Docker image, private registry, reverse proxy with automatic SSL and a homemade deploy pipeline.

Lire
An AI orchestrator delegating to specialised agents and checking their output
7 min read

Bringing AI agents into your development workflow

Field notes on using specialised AI agents to produce code, content and audits: what works, what breaks, and why structure matters more than the model.

Lire
Diagram: a green build hiding a silent 404 in production
6 min read

Next.js 16 in production: the traps no tutorial shows you

A field report on four Next.js 16 traps in self-hosted deploys, the sneakiest being a build that goes green yet serves a page as a 404 in production.

Lire
React Native versus PWA compared against the decision criteria for a business app
7 min read

React Native or PWA: how to choose for a business app

No absolute winner between React Native and PWA, just a few criteria that settle it fast per project: hardware access, offline operation, distribution and cost.

Lire
Diagram of a contact form's defence layers, from the client to the send
7 min read

Securing a contact form: what most people forget

A contact form is a public endpoint, so it's a target. The server-side defences worth stacking, and the story of a test bypass left running in production.

Lire
Headless architecture: Strapi and PostgreSQL serving two Next.js frontends through an API
6 min read

Strapi and Next.js: a headless architecture that holds up

Field notes on a decoupled Strapi plus Next.js setup (public site and admin interface): the real benefits, the trade-offs, and when headless isn't worth it.

Lire
Architecture diagram: offline-first ML system in React Native
7 min read

Shipping an offline-first ML model: architecture and lessons learned

Architecture of a React Native app that embeds a LightGBM/ONNX model offline-first: pure-JS preprocessing, differential calibration, asynchronous inference on a native thread.

Lire