Across NuxtJS applications.

As a company, we sell experiences on many different sales channels,  gotui.commusement.com, travel agencies platforms, onsite tour operator web-applications, etc. All of these platforms consume  REST APIs and share common business logic: product pages, product listings, search pages, checkout, orders listings, login, account, etc.

Rewriting and maintaining this logic for every project requires a lot of effort so we faced a big challenge: how do we develop blocks that are easy to plug-in but flexible enough to satisfy the different business requirements of our platforms? And how do we sync all these blocks?

The story

It was an exciting road to reach our current architecture.

It started after delivering our second web-application: we noticed a lot of copy-paste work and difficulties syncing new features and bug fixes on both applications at the same time.

In front of the coffee machine, we started our first meetings and the paper board became the place where we shared ideas and concepts.

During Tech-Fridays, we developed the first PoCs, and finally, step by step, the architecture came out naturally and, more important, every member of the team contributed to it.

We ended up with a  NuxtJS application that consumes Vue components imported as npm packages. Like LEGO® Technic™ kits, given a set of customizable blocks (shared-components), we can build many different vehicles (our platforms).

#javascript #rollupjs #nuxtjs #vuejs

Vue Shared-components
1.25 GEEK