The previous version of this site was a React front end talking to a Directus instance I had set up in 2021. It was a good setup for a weekend: a proper admin, a REST API, image uploads, and a flow that sent WhatsApp invites for a wedding site that shared the same server. The database was a Postgres container on that VPS, and the VPS was the only place it existed.
In 2025 that server was repurposed for client work. I did not lose anything dramatic, which is exactly why it took me a while to notice: the site kept rendering from fallback strings baked into the client, so it looked alive while every real record, every project write-up and every upload, was gone. When I rebuilt this site in 2026 the content had to be reassembled from the Wayback Machine, old CVs, and my own repositories. That is where docs/content-source.md came from, and why so many lines in it say verify.
The rule I took away is boring and I should have known it: a database that lives in one place is a cache. This site now runs a nightly pg_dump to S3 with retention, the media bucket is the source of truth for uploads rather than a disk, and the seed script can rebuild the whole site from a checked-in content file. If the server goes away again, the site does not.
Comments
No comments yet.