GentleCMS Development Log: Part 6
I’m beginning to think that perhaps GentleCMS is badly named. It’s a content management system, yes, but it’s also a lot more. It would probably be more accurate to call it a content management framework.
I’ve pretty much finished the main stuff for the backend. There’s some polishing left to do still, but without a frontend in place, further work on the backend code is going to inevitably end up getting out of touch with reality. I really need to get the code to the point where frontend development is sane, and as quickly as possible.
I’ve almost got the second rewrite of the theming code done. (Seriously, I don’t think there will be even a single component that hasn’t been rewritten at least once when I finally release this thing.) I’m going to keep the internal templating code exceptionally simple for the time being because at this point, it’s looking highly likely that I’m going to end up writing a custom templating system, probably based on Kid. (I’ll release it as a separate project most likely.) It’s not necessary yet though, so in the meantime, I’m just going to stick with very, very simple Erb templates so that any work I do is eventually going to be reusable. In any case, GentleCMS doesn’t really care too much how the templates are implemented, and as an end user, you’ll be able to pick and choose without any fuss.
Originally, my intention had been for GentleCMS to be a Rails application which was able to host other applications. That plan had a lot of shortcomings, not the least of which was that I really didn’t think a Rails application was going to be a good way to distribute, deploy, or upgrade things. Gem-based installers like the one Typo and other projects have recently started using would alleviate some of the pain points, but upgrades would still be problematic.
But beyond that, GentleCMS is nothing like Rails. Rails’ sweet-spot (quickly producing small database-backed web apps) is that which you should probably never try to do on GentleCMS. So, aside from hype-factor, why on earth would I want to tie this thing into Rails? Rails isn’t a webserver, and really, a webserver is all GentleCMS needs, not a full-blown framework, because GentleCMS is already the framework.
Which brings me to the option I’ve actually decided to go with: hooking directly into Mongrel. This gives me a lot of extra options, like for instance, multithreading like Merb, as well as a lot more control. Plus the performance is a lot better.