At Extracadabra, I led a team of three to four frontend developers. The public website and blog POC already used Nuxt and Strapi. My main contribution was making it more reliable through a monorepo, stronger CI, and a local environment that was easier to reproduce.
Taking over a POC in motion
The Extracadabra public website and blog explain the service to candidates and businesses, direct them to the right workspaces, and give the editorial team a place to publish content. These surfaces already existed as a POC built with Nuxt and Strapi.
The wider product also included mobile applications still active on Vue 2. Their development continued in parallel, with different constraints and a different cadence from the public website.
Strengthen an existing product without slowing down the others
The website and blog POC had to become a durable foundation. The goal was not to replace Nuxt or Strapi, but to improve code organization, CI, the local environment, and contribution practices while addressing performance, SEO, and editorial autonomy.
At the same time, mobile development had to continue on Vue 2 while the first Vue 3 building blocks were prepared. The organizational challenge was therefore to run several migrations without interrupting ongoing product delivery.
My lead role
I led a team of three to four frontend developers. I directed the foundation work, the Vue 2 to Vue 3 migration, the organization of applications in a monorepo, and improvements to the CI pipeline.
The public website and blog moved to Vue 3 during the rebuild. The first mobile application building blocks were prepared in parallel so the team could continue the migration while Vue 2 development remained active.
A more reliable web foundation
Evolve the existing Nuxt and Strapi POC
Nuxt and Strapi were already in place. Moving to Vue 3 was part of the rebuild, but the main work focused on project reliability, maintenance, and making the codebase easier for the team to take over.
Structure the monorepo and CI
The monorepo brought projects and tooling together while each application kept its own lifecycle. CI and contribution conventions were shared without artificially coupling the website, blog, and mobile applications. This made changes more predictable and improved the developer experience.
Make the local environment reproducible
The POC used SQLite locally. I set up Docker Compose to run Strapi and the required dependencies reproducibly. Local setup no longer depended on a sequence of machine-specific steps.
What the team could take over
The work also covered website performance, SEO, and editorial autonomy. The POC became a foundation the team could maintain and evolve with clearer responsibilities.
The monorepo, CI, and Docker Compose environment made the project easier to take over. The first Vue 3 mobile foundations let the team continue the migration in parallel with ongoing Vue 2 development.
What stayed with me from this rebuild
Moving to Vue 3 was the visible part. The main work was making the existing product reliable, straightforward to install, and easier to evolve while the Vue 2 applications kept moving.
