How this blog is built
A short tour of the publishing pipeline behind wpfx.com — Astro content collections, per-post OG images, and git-as-CMS.
This site runs on an Astro + MDX static pipeline, deployed through Cloudflare Pages. Every post you read is a file in a git repo — no CMS, no database, no runtime dependencies.
A few things we wired that matter more than they sound:
- Content collections with Zod schema. Every post passes a typed frontmatter check at build time. A missing
publishDateor a brokenauthorreference fails the build, not the reader. - Per-post OG images generated at build time. Satori + Resvg emit a 1200×630 PNG for every post using a vertical-specific accent — we never ship the default image to social previews.
- Internal links are build-verified. The
<PostLink />component resolves slugs at build; rename a post and every broken reference fails CI. - Git is the audit log. The “Last updated” date on each post is pulled from
git logat build, not hand-typed.
If you want the opinionated version of why we ship it this way, see Welcome — what this blog is for.