The 80/20 of Web Performance for a Content Site
The handful of changes that deliver most of the speed for a content site: gzip, browser caching, image size, and a fast origin. No framework wars.
The handful of changes that deliver most of the speed for a content site: gzip, browser caching, image size, and a fast origin. No framework wars.
How to actually read your server logs: systemd journal for the app, GoAccess for traffic, and log rotation so logs never fill the disk.
The nginx line that serves generated pages, clean URLs, and a proper 404 — explained. Plus the cache and gzip settings worth adding.
The exact systemd unit I run for Go services: restart policy, hardening, environment file, and the flags that stop a crash from becoming an outage.
A minimal uptime monitor you can run without any third-party service: a /healthz endpoint, a cron job, and a curl. Here is the exact setup.
The practical rules for keeping API keys and passwords out of version control — environment files, .gitignore, and what to do when one leaks anyway.
One binary, one file, one cheap VPS: the honest full stack behind a Go + SQLite service — systemd, nginx, Cloudflare, backups, and what each piece is for.
What a CDN actually does for a content site, and the free-tier setup that caches assets, hides your origin, and hands out TLS without a certificate ritual.
A complete, working deployment recipe for Go web services on a VPS: cross-compile, systemd unit, nginx reverse proxy, secrets, logging, and zero-downtime restarts.
My real self-hosting setup: a cheap VPS, Go services, Cloudflare, and honest numbers on what it costs — and what I would pay for instead.