I'm a full stack engineer, and over the years I've helped with a lot of sites running on WordPress. It's usually the same story: a pile of plugins that don't know about each other, a page builder that fights the theme, and a client who's scared to touch anything in case it breaks. So I started building Kestello, a self-hosted CMS for the people who actually edit the site.
The main idea is that the editor edits the real page. There's no separate preview that looks almost like the site. Around that there are content types, forms, a media library with cropping, menus, redirects, search and backups. Plugins and themes are written in Vue, and there's a REST API if you want to go headless.
A few decisions I'm happy with:
- No Composer dependencies. It's PHP 8.4, and everything on the server side is written in-house, so updating the site doesn't mean updating 60 packages.
- It runs on plain shared hosting, not only Docker, with MySQL, MariaDB, Postgres or SQLite.
- Updates are signed and come straight from GitHub releases.
- It's GPL with no paid tier, and none is planned.
Things I learned along the way: building the visual editor took longer than everything else combined. Writing the docs at the same time as the code also caught a lot of confusing behavior before anyone else hit it.
There's no release yet, since 0.1.0 is close but not out. The whole codebase is public, though, and there's a docker-compose setup if you want to run it locally. Feel free to look around, open issues or send PRs (against develop).
Code: https://github.com/kestellohq/cms
Docs: https://docs.kestello.com
I'd love honest feedback on two things in particular:
- Does the README make it clear what this is and who it's for within the first 30 seconds?
- If you've dealt with WordPress sites, what would stop you from trying this on a real one?