Website Maintenance with Voice on FreeBSD
I like websites that stay alive. Not because they are rebuilt every month, but because small changes are easy enough to make when the idea appears. This site now has that kind of workflow: I can describe a change in Telegram, let Hermes edit the files on the server, review it on the preview site, and then move the same change into production.
The Simple Idea
The website is not hidden behind a heavy CMS. It is a small, direct codebase on my own FreeBSD infrastructure. Hermes can work with the HTML, CSS, feeds, and metadata like a careful assistant: make the edit, keep the structure consistent, and verify the result before I publish it.
A Small Example
If I want to add a new project note, I can send a few rough sentences from my phone. Hermes turns them into the same style as the other blog entries, updates the blog index, adjusts the RSS feed and sitemap, and then checks that the page is reachable. I still decide what is good enough to publish, but the boring mechanical work is handled for me.
The Tech Stack
- FreeBSD 15: The base operating system, chosen for a stable, server-first environment.
- Jails: Services are separated into small FreeBSD containers, so the web stack, preview site, production site, and AI agent can stay isolated.
- Castd Templates: The site is built from simple HTML templates, CSS components, RSS, and sitemap files instead of a heavy database-driven CMS.
- Caddy Reverse Proxy: Public HTTPS traffic is routed to the right internal service, with preview and production kept as separate hostnames.
- Hermes Agent: Hermes edits the project files, keeps metadata consistent, and verifies the live page after a change.
- Telegram Gateway: Telegram is the mobile command interface for requesting small content and layout changes.
The Benefits
The important part is not the infrastructure itself, but what it makes possible: no cloud CMS, no copying content between systems, and no third-party provider sitting in the middle of every small website update. I can request a change, review it almost instantly, and keep the site fresh without waiting on a heavyweight publishing workflow.
The setup still uses simple templating and a small SQLite database where that helps, but avoids heavy frameworks and unnecessary external services. The result is a direct, understandable website workflow that stays close to the files and can change quickly when the content needs to change.
What I like most is that the setup feels personal. It is not automation for its own sake. It is a practical way to keep a small website fresh, accurate, and close to how I actually work.