The contract is the schema
One source of truth for forms, validation, delivery and the agent API. Model definitions don’t drift across five places in the code.
In development. Early access opens in stages.
Opress gives every website a contract, its content model as data, and checks every write against it, whether a person or an AI agent makes it. Changes are reviewed, published and reversible.
seo-agent update /guides/long-stay-visa
Rejected by the contract
Prices live in the price field, not in headings. Nothing was written.
An illustration of the flow, not live data.
The mark is the system. A change starts outside, passes two rings and only then reaches your content.
Any MCP client discovers the contract and proposes changes. People use the editor. Both go through the same command layer.
Structural errors are rejected on the server: wrong types, missing fields, broken links. Editorial issues such as length and stale facts come back as warnings.
Changes wait for a manager or publish on their own, per agent. Each one is recorded with its author and reason and can be rolled back in one step.
Types, fields, relationships, routes and SEO defaults live as versioned data. Model changes are classified as compatible or breaking and migrated by a command.
One source of truth for forms, validation, delivery and the agent API. Model definitions don’t drift across five places in the code.
Stable tools with contract discovery, not one tool per content type. Scoped agent keys, an agent log, proposals and rollback.
Prices, fees and rules are referenced facts with a source and a verification date. Stale facts block publishing, so they can’t quietly go out of date in the text.
Canonicals, JSON-LD, sitemaps, IndexNow, llms.txt, one H1 per page, link checks and content lint. Fast pages with strict JavaScript budgets.
Sites in one project share records and keep their own editorial content. Start a site small, see what works and grow it in place without losing a URL.
Every core workflow runs without AI calls or paid services. Agents are optional clients, not dependencies. Self-hostable.
Opress records each decision with its scope, author, date and reason, from the whole organisation down to a single page. Pamet turns that history into memory. Before an agent writes, it gets the rulings that apply. When you approve, edit or roll back its change, Pamet learns from it.
Memory points to verified facts and never replaces them.
Never promise a processing time. Write “usually”, and cite the source.
Opress grew out of the content system we built for our own search-driven sites. Early access opens in stages.