Introducing SlothCMS

Illustrated two toed sloth's head and arms with claws

I love side project unfortunately I can’t finish them. By making this one public and partially built I am hoping to hold myself accountable and finish it.

 

SlothCMS is a hybrid between traditional CMS on the administration side and static site on the visitors facing side. It’s a bit weird concept but it makes sense for visitors, the site is fast because there are no scripts on the server to execute, and for administrators because there’s no need to generate HTML pages offline with Hugo or Jekyll and them upload them.

My decision to start this side project was motivated by five things:

  • I haven’t done anything serious on the back-end in couple of years and experiments are always good
  • WordPress’ Gutenberg and fighting with Drupal’s import from WordPress
  • curiosity how CMSes work
  • curiosity how far I can go into Content Management and Information Architecture without being limited by capabilities of CMS.
    • SlothCMS will have some limitations but it’ll be easier for me to expand its capabilities
  • I am a language nerd and I haven’t encountered an acceptable solution for multilingual websites yet apart from Drupal

Language and framework choices

Since SlothCMS is quite modular, visitors facing part will work independently of administrators facing part, front-end and back-end are naturally separate as well. For the front-end my framework of choice was Vue.js because I haven’t tried it yet. I have experience with Angular, AngularJS and React.

For a moment I have contemplated using Custom elements and state management system like Redux but decided against it. Instead for state management SlothCMS uses Vuex which is the natural choice for state management with Vue.js.

On the back-end SlothCMS does NOT depend on any PHP framework because at the moment I don’t know how to use them properly. It’s been years since I’ve tried anything a bit complicated on the back-end and untangling framework wasn’t high on my priority list. If I wanted a career as a back-end person I’d at least try but at the moment I am happy Front-ender.

Support for post types

At the time of writing this post I plan as default only posts. At first I was contemplating if there should be a default post type at all because I wanted to give more power to the administrator. I am aware that by this approach I would’ve and will scare away humans who aren’t exactly content nerds. But because I needed test data, thus post is a default post type and can be deleted.

My philosophy behind post types is quite different compared to WordPress where you need to register post type in code inside your plug-in or theme. It’s closer to Drupal where you can register new post type in administration. The functionality to add new post type is in the settings section of SlothCMS.

“Micro post types”

On a lot of website you might have noticed that there are boxes which are unique to a series of posts, links to other articles in the same series, or at the end of each and every post, author box or “hire me” box.

There are plug-ins and themes on other CMSes which handle these but to me it’s content. Content which CMS should be able to handle from the get-go which means that SlothCMS will have support for micro-copy in general. For the time being my working name is “micro post types” but it probably will change.

Templating

For SlothCMS I am making its own templating language for making themes and for using micro-post types. At the moment my base languages are Twig and FreeMarker because they are familiar to. The former I know from the learning Drupal and the latter I use at work.

When I’ll have somewhat usable generator and language for I’ll write about it but at the moment I am a little bit stuck with administration.

Conclusion

In this post I introduced the technicalities of SlothCMS. I wish I could dive deeper into UX part because that’s what interests me the most but I am a bit stuck at the prototype phase and hopefully I’ll write a post about UX side of things before the end of May.

SlothCMS API repository

SlothCMS FE