Sandstone Preview: Introduction
December 17, 2007 – 11:59 amOK, I’ve been MIA for a bit - working, writing, and traveling (not necessarily in that order). I’ve been thinking about the direction of the blog while I’ve been away, but I’m not yet ready to make any drastic moves. In lieu of that, I’m going to spend a couple of posts between now and the end of the year talking about Sandstone (thanks for the kick in the pants, Justin!) This post will serve as the introduction - I’ll get into the technical stuff a little later.
Sandstone is a pluginable CMS for Rails applications. I developed it in response to a particular need - I often build Rails apps for a given purpose (purely hypothetically - tracking space voyages by monkeys). During development, someone will point out that a CMS would be very useful; while the bulk of the app is dedicated to tracking those monkeys’ trips, I also need to provide a sizable articles section (detailing the history of monkey space flight), or whatever.
In my past PHP life, I’d just slap a third-party PHP CMS onto the application structure. Given the lack of consistency and standards in PHP apps, they generally fit together pretty easily. With Rails, though, it’s not so simple. Distinct Rails apps require separate app servers, and can’t easily live in the same directory structure without a lot of work. What I and some co-workers decided to do was expand on the plugin approach I used for earlier projects - and thus was born the resourceful plugin concept.
Essentially, the idea is that you can drop a plugin into an app and immediately have access to a fully-realized set of (RESTful) resources. For Sandstone, those resources are Pages, PageTemplates, and the like; for another resourceful plugin they might be Threads and Posters. This is nothing new, of course - restful_authentication and the like have been around for quite some time. Where resourceful plugins shine, though, is in maintenance. If you drop version 0.1 of Sandstone into your app and customize it (which we make easy to do), you can upgrade to version 0.2 and keep all of your customizations*.
How is this possible, you ask? Stay tuned to find out.
* Of course, there might be breaking changes at major version numbers - but we plan on keeping those to a minimum.


One Response to “Sandstone Preview: Introduction”
Happy to provide a kick in the pants when needed! Now I just need someone to do the same for me…
By Justin Blake on Dec 20, 2007