views:

841

answers:

5

Although I haven't thought about deploying it on my own site, someone I know sent me a link to a CMS called SilverStripe that I've never heard of before. I read their site, looked at and played around with their demo, and so on. It looks like it's a CMS backed by a custom PHP framework that they call Sapphire. And from what I can gather on their website and using their demo, it potentially might be as good and easy as they say (once you get past any learning curve, which appears to be small, considering it looks a lot like other PHP frameworks and CMSes).

Has anyone here ever deployed, maintained, or developed a CMS using SilverStripe? If so, could you shed some light on it, from a developer's point-of-view?

I also found this earlier question about SilverStripe here on StackOverflow, but I'm more interested from a development point of view than a user or administrator point of view.

+11  A: 

I used Silverstripe to develop a heavily trafficked site for a company in the multimedia and entertainment industry. Most of the work was done a year ago, but there has been on going enhancement and maintenance work. I can give you specific details if you want -- DM me on Twitter or email me.

In short: if I could go back in time and do it over in another PHP CMS/Framework, I'd probably have used Drupal.

It could work well for a simple site that's not too deep and not too wide. But any site that has a complex IA will likely run into trouble.

Some issues I ran into:

  • Documentation was incomplete, fragmented and in many cases, non-existent.

  • The administration interface quickly becomes untenable with a site becomes wide and deep. They load every pane via javascript, and things slow to a crawl on a slow computer. (com. wiki note: fixed in 2.4)

  • Silverstripe is incapable of having URLs beyond the first level. Meaning, they only allow urls like /about and not /about/team. You'd need to do /about_team. (wiki note: fixed in 2.4)

  • The separation between Sapphire and Silverstripe is tenuous. Although an attempt has been made to loosely couple the two, it's difficult to truly separate them. (note: much better in 2.4)

  • Every major content type exists on the site tree. Silverstripe is a strictly page based CMS. For example, when creating blog posts, each individual blog post is an item on the site tree. This makes it impractical when scaling out a site with hundreds of blog posts. (note: fixed in 2.3 - ModelAdmin)

  • Frankly, it's slow. The admin is slow. The front-end is slow. opcode caching helps, but it's still slow. (wiki note: better in 2.4)

  • The templating system is weird. It allows you to use custom HTML, which is nice, but the template tags are a little limited. An if conditional in a template, for example, can only except a single AND or OR. You can't chain multiple ones together.

  • It's buggy. During the course of development, I fixed at least 10 bugs in Silverstripe core. Bugs I submitted to their bug tracker were not fixed for months, even when the fix was simple.

thedz
Not only can I vouch for this, but I can also vouch for the balding that has occurred on his head as a result. ;)
cpharmston
Maybe Silverstripe has come along way sense you used it, but now that they are onto 2.3 and soon 2.4 many of these issues are no longer present. Things do not have to be page based. There are extensions such as DataObjectManager that allow you to easily manage 100's of items associated with one (or more) pages. These things can all be overcome by makeing different implementation decisions. Maybe give it another look for your next project.
drye
+3  A: 

Hi thedz, thanks for your comments - it is useful to know what the SilverStripe project should focus on. You'll be pleased to know that the issues you raise are areas that we've been working on in serious ways recently:

Right now we're a few weeks away from having a 450 page book on SilverStripe for developers that will greatly improve our documentation, (see http://www.silverstripe.org/silverstripe-book/) and it will explain why our templating language is intentionally simple.

The work on the upcoming 2.4 release relates to performance, and may help in terms of separation of CMS/Sapphire (and removes the jsparty folder) and solving other bugs you're encountering. In terms of supplying us with patches/fixes, thanks very much; being an open source project we depend on that. In terms of your slowness and bugs, please continue to raise the issues in detail at open.silverstripe.com so that they get visibility and can be worked on by the core team or other community members :)

Sigurd, SilverStripe.

Current version isn't 2.4, yet. And the demo on opensourcecms.com is really slow.
stesch
Version 2.4 has now been released.
Raithlin
+2  A: 

2.4 is amazing by the way. Anyone wondering about SilverStripe now should not hesitate. Documentation still a little weak, but I cannot bring myself to use WordPress, Drupal or Concrete5 anymore.

Now, being that the documentation is weak, please get the SilverStripe book and review the 2.4 changes/upgrade wiki page: http://doc.silverstripe.org/upgrading:2.4.0

ylluminate
A: 

And because I'm a "newbie" I could only paste one link in the previous reply so, continuing:

As well see the book errata, although those 2.4 notes were moved to the previous link: http://doc.silverstripe.org/silverstripe-book-errata

Good luck and enjoy. I truly enjoy both the power and ease of this system. The only thing I would like to see added is frontside inline editing of content, but the CMS is just killer on the back and cannot be ignored.

ylluminate
+1  A: 

I have done few SS sites nothing big, and a application that is like a small CRM.

I never liked any of CMS solutions, id rather build one on top of Zend FW. But SS is different and to be honest the more I work with it the more i like it. I would be more happy if it was on top of Zend FW :) but...

There are some limitations with the templates as mentioned

The templateing system is weird. It allows you to use custom HTML, which is nice, but the template tags are a little limited. An if conditional in a template, for example, can only except a single AND or OR. You can't chain multiple ones together.

plus you cant include in the already included parts.

I like it cause u dont spend much time in the admin but more coding. And it is maturing fast, so I will put my faith in it.

Dr Casper Black