From bfe2fb7c24979c0639dbc39a399a65c59800bb5f Mon Sep 17 00:00:00 2001 From: Blake Ridgway Date: Sat, 14 Mar 2026 07:54:45 -0500 Subject: [PATCH] new post --- content/posts/site-is-live.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 content/posts/site-is-live.md diff --git a/content/posts/site-is-live.md b/content/posts/site-is-live.md new file mode 100644 index 0000000..6fa299b --- /dev/null +++ b/content/posts/site-is-live.md @@ -0,0 +1,25 @@ +--- +title: "ridgwaysystems.org is live" +date: 2026-03-11 +tags: [meta, go, openbsd] +slug: site-is-live +description: "The site is up. A single Go binary on OpenBSD, serving blog posts, a status page, a hire page, and an admin panel — no database, no Docker, no external dependencies." +draft: false +--- + +It's up. + +ridgwaysystems.org is now running on a Vultr VPS — OpenBSD, relayd for TLS termination, a single Go binary handling everything behind it. No database. No Docker. No framework. Flat Markdown files on disk, templates compiled into the binary at startup, HMAC-signed sessions, and a background goroutine that checks service health every few minutes. + +The stack: + +- **Go** — stdlib `net/http` with 1.22 pattern routing. One binary, one deploy, done. +- **OpenBSD** — relayd as the reverse proxy, acme-client for TLS certs, rc.d for service management. +- **Flat files** — posts are `.md` files in `content/posts/`. The status page reads from `data/status.json`. Newsletter subscribers live in `data/subscribers.json`. +- **No build step** — CSS is hand-written, no preprocessor. JS is a single file for the admin editor. + +Features that made it in before launch: blog with next/prev navigation, a status page with live HTTP health checks, a hire page with a contact form (rate-limited, honeypot, CSRF), a newsletter subscribe widget, admin panel with post editor, image uploads, and subscriber management, syntax-highlighted code blocks via Chroma, and an RSS feed. + +The source is at [git.ridgwaysystems.org](https://git.ridgwaysystems.org). + +More build posts to follow — the relayd config alone is worth documenting.