Привет Дима

the self-hosted Agentic Web Platform (AWP)

Generate websites — never generate backend code. CMSnap serves pages, forms, an admin panel, a JSON API, SQLite and HTTPS from one self-contained binary, and hosts many isolated sites — a site per domain. AI agents manage content, media, templates and settings over a secure MCP endpoint. No application runtime, database server or reverse proxy required.

Static speed. Static safety. Fully dynamic. Fully generated.

Download CMSnap-LITE Start in two commands →

your prompt“build a site” · “update the article”
AI agentover the site’s MCP token
./cmsone self-contained binary
site Aown SQLite · admin · token
site Bown SQLite · admin · token
site Cown SQLite · admin · token

A token is one site’s administrator, no more: the agent runs that site — content, media, templates, settings — and never reaches a neighbour or the server itself. IP-restrictable, revocable at any time.

single binarymulti-sitea SQLite per siteMCP-native

Nothing here is a mockup

This site runs on the engine it documents — one self-contained binary, a site per domain, serving 383,284 requests/second on four physical cores (8 SMT threads). Every feature below is wired up in settings.json, and you can try each one right now.

Server-side rendering, no JS framework
Every page is a Handlebars file on disk. Edit it, run cms reload, zero downtime.
Views: filters, ordering, pagination
A view filters by any indexed columns — several at once, from path parameters and the query string — with declared ordering and cursor pagination. /docs/<group> here is one such filter.
Publish flag
Untick “published” on an article and it vanishes from the site. That's fixed_filter at work.
Public forms
Validation, a honeypot for bots, a rate limit and server-side timestamps: all declared in the config.
JSON API
Any view can be served as JSON at any path you declare in the config — /api/docs here returns these very articles: try it below.
HTTPS without a reverse proxy
Your PEM files, or a Let's Encrypt certificate the binary obtains and renews itself.
SQL console & analytics
Query this site's databases and the request log via sqliteonline.com — a per-user flag: users read, admins write; a DuckDB mode handles heavy traffic analytics.
Files & media
Uploads are verified by file contents, not by extension, and served with immutable cache headers.
Many sites, one binary
A domain → folder map in the root config: isolated databases, users and templates per site; adding one is a cms reload.
MCP for AI agents
Issue a token in the admin and an agent runs that site over /mcp with an administrator’s reach — and never leaves it.

Documentation

Loaded from the doc_groups table of this site's database (3 groups). Signed-in users can edit every word at /cms/docs.

Try the API right here

The buttons call this site's own endpoints from your browser; the same requests work with curl.

GET /api/docs?grp=configuration

An api GET route serving the doc_list view as JSON: rows, total, next_cursor.

GET /api/doc/1

A single-record view behind a path parameter: the same article you can read as a page, served as raw JSON.