Monstra: a flat-file CMS

Originally posted on

I can’t seem to get enough of these flat-file CMSes lately! While I enjoy WordPress development, I think we can all agree that WordPress can be overkill for many clients’ needs. To that end, I’ve been playing around with a new flat-file PHP CMS I found recently, called Monstra CMS.* *Just because I haven’t played around with a ton of flat-file CMSes lately (Stacey and Kirby are the only ones I’m truly familiar with), you may see comparisons to them.

Before we start

There are some things you need to understand when using Monstra: first and foremost, it’s a CMS for developers. The WYSIWYG editor is minimal and expects the editor to have knowledge of HTML. Creating themes and snippets is easy, but requires knowledge of minor PHP. You could hand off a Monstra-powered site to a client, but I would plan on making it completely idiot-proof and still expecting something to break via the editor occasionally. Of course, when it comes to breaking things, clients will always find a way ;). Now…

The good

Monstra admin page

The bad

Some questionable calls were made; things like recreating a WYSIWYG editor instead of using the robust and extendable TinyMCE, for example. I understand that it’s a great learning exercise to recreate something from scratch, but the WYSIWYG editor of Monstra feels incomplete and a bit cumbersome, in my opinion. I couldn’t see handing this off to a client with the editor in its current state. Compared to Kirby, Monstra’s code base is a bit more schizophrenic. Don’t get me wrong; it’s well-done, and everything works as expected. It’s just that Kirby’s structure was so well-defined and open to extendability. Kirby’s code was a joy to dig through and extend, and (coming from a junior back-end developer, at least), Monstra’s code feels a bit less structured. I honestly think that comes down to Kirby CMS’s use of the Kirby PHP toolkit; that thing abstracts away a ton of complex PHP code, kind of acting like a jQuery for PHP (sorry, this is a Monstra review, not Kirby!). I honestly feel bad writing about those first two points; it’s obvious that Monstra is a newcomer to the CMS scene, and these things can easily be fixed in the future. But so it goes.


At the end of the day, Monstra is a solid choice for simple site development. Its early development cycle shows in places, and the lack of documentation means that you better be comfortable with PHP development if something breaks, but I’m confident that Monstra can hold its own against other, more mature CMSes. If you’re looking into flat-file based CMSes, I’d keep my eye on Monstra. site: Monstra

Comments? I'm @dstrunk on Twitter.