base-cms
The CMS this site runs on. I am building it for small-business websites.
What it is
A CMS for company websites of a few dozen pages. Users edit the text directly on the page, phone included, and can ask an AI assistant to propose changes: nothing is published until a person approves it.
The site can have a chat that answers visitors using the site's own content, an automatic translation that stays a draft until someone reads it, and cookie-free statistics.

Why I built it
Small-business sites usually end up one of two ways: a WordPress full of plugins nobody updates, or an agency site that has to be called to change a comma. I wanted something in between: a tailor-made site the owner can update alone, that runs on a small, cheap server and whose data can be exported at any time.
How I built it
I designed the CMS and lead its development: I decide what to build and what not to, write the specifications and the architecture decisions (52 so far) and review every change before it enters the project. To write the code I rely heavily on coding agents such as Claude Code. I know them well and see their value: guided by clear rules and more than 1,300 automated tests, they make it possible to move fast without losing coherence.
The CMS changes every week, based on what comes up on the sites where it is used.
Some technical choices
- Everything inside PostgreSQL: the background job queue and the search used by the assistant too. No Redis or separate search engine, so the whole site at rest takes about 490 MB of memory.
- Features are optional: news, documents, chat, translation, statistics. A site without AI works just the same.
- An MCP server lets the client connect the chatbot they already use (Claude, ChatGPT, Gemini) to the site, with the same permissions as their account.
- Each site can have its own database schema, so several sites can share one server.
- Before every update, a copy of the production site is tried in a separate environment with a real browser.
Where it is used
It runs the website of a manufacturing company, this site, and a public demo where anyone can try it with a copy of their own, valid for two hours.
Honest limits
There is no 1.0 release yet. WordPress import and a translation glossary are missing. I measured load times on a simulated network, not on real traffic.
Stack: Python, Django, django-ninja, PostgreSQL with pgvector, Nuxt 4 (Vue, TypeScript), Docker, Caddy. Tests with pytest, vitest and Playwright.
A site with this CMS
The CMS starts at 600 euro. No lock-in: the technology is open source and your data stays yours, exportable whenever you want.




