
Yuka: A Healthy, Balanced Symfony Upgrade
Yuka, a leader in global health applications, upgraded from Symfony 4 to 7 with the help of SensioLabs to improve features and reduce technical debt. Read Yuka's success story with Symfony.

The company: Yuka
Yuka is a mobile app available on iOS and Android that helps consumers understand food and cosmetic labels so they can make the best choices for their health and the environment.
With a single scan, consumers can access a quick, easy-to-understand assessment via a color code ranging from green to red. A detailed information sheet explains the product's rating and the criteria taken into account, such as nutritional values and additives. Yuka is a collaborative application; users are invited to contribute to the database by adding unknown products.
Yuka currently has information on over 5 million products. Yuka is free and available in France and 12 other countries, mainly in Europe and North America. Over 68 million people worldwide use the app, and over 70 products are scanned by Yuka every second. Yuka is a Tech for Good company and a hyper-growth start-up that helps consumers make better choices for their health and the planet.
The issues
Despite the scope of its mission, Yuka has only a small team responsible for managing and improving such a vast project on a daily basis, with so many products and languages available. The technical team consists of five members, including two of the co-founders. They take full responsibility for the application's technical operation.
Since its inception, Yuka has used Symfony to manage its database and back end, along with an EasyAdmin administration interface and a custom API. The mobile application, which is available on iOS and Android, connects directly to the Symfony application.
Until recently, Yuka remained on Symfony version 4 and EasyAdmin 1 without updating. These versions were outdated. This meant that Yuka's application no longer benefited from new Symfony features, and new bugs were not corrected in this version. Using EasyAdmin 1 presented a significant challenge to the upgrade. EasyAdmin had to be updated in coordination with Symfony. Technical debt was increasing, as were security risks. To adhere to Symfony's best practices, upgrading the version quickly became a necessity.
Yuka's technical team was too small to handle a long-term upgrade while continuing to improve the application on a daily basis. For this reason, Yuka needed the support of Symfony experts to work on the upgrade. At the same time, Yuka's technical team continued to develop the mobile application.
The story
Yuka has significantly revamped its development practices by leveraging the power and flexibility of the latest Symfony versions. Initially based on Symfony 4 with EasyAdmin 1, Yuka gradually upgraded its application to versions 5 and 6, and then to version 7, while simultaneously upgrading EasyAdmin to version 4. The version upgrades also involved transitioning from PHP 7.4 to 8.3 and upgrading Doctrine from version 2 to version 3.
Thanks to SensioLabs experts' proven expertise, these upgrades were orchestrated and executed in the correct order and in accordance with best practices.
Switching to the latest versions of Symfony and EasyAdmin required a lot of code refactoring, mainly because of changing standards and the need to adapt EasyAdmin customization.
Alongside the version upgrades, several actions were completed:
Implementing a continuous integration (CI) chain that did not exist before.
Standardizing practices with PHPStan, Rector, and PHP CS Fixer.
Test coverage was reinforced.
To make sure the code of the application is always high-quality and performs well over time, regular code reviews and non-regression tests were put in place.
Last but not least, the upgrade was an opportunity to contribute to open source, in a highly stimulating spirit of sharing with the community. Open source contributions included third-party bundles such as NzoUrlEncryptorBundle, kreait/firebase-bundle, and Algolia/search-bundle, as well as EasyAdminBundle. These improvements have reduced technical debt and added features that are important for upgrading versions.
The results
Yuka will continue to benefit from Symfony 7 innovations for many years to come.
Thanks to version upgrades, there's no need to rewrite all the code to stay current. Yuka has updated its code base to adapt to the new features of Symfony and PHP. With Symfony's backward compatibility logic, the application will soon be upgraded to Symfony 7.4, the Long-Term Support version maintained until the end of 2028.
Technical debt has been reduced.
Thanks to version upgrades and code refactoring, Yuka has considerably reduced its technical debt. For François Martin, Yuka's co-founder and CTO, it was essential "not to get stuck on an aging version." With Symfony 7, back-end maintenance is simpler, security patches are current, and recruiting developers with experience in recent versions of the framework is easier.
Yuka's performance is now at its best.
Along with the version upgrade, changing the code has enabled many queries to be cached. This reduced the number of Algolia queries needed to search millions of products.