AI-NATIVE CONTENT BACKEND

Your content, your rules.
Every interface.

One content backend. The same lifecycle rules for every interface: browser, API, CLI, and AI agent. Self-hosted, open source, zero runtime dependencies.

OPEN SOURCE. SELF-HOSTED. 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. A decision moves from proposed to ratified only when the right role approves it - same as any other rule you define. 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.

Decisions get the same treatment as everything else. Propose one, and it only moves to ratified when the right role says so - enforced the same way as a draft, a publish, or a delete.

You set the boundaries once. Smeldr holds them.

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