Dev Log
A build log for this site — how it was made, what changed, and where things stand. Written for readers curious about the process, and as a reference for future maintenance.
Where We Started
- Ribbonfarm ran as a WordPress blog from 2007 to 2024 — 17 years, 1,133 posts, 13,258 comments, 60 contributors (32 WordPress accounts, many bundled under a shared "Guest" handle).
- The blog was retired in late 2024. The goal: preserve everything as a permanent static archive and redirect the domain here, with no server-side processing.
- Source materials: a 527,000-line WordPress XML export (February 2026), a full media library (6,878 files, 1.1 GB), a complete MySQL database dump, and the original WordPress theme files for CSS reference.
- All source materials are kept read-only. Nothing was regenerated from scratch; all work was done on editable copies.
The Approach
- A custom Python static site generator (
build_site.py) written from scratch. No Jekyll, Hugo, or other framework — direct control over every output file. - Content format: each post and page is a
.htmlfile with YAML frontmatter + original HTML body. Non-lossy: nothing was stripped that couldn't be reconstructed. - Images served from Cloudflare R2 (
media.ribbonfarm.com), not bundled into the static build. - Hosted on Cloudflare Pages (direct upload, not git-connected CI).
- Work done in iterative sessions with Claude (Sonnet): build → review → fix → deploy. Each session tackled one area at a time.
- The build is fully reproducible from source. A "rebuild from scratch" procedure is documented in
CLAUDE.md.