Overview¶
SmallBlock CMS is a lightweight, extensible content management system built on Python. It’s designed to be fast to set up, easy to extend, and comfortable to operate in production behind Nginx with PostgreSQL or MariaDB.
Who This Is For¶
Developers / DevOps — install, configure, deploy, extend with plugins and template tags.
Editors / Site Managers — create pages, manage media, publish content, work with the toolbar.
Architects / Tech Leads — review security model, deployment guidance, and customization options.
What You’ll Get¶
A clear installation path (local quick start → production deployment)
A pragmatic plugin system with template tags, toolbar extensions, and webhooks
A sensible permissions model with roles for Administrator, Editor, and Author
Friendly documentation: conceptual topics, how-to guides, and reference material
Core Capabilities¶
Publishing workflow — draft/publish, scheduled publishing
Templates & tags — Jinja-style tags for dynamic regions
Plugins — register small features without touching core
Multilingual content — serve multiple languages (optional)
Search — basic site search out of the box
Sitemaps — automatic XML sitemap generation
Architecture Snapshot¶
Nginx terminates TLS and proxies to the app server
Gunicorn/Uvicorn runs the SmallBlock application (WSGI/ASGI)
SmallBlock handles routing, templating, permissions, and plugins
PostgreSQL/MariaDB stores content, users, and plugin data
Static/Media served directly by Nginx in production
Tip
See Deployment Architecture Overview for a system diagram and a component-by-component summary.
Getting Started Quickly¶
If you want a fast local setup:
Then jump into the User Guide to create your first pages.
For Production¶
Start with Production Deployment
Review Security Hardening
Set up Backups and Monitoring
Customization Paths¶
Documentation Conventions¶
Tone: direct, approachable, task-oriented
Code: copy-pastable, minimal, and runnable
Headings: sentence case; short introductions at the top of each page
Style guide: see SmallBlock Style Guide
Compatibility¶
Python: 3.10+
Databases: PostgreSQL ≥ 13 or MariaDB ≥ 10.5
Web server: Nginx 1.20+
Next Steps¶
New to SmallBlock? Start with Installing SmallBlock.
Already running locally? Explore the User Guide.
Integrating with other systems? See the Developer Guide.