Developing websites in SilverStripe CMS

We're talking with Darren and James, two of the senior SilverStripe developers here at Solnet, to find out more about what they do and their experiences designing and developing websites using  the SilverStripe content management system (CMS).

 

To get started, how long have you worked in SilverStripe and which other Content Management Systems have you worked with?

Darren - My experience with SilverStripe began with building sites in SilverStripe 2.3 in 2009. Prior to that, I had primarily been working with Joomla!, Drupal, and WordPress sites, and have also worked with eZ Publish, Magento, Typo3 and a smattering of smaller bespoke solutions.

James - I began writing in SS2.2 in about 2008/09 similar to Darren.  I’ve also done my fair share of completely custom sites in raw PHP as well as WordPress.  I’ve built enough custom work in WordPress to have a fairly good in depth knowledge of WP’s grimy underbelly – a mishmash of legacy code, obsolete features and evidence of a lot of unmoderated hacking.

 

What do you like about SilverStripe – how does it compare with other systems that you have used?

SilverStripe took a different tack from other open source CMS solutions available at the time I adopted it in 2009, in that it was a toolkit for building a CMS that came with minimal functionality and a set of tools for building any extensions required by a client’s business.  At that time, completing most solutions in a competing CMS product was an exercise not only in customising poorly maintained third party plugins, but also in turning off or hiding a large number of unwanted features.

Developing customers’ projects in SilverStripe lets you plan a project around a set of existing modules, identify the areas that will require bespoke development, and then configure and develop the solution with a high degree of confidence that the end solution will work as expected and be secure.

 

Why should an organisation consider SilverStripe over other popular options like Drupal, Wordpress, Joomla etc?

Each system has its own strengths, and each project should naturally consider the choice of CMS according to the goals of the project.

WordPress is aimed squarely at blogging; if the project’s goal is simply to expose a blog, this is an ideal candidate.  Drupal and Joomla! are good candidates if the goal of the project is to enable an organisation staff member with no development knowledge to assemble a website from free third-party modules at no cost, where it is OK for the branding and behaviour of the website to be inconsistent and security and support are not concerns.

If the goal of a project has specific custom functionality that needs to work in a particular way, set markup that must be used (for example in a project where the design, HTML/CSS and CMS are developed by separate agencies), or involves custom integrations with uncommon or custom APIs, SilverStripe will almost always work out the most cost effective CMS option.  

 

From a developer’s perspective what are some of the advantages of working in SilverStripe?

Darren - see above!

James - I find that building PoC’s and bespoke solutions is easier in SIlverStripe as the framework handles all of the repetitive boilerplate work and then gets out of the developer’s way.

 

From a marketing perspective, why would I choose to use SilverStripe?

This article might help https://www.cwp.govt.nz/plans/financial-case/

 

Does Silverstripe just handle simple websites (brochureware), or can it handle transactional sites like ecommerce?

Darren - Some aspects of scaling in SilverStripe have always been well-handled, for example sessions can be shared via a database, and both databases and PHP processing can be scaled independent of the CMS.  Third-party solutions for SilverStripe V3 have provided message queue processing and file delivery via CDN, which was the missing piece of the high-availability transactional puzzle.

SilverStripe V4 moves these scale issues into the CMS itself rather than handled by third-party extensions.

James - With SS4 there have been some significant changes to the way, in particular, assets and files are handled. Up till v4 files are assumed to be stored on the local filesystem.  This leads to scaling issues around synchronising files between nodes on a cluster.  With v4 however, this assumption is no longer the case.  The file and asset handling is abstracted and the developer can store files and assets in a third-party location such as the cloud or a network store or SAN. Now the CMS can be clustered to as many nodes as required without the syncing problem because each node is talking to the same backend location for it’s hard asset store, similarly to each node talking to the same back end database.

 

Which well recognised brands are using Silverstripe already?

Darren - The NZ Government would be the biggest one with CWP.

https://www.silverstripe.com/success-stories/

James - Some other brands off the top of my head, Air NZ, Westpac, Skinny, The Obama Campaign, Waikato Rugby Union, to name but a few.

 

Is there a standard best practice way of structuring a SilverStripe website?

Historically SilverStripe has represented various page layouts as independent templates, and there has been a development cost per-template.  However most modern implementations are typically built from smaller sections of reusable layout and content, allowing the content editor to build up any number of page layouts.  This moves the development cost from per-template to per-block, which typically works out about the same, but any number of layouts are possible by combining blocks in various ways.

Taking this separation of layout and content a step further, future implementations of SilverStripe-based sites are expected to treat the CMS mainly as a content repository rather than a template rendering engine, securely providing content using API methods such as REST or GraphQL.  This SilverStripe-powered content API would then be consumed by any number of targets – websites using “web app” frameworks such as React or Angular, mobile applications, IoT devices, “smart” TV applications, “push” notifications to social media channels, even things like integration into bus shelter ad systems and point-of-sale systems.

 

How complex is it to become a SilverStripe developer? How would you go about this?

Darren - It is extremely difficult and nobody should attempt it, just leave it to the experts at Solnet, chur!!!!  

James - Sing it brother!!! 

Seriously though, SS uses industry best practices so is straightforward for an experienced dev to pick up.  They provide excellent free online training:

https://www.silverstripe.org/learn/

 

What are some of your key recommendations for businesses looking to choose the right CMS for their business?

Darren - Do not start with technology or any other aspect of a solution, if it is at all possible; instead, start with defining the problem or outcome, and seek advice on that basis. 

James - I strongly agree with this.  Define the problem and then build a solution to the problem is much preferred to choosing a solution then shoe-horning the problem into it.

While it is possible to define the scope of your web-connected project via committee, you will almost always find that you will get a better result starting with consultation and advice from a professional in the field.  Committee-led design phases will nearly always end up with a watered-down solution that isn’t the best fit for solving the problem (remember the NZ flag referendum?)

 

Where can SilverStripe websites be hosted?

Typically SilverStripe is hosted on LAMP (Linux-Apache-MySQL-PHP) servers. The SilverStripe CMS can also run on various substitutes for the base LAMP ingredients, for example:

* OS X on Mac, Windows, or FreeBSD instead of Linux
* Microsoft IIS or nginx webserver instead of Apache
* PostgreSQL, SQlite3, Microsoft SQL Server, MariaDB and several other databases instead of MySQL
* HHVM instead of PHP

This covers almost every popular hosting platform in existence, including AWS, Google Cloud Platform, Heroku, Digital Ocean, Microsoft Azure, and non-cloud VM or ‘bare metal’ hosting.

 

SilverStripe is an open-source CMS – what does this mean exactly and are the advantages or disadvantages in this?

The principles of open source are well covered at https://opensource.com/resources/what-open-source

 

What are the typical steps involved in migrating a website from another CMS to Silverstripe?

Basically the same as above – identify a set of display blocks needed to assemble the site, determine which blocks have functionality like search, design the database needed to capture the site’s content, design and build the CMS interface to enable management of the content into the database, build any content APIs needed, build the content blocks needed to output the content, design a migration of content from the old site’s database into the new database schema. 

 

How secure are SilverStripe websites?

SilverStripe websites are typically secure – see:

https://www.silverstripe.com/platform/features/security/

 

Can all content types be managed in SilverStripe?

‘All’ is a pretty vague word!  No, you can’t store physical books in SilverStripe, but if you can digitise it and put it into a database, you can manage it with SilverStripe in some way.

 

How easy is it to integrate SilverStripe websites with third party tools like MailChimp, Event Bright, Facebook, YouTube, Hubspot etc

Darren - Because SilverStripe is a toolkit for building CMS solutions, most integrations are straightforward.

James - Additional to this, most common integration requirements have already been provided with community built modules.  Because SS is an Open Source environment, a developer can leverage the effort from other community members directly if their solution meets the requirements, or otherwise “Fork” their solutions, and add the missing features. Standing on the shoulders of Giants, if you will.

 

Finally, how can Solnet help organisations looking to manage their content effectively?

We can help them identify what problems need solving, how content management and digital transformation can best help their organisation within their budget, and then implement the solution for them.  We can also support and maintain their solution going forward.