Skip to content
Claude edited this page Oct 23, 2026 · 11 revisions

oCMS

A lightweight content management system built with Go, featuring a modern admin interface, session-based authentication, SQLite storage, and extensible architecture with themes and modules.

Features

Content Management

  • Page Management — Create, edit, publish, and version pages with a rich content editor
  • Scheduled Publishing — Schedule pages to publish at a future date/time
  • Media Library — Upload and manage images, documents, and videos with automatic processing
  • Menu Builder — Create navigation menus with drag-and-drop ordering
  • Full-Text Search — Built-in SQLite FTS5 search for fast content discovery
  • Categories — Organize content with hierarchical categories
  • Tags — Add flat taxonomy tags to pages
  • Form Builder — Create contact forms, surveys, and data collection forms
  • Multiple field types, submissions management, email notifications
  • Multiple themes with settings, template overrides, static assets, and widget areas
  • Admin import of .tar.gz HTML themes and deletion of inactive custom themes without a restart
  • Bundled Tiny Sample archive for trying theme import and activation
  • Internationalization support for theme translations
  • Full CRUD API for pages, media, tags, and categories
  • API key authentication with fine-grained permissions and rate limiting
  • Meta tags, Open Graph, Twitter Cards, auto-generated sitemap, and robots.txt
  • RSS 2.0 and Atom 1.0 subscriptions for published posts, by site, category or tag, in every active language
  • Content translation, language-prefixed URLs, RTL support, admin UI localization
  • Event-driven webhooks with HMAC signatures, retry logic, and delivery tracking
  • JSON and ZIP export/import with conflict resolution and dry run mode
  • In-memory caching of site config, menus, languages, sitemaps and pages (an optional Redis connection is not used by the caches yet; see Caching)
  • CSRF protection, Argon2id password hashing, rate limiting, hCaptcha integration
  • Account Dashboard for signed-in users, with private account details and the shared admin layout

Quick Links

Topic Description
Getting Started Prerequisites, installation, and quick start guide
Configuration Environment variables reference
Docker Docker and Docker Compose setup
Account Dashboard Read-only account overview, login destinations and account navigation
REST API API endpoints and authentication
Feeds Public RSS/Atom endpoints, summaries and HTTP revalidation
Theme System Creating and customizing themes
Module System Building custom modules
Deployment Production deployment guides
Security Security features and policies
Contributing How to contribute to oCMS

Technology Stack

  • Backend: Go 1.27.3+
  • Database: SQLite with goose migrations
  • SQL: Type-safe queries with sqlc
  • Templates: templ for type-safe HTML
  • Frontend: HTMX + Alpine.js
  • Rich Text Editor: TinyMCE
  • Styling: Custom SCSS framework
  • Authentication: Secure sessions with Argon2id password hashing
  • Containerization: Docker with multi-stage builds

License

Copyright (C) 2025-2026 Oleg Ivanchenko

GNU General Public License v3.0 — see LICENSE for details.

Clone this wiki locally