A free, Acorn-style block framework for Sage (no ACF Pro)
How we got acf-composer’s developer experience — define a block as a PHP class, scaffold it with a command — without paying for ACF Pro.
Notes on the bespoke bits of rootstest.de — the parts that don't come out of the box. Each post walks through one custom piece of the stack, written as a build note: what the problem was, why the usual approach fell short, and how it was solved.
So far that covers the free, Acorn-style block framework for Sage; first-party Umami analytics served through an nginx proxy so privacy blockers don't drop them; transactional email routed through Amazon SES with aligned DKIM and DMARC and no MX record; nightly MySQL backups streamed to S3 with lifecycle tiering; and the Terraform-and-Trellis pipeline that provisions the AWS infrastructure and ships every release with zero downtime. It's all one Bedrock, Trellis, and Sage 11 codebase, reproducible from a single repository.
How we got acf-composer’s developer experience — define a block as a PHP class, scaffold it with a command — without paying for ACF Pro.
Analytics scripts on a known host get blocked before they fire. Reverse-proxying Umami through our own domain quietly recovers those visits.
An EC2 box can’t send mail on its own. Here’s how we relay through SES with aligned DKIM and DMARC — and why we needed no MX record.
Trellis doesn’t ship database backups, so we added a tiny role: stream a gzipped dump to S3 nightly, using the instance role and no stored keys.