Overview

You may have heard of CitizenLab, a Brussels based company focused on digitalizing governance by including residents early and often. Founded in 2015, they feature survey and polling, participatory budgeting, and idea collection. These are all things that would allow governments to engage residents in decision making.

And the next step in this vision was to create an open source version of the product.

Creating an Open Source Product

This was a hard problem to solve because the business needed to support different licensing options which required the ability to combine specific modules to enable more functionality. To do this, a unique technical solution was needed.

Over a period of six months, our staff engineer guided the team through a complex restructuring which led to an easy-to-implement modular system.

Creating an Open Source Product

Team Collaboration

Once the most difficult set of modules was created, the CitizenLab front-end team was ready to join. They were able to become effective quickly, since they were involved in the discussions and planning from the beginning.

Together, we built up the confidence of the CitizenLab front-end engineers via pragmatic experience. Steadily, the team took on more responsibility and it was time for us to switch to coaching mode.

Team Collaboration

The Solution

The final approach features an ingenious architecture that groups configuration and code into one folder to represent a single module. Since each module is loosely coupled, the system allows each module to provide specific routes, inject UI elements through outlets, register pages, and run code on lifecycle methods. We do all this without polluting the core codebase.

The team has the understanding to apply this approach for all new functionality and it has been used for all modules created since April 2021.

The Solution

What they said

Over a period of a half year, our senior front-end engineer guided the team through a complex restructuring which led to an easy-to-implement modular system.
CitizenLab Team
CitizenLab

Ready to become our next success story?

Tell us about your project and we'll get back to you.

You will be signed up to our newsletter when sending this message, and you agree to our privacy policy.