SMELDR - CONTENT BACKEND
Your content, your rules.
Every interface.
The same lifecycle rules apply to every reader - browser, API, CLI, and AI agent. Self-hosted, open source, zero runtime dependencies.
How it works
Set the rules once
Define your content types, validation, and access roles. Smeldr applies them to your team, your API, and your AI - without exceptions.
Ship the content
Turn the decision into drafts, edits, schedules, and published pages - without sending it through five different tools.
Protect
AI can help move content forward, but Smeldr keeps the rules in place. No action happens outside your roles, lifecycle, and permissions.
Why Smeldr
Your content reaches every audience
When your team publishes, it shows up - in search results, in link previews, and in AI-generated answers. No extra setup, no separate integrations, no plugins to update.
Nothing breaks on someone else's schedule
Smeldr has zero runtime dependencies. No packages, no external services, no CDN calls. When something changes, it is because you changed it.
Your rules. No exceptions.
You define your content types and their validation. You define access roles - who can draft, who can publish, who can delete. You decide what your AI agent is allowed to do.
Smeldr enforces it. Every rule applies everywhere - in your admin interface, in the API, and in every tool your AI calls. No workarounds for anyone. No special cases for AI.
You set the boundaries once. Smeldr holds them.
For developers
Built in Go. Zero dependencies. SQLite or Postgres.
Define your content types as Go structs. Smeldr handles the rest.
View on GitHub →$ go get smeldr.dev/core