CitizenLab
An e-democracy platform for stronger communities

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.

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.

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.

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.”
Ready to become our next success story?
Tell us about your project and we'll get back to you.

