Exploring Silverstripe, the heavy-hitting CMS/CMF for savvy programmers
Programmers who work with CMS tend to fall into two categories: those who love working in feature-rich environments, and those who prefer a blank page, driven by an API that respects proven practices such as object-oriented programming and the MVC model. SilverStripe is clearly geared toward the second type.
Some CMSs attempt to please them both (for example, Concrete 5 and Drupal); sometimes this ends up only complicating things, resulting in a mish-mash of modules which have to be deconstructed, worked around or modified, or backend strategies entangled in the administrators’ front-ends. On the other end of the spectrum are the classic, unadulterated frameworks such as Laravel, Symfony, Zend, Codeigniter, YII, to name a few.
SilverStripe, and others such as MODx, Expression Engine and Processwire, are trying to make their mark and become recognized brands in the development world. They are frameworks, but provide a user-friendliness that would have to be coaxed out of the aforementioned tools.
SilverStripe, which was created in 2000 under proprietary licence, is now available in open-source code (through BSD licence) and has become an autonomous framework with version 3. This “Kiwi” CMS has made a name itself as it powers the NZ government’s websites. At the time of the writing of this post, version 4 has just been launched.
For transparency’s sake, I would like to make it clear that I’ve never used SilverStripe to create a website. My knowledge and analysis are limited to what I was able to glean by installing SilverStripe and checking out several videos on their website.
Let’s start with the documentation. SilverStripe’s designers didn’t hold out in this area. It’s clear, well-structured, perhaps with even a bit too much hand-holding. The sense is that this eponymously named company seeks to attract programmers who are just starting out. These days, competition between Laravel, Symfony and the others is fierce!
The site is attractive, they promise ease of use, and blissful users as well as designers. So does it live up to the hype?
On this front, no real worries. SilverStripe ensures that all the prerequisites for installation are included. The instructions are technical and you get the sense that SilverStripe is a tool for the pros. I had a few issues with MAMP PRO: SilverStripe didn’t like MAMP’s generic variables in the php.ini file. After a few tries, SilverStripe let me work around it, and allowed me to continue.
Once in the system, I was pleasantly surprised by the simplicity of the interface. The source tree is accessible right off the bat, and the preview pane provides a direct view of the page as you edit it. This will please administrator users!
SilverStripe is well equipped to display the interface in languages other than English. Surprisingly, version 4, just like the one before it, is still plagued with incompatibilities at the editing level.
Image management is based on a library, not unlike Concrete5 or WordPress. The interface is somewhat outdated, but functional nonetheless. In contrast with Concrete5, which dazzles on this front, you can’t change a photo once it’s been integrated in the library. However, organizing photos is simple using the directory system. And some little mysterious quirks: an inability to download an image here and there, or thumbnails that don’t get created. Were they a bit too hasty in launching the latest version, or is it simply my local installation that’s to blame?
On a positive note, the CMS automatically renders images in the most compatible formats for different devices, but there is no direct control over this within the administrator interface. I guess that the API offers the necessary overrides. A few extensions do exist, but I don’t know whether they’re actually viable.
User management is also hassle-free. Besides the users themselves, you can also create a complex hierarchy with the help of roles and groups. The interface isn’t completely translated.
What about extensions?
Like the rest, the presentation is spartan and clearly targeted towards programmers.
It’s pretty easy to convert an HTML template to a SilverStripe page. The API takes care of creating additional fields. You program a site the same way you would using a standard framework.
And that’s it…
That’s pretty much it as far as SilverStripe’s basic user interface goes. The CMS is totally basic. The rest has to be developed or added by a programmer. Even language management has to be done by activating a third-party module, which unfortunately isn’t native to SilverStripe. The same issue comes up with Wordpress. SilverStripe’s strength is its API. In short, it’s a pretty good, basic toolbox; the rest is up to you. SilverStripe has it’s own ORM (object-relational model) and rendering engine similar to Twig’s, and its MVC methodology is easily understood by any programmer who knows his or her stuff.
You quickly get the sense that SilverStripe is designed for sites that require a lot of customization and which will be built from the ground up by one or more programmers. The company claims that their solution was developed for demanding sites of which optimal performance is expected. Perhaps that is so, but I really can’t say, given my limited experience with this CMS. Its administration interface is sure to please. That said, it’s not new and novel; in fact, it seems somewhat behind the times. Without wanting to disparage this CMS, let me just say that it’s clear that this system is a player on an already crowded field. It does have its own niche, though without offering more than the competition. A programmer who takes the time to master the API will likely then want to make it their main work tool. It all comes down to preference. Which now brings us full circle to the challenge at the beginning of the article. The choice of one solution over another will be influenced by a number of factors, some of which are completely subjective. Certainly, none of these are reasons to not try SilverStripe. Too many programmers only have one tool in their toolbox, and see all problems as being solved by this one tool. So – some advice to the pros who favour the blank-page solution: SilverStripe deserves some notice – well structured documentation awaits!
Feel free to share your experiences with SilverStripe with us!