Every feature, no bloat

Contento gives you everything you need to publish content beautifully — as a traditional CMS or headless API — without the complexity.

Writing

A writer-first editor

Every pixel serves the writer. No distracting toolbars, no confusing WYSIWYG — just a clean Markdown surface with everything you need.

Autosave every 3 seconds

Never lose a word. Changes saved automatically with version tracking.

Live word count & reading time

Word count and estimated reading time update as you type.

Cover images & SEO settings

Drag-and-drop cover images. Built-in meta title, description, canonical URL, and OpenGraph fields.

5 publication statuses

Draft, In Review, Published, Scheduled, and Archived. Full workflow support.

Dark mode editor

Toggle dark mode in the editor. Persists across sessions via localStorage.

Published Auto-saved 2s ago
The Art of Simplicity
Less is more — a meditation on minimal design

In the spirit of wabi-sabi, we find beauty in imperfection. The crack in the teacup tells a story that the perfect vessel cannot.

Content should breathe. Give it space, and it will speak for itself...

247 words 1 min read v3
API Response
// GET /api/v1/content/posts/the-art-of-simplicity
{
  "data": {
    "id": "a1b2c3d4-...",
    "title": "The Art of Simplicity",
    "slug": "the-art-of-simplicity",
    "bodyHtml": "<h1>The Art of...",
    "bodyMarkdown": "# The Art of...",
    "excerpt": "Less is more...",
    "coverImageUrl": "/media/cover.jpg",
    "publishedAt": "2026-02-18T...",
    "readingTimeMinutes": 4,
    "tags": ["design", "philosophy"],
    "commentCount": 12,
    "tableOfContents": [
      {"id": "intro", "text": "Introduction", "level": 2},
      {"id": "beauty", "text": "Finding Beauty", "level": 2}
    ]
  }
}
Headless API

Complete REST API

135 endpoints covering every piece of content in your CMS. Two API layers designed for different use cases.

Content Delivery API

Public, no auth required. Site config, posts with HTML, categories, search, comments, themes, layouts, media.

Management API

Bearer token auth. Full CRUD for posts, categories, media, plugins, layouts. Import/export. Audit logging.

Authentication API

Token exchange, refresh, and user info. HMAC-SHA256 signed stateless tokens with configurable TTL.

Full API reference
Extensible

Plugin ecosystem

Extend Contento with JavaScript plugins that run in a secure Jint sandbox. No server restart needed — install from the admin panel.

SEO Analyzer

Keyword scoring, readability analysis, Flesch-Kincaid, JSON-LD generation

Contact Form

Styled form with validation, honeypot spam protection, success animations

Reading Progress

Animated scroll progress bar at the top of posts

Social Share & SEO Meta

OpenGraph, Twitter Cards, and social sharing buttons

Build a plugin
plugin.js
// name: "my-awesome-plugin"
// version: "1.0.0"
// hooks: ["post:render"]

(function () {
  contento.on('post:render', function (ctx) {
    var doc = ctx.document;
    var body = doc.body;

    // Full DOM API available
    var el = doc.createElement('div');
    el.setAttribute('class', 'my-widget');
    el.textContent = 'Hello!';
    body.appendChild(el);

    // Access post metadata
    var title = ctx.title;
    var tags  = ctx.tags;
    var slug  = ctx.slug;

    // Inject styles
    var style = doc.createElement('style');
    style.textContent = '.my-widget {'
      + '  position: fixed;'
      + '  bottom: 20px;'
      + '}';
    doc.head.appendChild(style);
  });
})();
mcp-tools.json
// MCP tool calling Contento's REST API
{
  "tool": "create_post",
  "params": {
    "title": "10 Tips for Better SEO",
    "bodyMarkdown": "# Introduction\n\n...",
    "status": "draft",
    "tags": ["seo", "marketing"],
    "metaTitle": "10 SEO Tips for 2026",
    "metaDescription": "Boost your..."
  }
}
// → POST /api/v1/posts
// → 201 Created { data: { id, slug, ... } }

// Then publish it:
{
  "tool": "publish_post",
  "params": { "id": "a1b2c3..." }
}
// → POST /api/v1/posts/{id}/publish
AI & Agents

MCP-ready for AI agents

Contento's full REST API with OpenAPI documentation makes it a natural backend for AI agents using the Model Context Protocol. Stateless bearer tokens, structured JSON responses, and 135 endpoints mean agents can manage your entire content operation.

Content Generation

AI agents create posts with Markdown body, SEO metadata, tags, and cover images — then publish or schedule them via API.

Built-in AI Endpoints

Text completion, streaming SSE responses, AI-generated themes and layouts — all accessible via authenticated API calls.

Full OpenAPI Spec

Every endpoint documented with request/response schemas. Agents can discover available tools automatically via the OpenAPI spec at /openapi/v1.json.

Stateless Auth

HMAC-SHA256 bearer tokens with 24-hour TTL. No cookies, no sessions — ideal for headless agent workflows.

MCP integration guide

Admin panel built for teams

Five roles, full audit logging, and a responsive admin UI that works on mobile.

5 User Roles

Granular access control for your team.

OwnerFull access + billing
AdminAll settings + users
EditorAll content + publish
AuthorOwn content only
ViewerRead-only access

Audit Logging

Every action tracked with who, what, when, and where.

  • Post created, updated, published
  • User login, role changes
  • Settings changed
  • Content deleted
  • Plugin installed/removed

Security

OWASP best practices built in from day one.

  • BCrypt password hashing
  • CSRF token protection
  • Content Security Policy headers
  • HTML sanitization (anti-XSS)
  • HMAC-signed API tokens
  • Honeypot spam protection

SEO Built-In

Everything search engines need, zero plugins required.

  • Auto-generated XML sitemap
  • RSS feed at /feed.xml
  • robots.txt + llms.txt
  • OpenGraph + Twitter Cards
  • Canonical URL support
  • Per-post meta title/description
  • JSON-LD structured data (Article, WebSite)

Import & Export

Move your content freely. No vendor lock-in.

  • Import from WordPress (WXR/XML)
  • Import Markdown files
  • Export full site as JSON
  • Export posts as Markdown
  • Export posts as HTML

Performance

Fast by default. Caching where it matters.

  • Redis caching layer
  • Response compression (gzip)
  • Static file caching
  • PostgreSQL full-text search
  • HTTP cache headers on API
Monetization

Membership & subscriptions

Monetize your content with Stripe-powered paid memberships. Create plans, gate content by access level, and manage subscribers — all from the admin panel.

Plan management

Create unlimited plans with custom pricing, billing intervals (monthly/yearly/lifetime), trial periods, and access levels

Stripe integration

Checkout sessions, billing portal, webhook handling, payment failure recovery with automatic downgrade after 3 strikes

Content gating

Gate posts by membership level. Free, premium, and VIP tiers with paywall UI and member-only access

Subscriber dashboard

Admin dashboard with member stats, revenue placeholder, tier badges, expiry tracking, and grace periods

Membership Admin

247

Total Subscribers

89

Paid Members

3

Active Plans

Premium $9.99/mo Active
VIP $29.99/mo Active
Lifetime $199.00 Active
Campaign Editor
Weekly DigestSent Feb 18

This week's highlights: new membership features, media library improvements...

Welcome Series #1Draft

Welcome to our community! Here's what you can expect as a subscriber...

Product UpdateScheduled

Exciting new features just launched: Stripe membership, multi-site...

Newsletter

Newsletter & email campaigns

Grow your audience with built-in newsletter management. Subscribers sign up from your public site, and you manage campaigns from the admin panel.

Subscriber management

Double opt-in signup, unsubscribe handling, active/inactive tracking, and bulk import.

Campaign editor

Create, preview, and send campaigns. Draft, scheduled, and sent statuses with delivery tracking.

Public signup form

Inline newsletter signup in the public layout footer. Works with the Content Delivery API for headless integration.

Advanced platform features

Enterprise-grade capabilities for scaling your content operation.

Multi-Site

Run multiple sites from one installation.

  • Domain-based site resolution
  • Per-site themes and settings
  • Primary site fallback
  • Create, switch, and delete sites

SEO & Structured Data

Full SEO toolkit built in.

  • JSON-LD schemas (Article, WebSite, Breadcrumb)
  • Sitemap index with category/post maps
  • SEO scoring (100-point scale)
  • OpenGraph, Twitter Cards, og:locale
  • robots.txt + llms.txt generation

Task Scheduler

Automate recurring operations.

  • Cron-based scheduling with presets
  • 6 built-in task types
  • Manual trigger from admin UI
  • Last run and next run tracking

Custom Post Types

Beyond blog posts.

  • Define custom content types
  • Custom field schemas (JSON)
  • Icon and slug customization
  • Manage from admin panel or API

Navigation Menus

WordPress-style configurable nav.

  • Header and footer menu locations
  • 4 link types: custom, post, category, tag
  • Nested items for dropdown menus
  • Reorder with up/down controls
  • Public API for headless consumers

Image Processing

Automatic image optimization on upload.

  • Responsive variants (640w, 1024w, 1536w)
  • WebP format conversion
  • Automatic thumbnail generation
  • EXIF data stripping
  • Focal point picker in admin

Spam Protection

Multi-layer spam defense.

  • AI-powered spam scoring
  • Configurable auto-approve threshold
  • Honeypot field protection
  • Spam stats (approved/blocked/total)
  • Pattern-based keyword detection

URL Redirects

SEO-friendly redirect management.

  • 301 (permanent) and 302 (temporary)
  • Auto-redirect on slug changes
  • Hit count and last-hit tracking
  • Middleware processing on GET requests
  • Admin UI and REST API

oEmbed & Rich Media

Auto-embed from paste.

  • YouTube, Vimeo, Twitter/X
  • Spotify, SoundCloud, CodePen
  • In-memory cache (5-minute TTL)
  • Extensible provider registry
  • CSP frame-src auto-configured

Shortcodes

Rich content with simple tags.

  • 7 built-in: youtube, vimeo, button, callout, gallery, code, toc
  • Attribute and inner content support
  • Register custom shortcodes at runtime
  • Context-aware (PostId, SiteId, BaseUrl)

Post Editing Locks

Prevent editing conflicts.

  • Exclusive edit locks per post
  • 2-minute TTL with auto-expiry
  • Lock acquire, renew, and release
  • Shows who is currently editing

User Registration

Self-service account management.

  • Public signup with email verification
  • Password reset via token (1-hour expiry)
  • Gravatar avatar integration
  • Anti-enumeration protection
  • REST API endpoints for headless auth

AI & MCP Integration

Agent-ready content platform.

  • Full OpenAPI spec for MCP tool discovery
  • AI text completion and streaming (SSE)
  • AI-generated themes and layouts
  • Stateless bearer tokens for agent auth
  • 135 endpoints covering full CMS surface

Ready to get started?

Contento is open source and free to use. Clone it, run it, make it yours.