Loading...

Hi, I'mVinay Lal

Web Developer
and Content Creator

I've worked with Silverstripe for 5 years: the pros and cons

silverstripe

Silverstripe CMS is a PHP based Framework and CMS. It has a very flexible PHP Framework for developers and a very well regarded CMS for its CMS editors. On the downside, it is very much a developers framework (you cant install a theme for example or extensions very easily if you aren't a developer) so it's not always suitable for the DIY'ers out there. Let's look at a few more examples of pros and cons.

Pros:

  • 1. Flexible for Developers:
  • The biggest benefit I find (I'm a web designer and developer) is that it gives me a lot of freedom to make highly customised solutions. No extra functionality that isn't used or coding in the CMS (not very maintainable) to do what you want. Silverstripe is renowned for its ability to undertake highly customised coding solutions for those that choose to use it.
    Silverstripe is Object Orientated (OOP) and has some really useful functionality around Images and ways to create an object to represent any product, page, blog post, or anything you want to really. An object, after all, can be used to describe any kind of 'thing' you may need to show, create or edit on a website.
  • An example, if you are a programmer, is that you could build a website for a cafe and the owner says "I want to be able to edit the menu as and when I need to". While I'm sure you can do this is other frameworks as well, it's very quick in Silverstripe. This is how you might choose to execute it in Silverstripe using OOP.
    • 1. Create a Menu Object for example, a 'Pizza Menu' by creating 2 short php files.
    • 2. Create another Object (one file) that represents a Menu Item on the above menu which might be a 'Calzone Pizza'. In this file we can add some 'attributes' of a Menu Item like a 'price', 'description', 'display image', 'options'.
    • 3. Associate a Menu Object with a Menu Item Object with a few lines of code. Not hard.
    • 4. Run a Silverstripe URL tool which will take the PHP you've written and create 2 new tables in MYSQL (relational database) and any associated fields or attributes as we described in point 2 above.
    • 5. And your sort of done but to be more useful let's also allow a CMS user access to these objects so they can create, edit and manage their menus into the future by creating one more small file.
    • 6. The objects are available in your templates also in order to be able to loop through them and present a menu to the user.
    • So, if you're a developer then you could see how creating any type of object you want, having Silverstripe build the database for you, use Silverstripes own functions to easily access them in the template for you to display to a user and allow CMS editors to edit the menus that within the space of say 20 minutes (depends on you) you have satisfied your clients custom functionality.
  • There is a little more to it than this but those are the main parts and serve to illustrate it's flexibility.
  • This isn't meant to be a tutorial but while we are close to it there are some good points to be made here. As Silverstripe tutorials go there are a few out there but beware of the date of them. Silverstripe has been through 2 large overhauls in the 5 years I've been using it and tutorials from version 2.X and 3.X should be treated with caution. For best results try to use Silvertsripes own tutorials.
  • Also, while Silverstripe has some good tutorials the documentation is definitely a little lacking. This has been one of the sore points for being a Silverstripe developer over the years but it has been improved over the time I've been using it for sure. Below I'll discuss this in more depth in the Con section.
  • 2. Great CMS for non-developers:
  • So above we learned that any custom object a developer chooses to make available to the client can be done easily. What this means for a CMS user is that you have a dedicated and intuitive understanding of where to edit content.
  • Here is a 5 minute video showing you a real life example of how a CMS user might edit custom objects in Silverstripe CMS after a developer has created this functionality for you. It gives you a good idea of the ease of use of the CMS use of Silverstripe for non-developers. You can view the video here.
  • 3. Small Community using it:
    This point is actually a Pro and a Con. I've included it here because the Pro side of it is that as a developer you have less competition and can become a player in this space more easily. Silverstripe is really only common in New Zealand and Australia with some pockets in England and Germany. I probably missed a couple countries but the point is that it's not super common like Wordpress, Drupal, Joomla or Laravel.
  • 4. Can handle small or large sites:
    Silverstripe can deal with large sites or small. So far I have built very small websites with it and I find it cost effective to do so but I am a one-man development house so it perhaps would be different for a larger company as my overheads are relatively small.
    I also sometimes use templates to base my designs off of so time spent on design can be kept to a minimum, making you more money. I find that this also allows me to produce websites with vastly different design feels to them. I prefer this as if I were to design everything myself I would end up with very similar designs across multiple projects. I feel that this gives me the ability to offer clients something that isn't too similar to the previous client.
    Silverstripe has also been used to create some large sites. I personally worked a lot on activeadventures.com (approximately 600 pages, custom API and integration of a WP blog while converting it to Silverstripe from Joomla) but Silverstripe itself is used by the likes of some large private sites like westpac.co.nz, but you can see a full list here.
  • 5. Has an MVC type structure:
    The Structure of Silverstrip can be considered MVC (Model, View, and Controller). If you're a web developer then this means there will be a familiar structure to how it works. This is a common architecture of OOP languages in PHP. The benefit here is that you will understand where to look for your data-models and functions you can use in various places.
    Recently (in Silverstripe 4.X) the Model and Controller were made to be in separate files whereas previously they were in one. This was a move that put it more in-line with PSR-4 coding standards. It makes sense from a certain point of view to have classes in different files for a more understandable transparent structure. I find it slightly more annoying because I have to use another file but I can see that in a development team having an understandable code base, especially for those new to the team, is a very desirable aspect.
  • Here is a video describing where you can find the various components of the MVC architecture pattern within Silverstripe 4. It's not a tutorial by any means but it does give you the basics of where to find your model, your view and controller as well as a little bit about naming conventions of files in Silverstripe (ie how pages know which view to use specifically) and also a little about the ORM (Object Relation Manager) will use your Model files to create database tables for you. This is one of the nicest parts about using Silverstripe - you don't have to spend a lot of time in phpMyAdmin creating fields on tables as the ORM will do most of this work for you. Here is the video, it's about 8 minutes long.
  • 6. Is Open Source:
    Silverstripe is free to use. The company both created the Framework and is a development company in its own right. You can download it and start using it right now with no barriers apart from learning how to use it.
    It also means that if you are really keen you can add to its code base and help to add new functionality and fix bugs etc. As I said above Silversrtripe is a small community so there is room to make your mark if you wish.

Cons:

  • 7. Small Community using it:
    I see this both as a Pro and a Con. See above for the Pro side of things here.
    The Con is that it is sometimes hard to find answers to strange problems which aren't addressed in the tutorials or documentation. This can lead to some moments where you spend overly long on a problem and it can be frustrating and time-consuming. This is part of being a developer though so its pah for the course. A good tip is to make some friends in the Silverstripe development community who can help you with their experience.
    There is a Silverstripe Forum also which is a grea resource for tips and tricks and any issues using the framework that you may have - you can find it here. You can also download Slack and search for the Silverstripe Channels. Here you can talk to other Silverstripe Developers which is great for faster answers than the forum.
  • 8. Sometimes help can be hard to find:
    If you aren't active in the community it can be hard to find solutions. I tend to spend a little more time on these things than I should but I love a challenge! For those times when you don't have time to wait then definitely get on the Channel and ask a question.
  • 9. Can be a steep learning curve for some:
    Silverstripe is a medium to high-level framework meaning it isn't really suited to complete beginners to web development. Depending on the levels of help around you then it may not be the thing for you to start with but it is possible.
    In particular, if you are used to Wordpress or Joomla for example where you can install themes and plugins without being a developer then the concepts needed to build things quickly (using Composer for example) may be difficult to grasp. If you have a deadline this may blow it out of the water.
  • 10. Ongoing development:
    As Silverstripe doesn't allow you to do install themes and plugins without being a developer (or there having one within your company) it means new functionality into the future will cost you the cost of a developer to implement your desires. Silverstripe developers can cost anywhere between $60 NZD and $250 NZD p/hour so depending on the project you have it may be quite costly to proceed. Ask yourself what kind of budget restrictions you have and talk to a Silverstripe Developer about a ball-park figure. Tell them what you are trying to achieve and they will try to ask a few questions to understand the possible implementation.
    An important note is to make sure your developer doesn't just throw out a quote to you without at least asking some questions perhaps over a few emails. Over promising and under delivering is an issue when getting quotes done in the web development game.
    Feel free to contact me with any quoting needs you may have. I'm a Silverstripe Developer with 5 years experience and can help you understand the costs involved in your potential project.
  • 11. TinyMCE WYSIWYG editor:
    Don't know what this is? Its OK - it's a complicated way of referring to the piece of software that allows a non-developer to create content inside of the Silverstripe CMS.
    This isn't so much of a downside of Silverstripe but more a downside of this particular method of adding content in general. Other pieces of software haven't got a great answer to it either.
    The issue arises in formatting the content specifically - it is limited. It's best to stay as simple as possible. Here is a small example of what can be difficult.
  • WYSIWYGeditor
  • In the image above, the images and text have become difficult to align in a great way. They are all different sizes and the text hasn't been aligned very well. You could probably write something, as a developer, to alter this but an easier approach is to design templates which limit you having to format in the WYSWYG.
  • The answer to this is to use Silverstripes quick and intuitive design patterns to allow you to only input content and let the template worry about specific placement. This can be achieved and removes much of the pain in editing within the WYSIWYG.

Conclusion:

So it's a mixed bag. Have a think about your desires and needs going forward and see if Silverstripe is the thing for you.

Sources:

All material is from my own personal experience with using Silverstripe for 5 years.

Further Reading:

I wrote another post on whether or not Silverstripe is better than Wordpress which may also be of use to some. It goes through some of the same points raised here but with a specific comparison to Wordpress. Wordpress is the most popular CMS in the world and in some ways is similar to Silverstripe but using it is a vastly different experience and similar to this article it depends how you wish to use it which will allow you to decide if Silverstripe is better or worse than Wordpress.