Self-hosted content platform

Run your site by talking to it.

Runs on your machine. One folder — copy it, version it, hand it over. Every admin capability is a tool an agent can call.

No npm package yet  ·  clone and run from source, then the quickstart

One capability, two doors

A person opensAn agent calls
Pages › Edit HTMLpages_write_html
Forms › Submissionsforms_list_submissions
SEO › Sitemapseo_regenerate_sitemap
Comments › Queuecomments_approve_comment
Themes › Filestheme_read_file

01  /  The premise

Most platforms bolt a chatbot onto the admin.

Tovu hands over the admin itself.

Not screen-reading. Same operations, same permissions, same history.

Can it do that? is not a roadmap question. If it is in the admin, it is in the toolset — no integration to write.

02  /  The ledger

What the site can do, it can also be told to do.

Each is a screen, and a set of tools.

15 capability areas, in the box
Media
Uploads, renditions, image transforms.
Forms
Definitions and submissions.
Members
Visitor accounts, magic-link sign-in.
Newsletter
Lists, double opt-in, campaigns, send log.
Comments
Moderation queue, spam handling, per-site settings.
Redirects
Rules, hit counts, bulk import.
SEO
Per-entry overrides, site-wide settings, sitemap regeneration.
Taxonomy
Taxonomies, terms, tagging.
Widgets
Instances, region bindings, inline embeds.
Analytics
Page views and events, in your own database.
Change sets
Grouped edit history you can revert.
Deployments
Static export, Dockerfile, publish targets.
External MCP
Third-party MCP servers.
API keys
Scoped, revocable keys.
Agent plugins
Installable agent instructions and tools.

03  /  What is missing

The toolset has gaps on purpose.

The destructive operations were never handed over. Each omission is in the tool catalog, with its reason.

  • Comments

    Every moderation step is reversible. Nothing in the toolset erases a comment.

  • Members

    members_disable is a soft disable. No hard-delete tool exists.

  • Forms

    Disabling is the only retirement path an agent has.

  • Migrations & imports

    database_execute_migrate_forward and redirects_import are marked never agent-callable. Human confirmation only.

  • Publishing

    Publishing and pushing both stop at a confirmation dialog. The human presses the button.

04  /  Themes

Four tiers of theme, one contract.

A theme is a folder validated against a schema. Pick the tier by how much power the author needs.

  1. declarative

    JSON block trees. No logic, nothing to sandbox.

    Tier 1 — data only
  2. templated

    LiquidJS in a sandboxed worker. Template logic, no JavaScript.

    Tier 2 — sandboxed logic
  3. handlebars

    The same sandbox, in Handlebars syntax.

    Tier 3 — sandboxed logic
  4. static

    Plain HTML, CSS and JavaScript. This page is rendered through one.

    Tier 4 — full control

A fifth tier, code, is reserved for signed plugin JavaScript; no themes ship on it yet. Browse the catalog.

05  /  Running it

It lives on your machine, in one folder.

Database, uploads, themes and plugins, all in the same directory.

Terminal

tovu init my-site
tovu serve my-site            # site and admin on one port
tovu export my-site           # static export
tovu deploy config --target fly # or render, or railway

docker

A multi-stage Dockerfile at the repo root. The container is disposable; your content is not.

introspect

tovu introspect prints the command and tool manifest as JSON — the same one an agent reads.

06  /  Start

Install it, then ask it what it can do.

Not a figure of speech. The manifest ships populated.

Documentation  ·  Theme and plugin catalog