What Would My Dream CMS Be?
When writing content, I prefer to use a CMS and I've tried a lot of them. But what would my dream CMS look like?
I was perusing my RSS reader (Miniflux) recently and I came across a really interesting post by Dave Rupert, where he was talking about his ideas for a dream CMS. As someone who's tried all the platforms , like Ghost, Grav, Jekyll, WordPress, and Kirby (among others).
So after trying so many platforms over the last 10 years of blogging, I think I have a pretty good idea of what my dream CMS would be. For me, there's 6 things that I'd want my dream CMS to be able to do well:
- Have a flexible UI
- Ability to proof read content
- Be a social space
- Cross-post to wherever I need it to
- Integrate with Git
- Be easily extensible
1. A Flexible UI
Different people like to work in different ways. Some folk like to have a really minimal space to write their content; just a blank page with a cursor. Others like to have the ability to manage all the meta data for a post from place. Maybe some people want a sidebar with the meta data. Some of those people might want that sidebar on the left instead of the right. Others might want it hidden by default.
One thing I really dislike about the WordPress editor, is that it's very restrictive when it comes to customising the CMS. You can turn a few boxed on and off in the editor, and that's about it.
Kirby, on the other hand, has this concept of Blueprints which allow for masses of customisation in the CMS. To give you an idea, here's a couple screenshots of my CMS setup in Kirby (click to enlarge):
As you can see, the UI of the different parts of my CMS are completely different depending on the context of the content I'm editing. Big tick for Kirby in terms of having a flexible UI. They're really the best of any CMS I've used in this regard.
2. Proofreading content
When I'm writing a post, I prefer to get the entire thing typed out, then I go back and proofread it for typos, grammar mistakes, or poorly structured sentences.
Now, writing in English isn't one of my strengths, so I just do my best in that regard. But it would be great to have a little computerised butler to help in this regard. Maybe before hitting the Publish
button, it would say something like:
Oi, Kev, you sausage; there's a glaring typo here [...snipped of post with typo]
Even though I proofread all my posts before publishing them, I know what I've written, so I tend to read the post very quickly, and because of this, I miss obvious mistakes most of the time.
I know there's services like Grammarly, but I've never really managed to get on well with their UX. Having it all in the CMS would be great.
3. Be a social space
Us humans are social creatures, and many people who maintain a blog tend to do it for social reasons - to share their thoughts and opinions. So being able to socialise your content is very important, I think.
Having the ability to add features like a commenting system, ActivityPub and Webmentions easily would be a huge bonus.
Think about it. If a CMS existed where you could upload the software to your server (or click Buy
on a managed service) and have a place where you could:
- Write blog posts and short-form micro posts
- Syndicate them to the Fediverse
- Have replies/interactions come back to your site
- Engage with those people who have interacted
Your site then becomes your entire social space, from a single place. That would be fantastic. There would be no need for services like Twitter, or Facebook, or Threads, or even Mastodon. We'd all have our social space that federates and integrates with everyone out of the box.
WordPress has an ActivityPub plugin, and Ghost recently announced that they're going to embed ActivityPub into Ghost, but things like Webmentions are still a nightmare to setup and manage.
4. Cross-post to wherever I need it to
Having a single place that's your entire online social place would be cool, but not everyone is going to want that. Some people will still want Twitter, Facebook et al. For me, I'd probably still want Mastodon as I really enjoy the community there.
So I'd like to be able to cross-post out of the box in my dream CMS too. EchoFeed is fantastic, but we shouldn't have to rely on 3rd party services like EchoFeed to do something as simple as cross-posting to social networks.
I'm not a developer, so I don't actually know if cross-posting is a simple problem to fix, but let's just go with it, ok?
5. Integrate with Git
You probably saw from the screenshots above that I have Git controls within my CMS. That's because I use Git as the backbone for managing my site (I have a post in draft about this).
It was simple enough to add this support to Kirby via this plugin, but Git is so widely used now, I think that any dream CMS of mine should have it from the start.
By having Git fully integrated into a CMS, it could also act as a backup (although you should still keep good backups). Imagine if you made a change to something and decided you wanted to roll it back. All you would have to do is click a couple buttons in your CMS and you could roll back to your last Git commit.
6. Be easily extensible
This one is a biggy. My CMS is pretty close to ticking every box in this list, and that's why I love Kirby so much. However, it's been a very steep learning curve for me to get here. I'm not great with PHP, so it takes a lot of research (and trial & error) for me to add new features.
Things are getting easier as I gain more experience with Kirby, but someone with little to no technical experience would be shit out of luck.
What we need is a way of adding certain features with the click of a button. Need an RSS feed? That's a checkbox to enable. What about email subscriptions? Cool, paste your MailChimp API key here and you're done. Oh you want a contact form? That's fine, just paste your email address into this field and we'll do the rest.
I know this isn't a simple problem to fix, but for my dream CMS I'd like it to be that simple to extend the platform. WordPress probably comes the closest in this regard, but their plugin ecosystem is chock-full of bad and insecure code. Ideally, this would be centrally managed. Quality over quantity, yanno.
Final thought
Ooof, this ended up being a long one. Sorry about that, but it's something I'm passionate about.
Like I said above, I've pretty close to building my dream CMS in Kirby, and I'm noodling on adding some social "stuff" here for a while. So you never know, I may end up being able to tick all my boxes at some point in the future. In the meantime, I'll continue enjoying what I've built here in Kirby.
What about you? What would your dream CMS include?
Want more?
So you've read this post and you're still not satisfied? Ok then, here's some other stuff for you to do: