Hugo is still brilliant — here's when I reach for Pressbin instead

I have shipped more than one blog with Hugo. Build times measured in milliseconds, deploy artifacts that are just files, hosting bills that round to zero on Cloudflare Pages - it is a mature, excellent tool.

I still built Pressbin. Not because Hugo failed, but because some problems are awkward in pure static while still not worth WordPress.

Hugo build-to-CDN vs Pressbin sync-to-serve

The static bargain (and why it holds)

Hugo’s deal is simple:

  1. Markdown + templates go in
  2. HTML comes out
  3. The CDN serves bytes

At read time there is no application. That eliminates entire classes of exploits and scaling headaches. For documentation, personal sites, and project blogs, it is hard to beat.

Where static sites get fiddly

Search

Hugo does not give you dynamic full-text search over a growing archive without add-ons. Common paths:

  • Pagefind (build-time index, client-side search) — good, but another pipeline step
  • Algolia — great UX, ongoing cost and indexing integration
  • Google site search — diminishing returns in 2026

Pressbin indexes post bodies in SQLite FTS5 at sync time. The search box on the homepage hits the server — one query, no megabyte JSON index downloaded to the browser.

“Small” changes, full rebuild

Fix a typo in a three-year-old post? Fine — hugo rebuilds the site. For 400 posts that is still fast. For complex sites with heavy taxonomy and image processing, CI minutes add up.

Pressbin syncs only changed Markdown files on each push (plus a full sync on the repository’s first push). Tag pages and the index update from database queries, not from regenerating every HTML file.

APIs and tooling

Static means: if you want a mobile app, a CLI, or a dashboard to flip draft → published, you build it against… something. Often that something becomes a headless CMS anyway.

Pressbin ships GET/PUT/DELETE /api/admin/posts and stats endpoints. The binary is the backend; your UI is optional.

Economics: CDN vs VPS

Hugo on Pages or S3 is nearly free at personal scale.

Pressbin assumes a small always-on VPS — Hetzner, DigitalOcean, Oracle free tier. You pay for the box, not per request. For low traffic that is also single-digit dollars.

The trade is operational: you patch the OS and renew TLS. Pressbin does not remove Linux — it removes Node, PHP, MySQL, and build pipelines.

When I still pick Hugo

  • Project docs versioned with code and deployed beside it
  • Sites that must survive without any server process
  • Heavy use of Hugo shortcodes, multilingual bundles, or image pipelines you already maintain
  • Teams already standardized on Netlify/Cloudflare CI

When Pressbin replaced Hugo for me

  • I wanted tags and search without another SaaS
  • I wanted git push publishing but not a 200-file _site/ diff on every commit
  • I wanted RSS and post pages with no build container in CI — only a Python sync script

Think of it as: Hugo compiles the site; Pressbin compiles each post once, then serves from a database.

Migration sketch

If you have content/posts/*.md in Hugo already:

  1. Move files into posts/ in a content repo
  2. Adjust front matter keys to Pressbin’s (summary instead of description, etc.)
  3. Point the sync Action at your VPS
  4. Cut DNS when satisfied

URLs can stay stable if you preserve slug in front matter.

Closing

Hugo is not the enemy of Pressbin. Static is often correct.

Pressbin is for the band between static and CMS — when you want dynamic reads, built-in search, and Git-native authoring, but you refuse to operate a LAMP stack to get there.

If your site is happy on a CDN, keep it there. If you have fought search or rebuild ergonomics twice, try one binary on a spare machine and push a post. The comparison becomes experiential, not theoretical.