Projects

Navico

A complicated multisite, multilingual ecommerce platform on top of Episerver using Handlebars, and ASP.NET Razor. A bespoke system to offer three disparate branded experiences from a single codebase.

Screenshot of the Navico website; part of John Kavanagh's development portfolio.

In Brief

Navico provides navigation, marine instruments and fishfinding equipment in both the recreational and commercial marine sectors. In 2017, they decided to relaunch their Lowrance, Simrad and B&G brands and introduce directtoconsumer ecommerce. This was achieved using a multisite, shared codebase, which allowed for consistency across the three brands and streamlined operations.

My Role

As the principal UI developer during the project's transition between agencies, I led the development of a standalone Node.js application, which used Sass and Handlebars to generate reusable and brandspecific Razor templates. The final product was a singlecodebase, multisite build on top of Episerver.

lowrance.com
  1. Bootstrap
  2. Handlebars
  3. HTML5 & Sass
  4. ES6
  5. Episerver
Photograph of a yacht at sea with an oil tanker at sea in the distance, by Michael Held.

In Detail

Originally inherited from another agency, we were provided with a set of totally static HTML templates using Bootstrap and jQuery. These needed significant reworking due to changing client requirements and the development of (and integration with) an Episerver backend to provide content management and ecommerce.

Trying to reuse as much of the existing code as possible, the templates were broken down into components using Handlebars and documented in Storybook. The CSS was refactored into Sass, whilst the jQuery and Bootstrap were, as far as possible, left alone.

The biggest challenge with this project was the fact that one single codebase needed to cater for three disparate websites, covering three of Navico's core brands: Lowrance, Simrad and B&G. Whilst the designs had been carefully constructed to allow crossover between variants of each page, there was a very fine line to be walked between a copypaste style approach and a fullybespokeforeachsite output.

Whilst CSS variables (inherited off a highlevel classname) would have likely been an ideal solution, this would have neglected a significant portion of the client's customers, whose browsers simply were not uptodate enough to support it. We settled on a solution using variables within Sass, which allowed us to spread artefacts such as colours, spacing and typography across all three sites. After that, inheritancebased overrides and some brandspecific components got us the rest of the way.

For integration into the Episerver backend (being developed in parallel), we put together a small standalone Node.js application which allowed us to develop the front end separately, outputting preview screens for the client. This also allowed us to output Razor templates for each page and brand, which could then be imported straight into Episerver.

This formed a key part of the CI pipeline powering the final product: UI changes could be made directly into the project and would then be transformed automatically, moving across to the client's CMS without any further developer involvement at all.

Homepages

Using the Episerver interface, the client can structure each individual brand homepage differently using a set of predefined layouts and components. Although components share common markup and data sources, they can be visually very different, offering a unique, branded look and feel to each.

Screenshot of the Navico Simrad website homepage, mobile screen size.Screenshot of the Navico Lowrance website homepage, mobile screen size.
Screenshot of the Navico B&G website homepage, desktop screen size.Screenshot of the Navico Lowrance website homepage, desktop screen size.

Category Pages

Each brand can structure its Category pages as it prefers from a library of components. All three follow a similar (albeit optically different) structure whilst offering visitors straightforward filtering and navigation to find the specific product they need.

Screenshot of the Navico Simrad website category page, desktop screen size.Screenshot of the Navico Simrad website category page, mobile screen size.

Product Details Pages

Unlike other pages on the site, the PDPs for each brand follow the same structure, although visually onbrand. The visitor's experience remains cohesive to the brand, although the family resemblance is obvious when viewed sidebyside. These pages are carefully laid out to remove any friction for users when choosing the specifications and options for the product they require.

Screenshot of the Navico B&G website e-commerce product details page, mobile screen size.Screenshot of the Navico Simrad website e-commerce product details page, mobile screen size.
Screenshot of the Navico B&G website e-commerce product details page, desktop screen size.Screenshot of the Navico Lowrance website e-commerce product details page, desktop screen size.

Content Pages

An area where the three brand sites do differ significantly is in their content pages. This is where the real benefits of having rebuilt the original templates into components become obvious. Content managers and each brand's marketing departments are offered a draganddrop type page builder where they can assemble the page structure and content as they wish, for their specific brand and topic.

Screenshot of the Navico Lowrance website category page, tablet screen size.Screenshot of the Navico Lowrance website category page, mobile screen size.

Enjoyed the
project?

This is just one of many projects that I’ve delivered for my clients who value thoughtful design, clean code, and reliable results. Let’s talk about how I can do the same for you.

Get in touch