WellingtonNZ.com is the storytelling engine for Wellington—a platform designed to support the visitor growth and economic development of Wellington City and the wider region. It provides information for an audience of international and domestic visitors, workers, students, businesses, and investors, to attract them to the creative heart of New Zealand and ensure a long stay.
The Wellington Regional Development Agency (WREDA) is the organisation tasked with making the Wellington Region wildly famous. When WellingtonNZ.com was originally designed in 2014, it brought together seven separate sites to radically improve user experience, increase audience engagement, and find efficiencies for WREDA.
During the five years since its launch, the site has seen continuous growth and investment to optimise the user experience, add new functionality, and create templates for campaigns, subsites, and new content to expand its capability.
WellingtonNZ.com is one of the oldest and largest SilverStripe codebases. In mid-2018, DNA and WREDA embarked on a SilverStripe 4 upgrade of the site.
A timely investment in the platform
DNA have managed more complex codebases (such as Skinny Mobile), but the codebase this upgrade covered was vast, including:
- Numerous APIs including EventFinder, TradeMe, BookIt, MetService
- Multiple subsites including Venues Wellington, Wellington Regional Trails, Hutt Valley, and Kapiti Coast
- Specific search indexes including Events, Accommodation, and Shopping
- Over 40 content block types, 26 page types, and 19 listing types
- Over 300 template files
- CMS customisations
- Chinese and Spanish translations
- Other bespoke functionality for WREDA
As the site had grown significantly since its launch, there were multiple aspects of the platform which had started to become problematic. Over time, DNA had re-worked content management to capitalise on using content blocks and decommissioned some functionality when it hadn’t delivered enough value to WREDA or users.
A major upgrade meant that DNA could further re-work these areas alongside the upgrade and ensure that this effort was as efficient as possible. It also means that coming out of the upgrade, WREDA has a more streamlined codebase, giving them the best opportunity to continue to benefit long term from their investment.
For other clients, DNA has recommended starting with smaller projects to upgrade to SilverStripe 4 before embarking on larger scale and more complex projects. However, with WREDA's roadmap of work for 2018, it was best to upgrade the project before DNA looked to add additional functionality for the recently released Wellington Regional Trails and Hutt Valley content.
Planning the upgrade
The upgrade was scheduled to work alongside three other projects for 2018: Wellington Regional Trails, Hutt Valley, and the Wellington Advent Calendar. The first two projects relied on SilverStripe 4 as a base to build on. DNA organised one of their development squads to focus on the core upgrade, while another squad worked in parallel, building out the new functionality for Wellington Regional Trails.
Once the SilverStripe code work was close to finished, both squads could test a wide range of features relatively quickly and find issues that had inadvertently cropped up, and the project squad could continue to deliver their project once the SilverStripe 4 upgrade was completed.
The project went through three phases of work: Refactor, Upgrade, and Optimise.
Since the codebase was quite old, the upgrade gave DNA a chance to review the code that existed, remove code that was no longer used, and identify opportunities to streamline. Doing this prior to the upgrade meant the next phase was smaller due to there being less code to review and the code being in a better state.
This work covered:
- Search indexes
- Unused page types (DNA had slowly rolled out Elemental to give WREDA more diverse page types, so no longer needed as many page types)
- Decommissioned APIs (BookIt and Zomato were no longer required)
The core upgrade follows a reasonably common pattern across all projects, but the amount of code for this project was significant.
SilverStripe have created tools and guidelines to help automate some of the steps which saved significant amounts of time. However, they can be overzealous at times and due to the size of the codebase, these instances were often not found until DNA were in testing.
There are two parts of the upgrade which are optional but recommended under SilverStripe 4. Firstly, exposing the public directory, and secondly, namespacing your project code. DNA opted for both but regretted the latter. Namespacing all of the project code would make sense in smaller or new codebases, but with such a large codebase it took a long time to find all the roll-on effects of this change.
This was particularly true of the templates. The codebase has an enormous amount of specific functionality which calls specific templates and this all had to be reviewed to reconnect the namespacing. As part of this phase, DNA also had to review all of the open-source dependencies and decide whether each module was required, redundant, or needed to be upgraded to be compatible.
DNA is very complimentary of the changes SilverStripe have made between versions 3 and 4. In particular, new functionality out-of-the-box with SilverStripe 4 enabled them to remove multiple modules.
Once the core upgrade was done, DNA could move on to optimising several areas of the site.
Due to the progression of functionality over the years, the front-end templating and code had grown quite large, so DNA reworked the templates architecture and upgraded the front-end code. These changes will mean easier maintenance due to less code and faster development time (development compiling tools are significantly faster).
DNA also took the chance to add over 60 unit tests to the codebase, especially covering events which are imported from EventFinder and need to expire at the right time. This gives the team tighter control of changes and more confidence with each deployment that everything is working as expected.
Client benefits of the major upgrade
Over the last five years, WREDA has relied heavily on SilverStripe to deliver diverse content in a range of ways. DNA estimates that this latest upgrade has set them up for another 3-4 years.
For such a large and content-rich site, the efficiency of the CMS is key. SilverStripe 4 has had a significant overhaul which not only delivers now but will continue to improve with the new underlying architecture.
The launch of SilverStripe 4 has also bought many of the community features into core code, resulting in fewer workarounds in the code and less to maintain and coordinate.
DNA are particularly excited to see their Elemental module being actively developed by the core team at SilverStripe. WellingtonNZ.com was one of the first sites on which DNA trialled this content management pattern, it worked well and turned into the first iterations of Elemental.
That initial investment from WREDA in what has become a core feature now benefits other SilverStripe users. A better core architecture, cleaner dependencies, and a growing community mean WREDA have some fantastic ingredients to meet their ambition to make Wellington wildly famous.
Upgrading to SilverStripe 4 is on the horizon for many of DNA’s clients in 2019. We know that the upgrade can work for a truly massive site like WellingtonNZ.com, so have no doubts that other upgrades will also work well.
SilverStripe 4 is a really good technical progression. We’re impressed with the moves that the open-source teams have made and look forward to delivering even more. WREDA was a huge project, one that we’re glad to have under our belt, and it sets WREDA up to continue to adapt, evolve, and deliver a range of rich content for many years to come.
For this upgrade, the technology is not the best part, it’s what comes next. With the improvements mentioned, it sets WREDA up to better deliver their core business goals and ensure they’re aligned to user experiences that deliver.