The CMS that doesn't get in your way. Built for agencies. Safe for clients.
- All content, zero bloat - Just HTML with
$placeholders$ - Lightweight CMS, heavyweight results - Under 400 lines of elegant code
- Fast, minimal, unbreakable - No build steps, no complexity, no headaches
RovoCMS lets agencies explore creative designs while clients safely "rove" through editing. The name evokes rover/rove → exploration, freedom, movement. Perfect for a lightweight CMS that gives you creative freedom.
- Zero Build Philosophy: Write HTML, mark editable regions with
$placeholder$, deploy - Front-Facing Editing: Type "rovocms" on any page to edit inline
- Auto-Everything: Content auto-initializes, attributes auto-generate
- Draft/Publish Workflow: Save drafts, preview, then publish
- Multi-Page Support: Organize pages in a clean structure
- SSR Hydration: SEO-friendly server-side rendering
- SQLite Storage: Simple, portable database
Note: I built this around Bun & Hono
# Install dependencies
bun install
# Run development server
bun dev
# Visit http://localhost:3000Just write HTML with $placeholder$ markers for any text you want to be editable:
<!DOCTYPE html>
<html>
<head>
<title>$page_title$</title>
<link rel="stylesheet" href="/assets/css/styles.css">
</head>
<body>
<h1>$hero_title$</h1>
<p>$intro_text$</p>
</body>
</html>That's it! RovoCMS automatically:
- ✅ Adds
data-cms-keyattributes - ✅ Creates database entries
- ✅ Makes content editable
- ✅ Generates sensible defaults
- Visit any page in your browser
- Type "rovocms" (not in any input field)
- Enter password: demo
- Click any outlined element to edit
- Save to draft → Publish when ready
RovoCMS works anywhere Bun/Node runs:
# Docker
docker build -t rovocms .
docker run -p 3000:3000 rovocms
# PM2
pm2 start server.ts --interpreter bun --name rovocms
# Any VPS
bun startrovocms/
├── pages/ # Your HTML pages
│ ├── index.html # Just use $placeholders$
│ ├── about.html
│ └── contact.html
├── assets/ # Static assets
│ ├── css/ # Your styles
│ ├── js/ # RovoCMS editor (auto-loaded)
│ └── images/ # Your media
├── server.ts # The entire backend (< 300 lines!)
└── cms.db # SQLite database (auto-created)
The workflow agencies love:
- Designer creates HTML with
$placeholder$markers - RovoCMS auto-initializes everything on first load
- Client edits content safely through the browser
- No backend work needed - it just works
- Client cannot wreck design - they can edit content - but can't break the site
Drop an HTML file in pages/:
<!-- pages/services.html -->
<h1>$services_title$</h1>
<p>$services_intro$</p>Visit /services - boom, it's editable.
Your CSS, your rules:
/* assets/css/custom.css */
.hero {
/* RovoCMS doesn't touch your styles */
}Simple and predictable:
GET /api/cms/content?page=/&state=published- Get contentPUT /api/cms/content- Save content (auth required)POST /api/cms/publish- Publish drafts (auth required)
One table, infinite possibilities:
content(
page, -- /about, /services
lang, -- en, es, fr
key, -- hero_title, intro_text
state, -- draft or published
value, -- The actual content
)RovoCMS believes in:
- Zero Configuration - It should just work
- Progressive Enhancement - Start simple, stay simple
- Developer Freedom - Your HTML, your way
- Client Safety - They can't break what they can't touch
RovoCMS is built for the agency workflow:
- Fast prototypes - Ship in hours, not days
- Safe for clients - They edit content, not code
- Easy handoff - No documentation needed
- Maintenance-free - No updates, no breaking changes
"Move fast. Edit safe."
We promise a CMS that:
- Never gets in your way
- Never breaks your design
- Never confuses your clients
- Always just works
RovoCMS - All content, zero bloat. Built with ❤️ by 1337Hero for agencies who value their time and their clients' success.
RovoCMS is open-sourced under the MIT License.