CheetahCore — why this site runs its own CMS
Every page now carries a “built with CheetahCore” line. Behind it is not a product but a small CMS, written from scratch for exactly this one website — and the reasons why none of the ready-made systems was left standing.
There is a small line at the bottom of every page now: built with CheetahCore. That sounds like a product with a logo, a price list and a roadmap — but it is simply the honest answer to what actually drives this site. CheetahCore is a small CMS, written from scratch, for exactly one website: this one.
I did look at what already exists
Of course I did not start searching at zero. There are great systems out there, and for almost any project you would pick one of them. In my case, every road still ended in the same place:
- The big kits can do everything. You spend the first week switching nine tenths of it off — and the second bending the design far enough that it stops looking like a kit.
- What you actually need turns out to live in a plugin after all. Or in three of them, from three different people, with three different ideas about how long they intend to keep maintaining it.
- Updates by the week, every single one of them for a good reason. But a private project site should not turn into a second job.
- And the convenient options that take all the work off your hands also take the data off your hands: it then sits with a provider whose price list and business model may change whenever they like.
At some point the effort of bending someone else's system was roughly the effort of writing my own that does the right thing from the start. That is famously the exact sentence after which software projects go off the rails 😁 — this time it worked out.
What is inside
The ingredient list is short: PHP, MariaDB, Twig. No framework that brings half an operating system along. Text is Markdown and is turned into HTML once, on save, not on every request — the page you are reading has nothing left to do.
What CheetahCore does for this site:
- Bilingualism that earns the name: real addresses instead of a prefixed language code, and a language switch that only points where the page actually exists.
- Content types that describe themselves — a tool, a design, an article, a note. A new type means one file, not a rebuild.
- A media library that produces exactly the image sizes a browser really asks for.
- Modules for the things that make this site what it is: weather station, LoRaWAN gateway, tools, 3D designs, blog.
- All the invisible small print that tells you whether someone finished the
job: sitemap, feed, search, redirects when an address changes, a maintenance
mode with a proper
503instead of a blank page.
And one thing you notice best because it is missing: there is no cookie banner here. Not out of sloppiness — there is simply nothing to consent to. No trackers, no external fonts, no ad networks.
What it is not
A product. There is no download, no documentation and no support, and that is deliberate: CheetahCore knows exactly one site and is good at exactly that. Anywhere else it would be a nuisance.
The catch — because there is one
If you build your own CMS, you are also your own security department. No vendor ships a patch when I overlook something. Which is precisely why every change runs through a test bench of a good thousand automated checks, and every change gets a line in the logbook: what changed, why — and what was deliberately not done. That is the insurance policy you write for yourself.
Was it worth the effort? The answer is the page you are standing on.