
Our Go CMS now speaks 5 languages, themes itself, and meditates on 404s
We've been building ForgeCMS - a Go-based CMS that pulls content from a Codeberg repo and serves it from a €1/month VPS. No database. No WordPress. No regrets. Today we shipped a release that felt like crossing a threshold: the CMS stopped being a prototype and started feeling like a real product. Here's what landed. 🌍 Proper i18n - without a framework We didn't reach for go-i18n or any translation library. Instead, we built language resolution directly into the SML page system: Accept-Language header detection on first visit /lang switcher endpoint that sets a lang cookie Per-page language override via Page{lang: "es"} Fallback chain: atesti/es/index.sml → atesti/index.sml The result: a visitor from Barcelona lands on the Spanish page automatically. A visitor from Cataluña sees Català. No JavaScript required. lang-specific SML pages (atesti/es/index.sml fallback to index.sml) Page{lang:} override for per-page content language Markdown{src:} with lang injection and no-lang fallback We
Continue reading on Dev.to Webdev
Opens in a new tab

