go cms framework
Forged
in the age of AI.
For AI enhanced developers and AI empowered users.
Forge is a content management framework for building blazing fast, SEO and AI-friendly websites with Go and zero dependencies.
// features
content modules
Define a struct, embed forge.Node, register a module. List, show, feed, sitemap, and AI index — all wired automatically.
AI-first output
Every module exposes /llms.txt, /llms-full.txt, and /aidoc — structured for LLM agents without extra configuration.
zero dependencies
No npm. No build step. No framework magic. One Go binary, one SQLite file, and a Caddyfile. Deployable on a €4 VPS.
SQLite → Postgres
Switch from forge.NewSQLRepo[*T](db) to forge-pgx without touching application code. Same interface, different driver.
structured SEO
Canonical URLs, Open Graph, Twitter Card, breadcrumb JSON-LD, and RSS feeds — declared once on the content type, rendered correctly everywhere.
lifecycle management
Draft → Scheduled → Published → Archived. Status is enforced by the framework — templates never filter by status manually.
// content lifecycle
draft
Private. Only authenticated admins can read.
scheduled
Queued for a future publish time.
published
Live. Included in feeds, sitemap, and AI index.
archived
Hidden from lists. Canonical URL still resolves.
// quick start
package main import ( "github.com/forge-cms/forge" _ "modernc.org/sqlite" ) type Post struct { forge.Node Title string `forge:"required,min=3"` Body string `forge:"required"` } func main() { app := forge.New(forge.MustConfig(forge.Config{ BaseURL: "https://example.com", Secret: []byte("change-me"), })) app.Content(forge.NewModule((*Post)(nil), forge.At("/blog"), forge.Templates("templates/blog"), forge.Feed(forge.FeedConfig{Title: "My Blog"}), )) app.Run(":8080") }
// install
// devlog