Logo Yuka

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.

A phone with the Yuka application in the hands of a consumer at the supermarket

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.

Need to upgrade your Symfony application to a more recent version?

Follow Yuka and update the version of your symfony application to improve your performance and security, and enjoy the latest innovations in Symfony.

This might also interest you

Fabien Potencier

SymfonyCon Amsterdam 2025: Our Recap and the Highlights

After an iconic first edition in 2019, SymfonyCon made its big comeback to Amsterdam. From the start, you could feel the energy of a highly anticipated conference: more than 1,200 attendees, 39 nationalities, the biggest Symfony community reunion of the year, great discoveries... and a fun atmosphere. This year was extra special because it was the 20th anniversary of Symfony. SensioLabs was there: we'll tell you all about our experience there!

Read more
The SensioLabs team celebrating the 20th anniversary of Symfony with balloons

The Story Continues: SensioLabs Celebrates Symfony's 20th Anniversary

Time flies, especially when you're busy shaping the future of development! The SensioLabs team has just reached a milestone with the anniversary of the Symfony framework. We marked the occasion at the office, but the party isn't over yet. The date is already set for an XXL celebration at SymfonyCon Amsterdam 2025, from November 27 to 28.

Read more
3 dog heads

Bring Your Own HTTP client

Break free from rigid dependencies in your PHP SDKs. Learn how to use PSR-7, PSR-17, and PSR-18 standards along with php-http/discovery to allow users to bring their favorite HTTP client, whether it's Guzzle, Symfony HttpClient, or another. A must-read for PHP and Symfony developers.

Read more
Staffbase logo icon

Staffbase: Meet Your New Teammates, Symfony & Storyblok

Staffbase, a global leader in employee communications platforms, partnered with SensioLabs Germany to carry out a full relaunch of its corporate website.

Read more
Blue sign on a building with several Now What? letters

How To Prioritize Messages When Building Asynchronous Applications With Symfony Messenger

Asynchronous processing offers benefits like decoupled processes and faster response times, but managing message priorities can become a challenge. When dealing with tasks ranging from password resets to complex exports, ensuring timely delivery of critical messages is essential. This article explores common asynchronous processing issues and provides solutions using Symfony Messenger, allowing you to optimize your application without extensive refactoring.

Read more
SensioLabs University Courses announcing the new level 3 Master training course now available

Master Symfony: Unlock Expert Skills with Our Training

Take your Symfony proficiency from good to great with the new Level 3 training course at SensioLabs! Master complex topics, optimize performance, and become a Symfony expert.

Read more
Two images: on the left many cars stuck in a traffic jam with the sign "All directions" above, on the right a blue car moving forward alone on the highway with the sign "Service Subscriber" and a Symfony logo above

Symfony Lazy Services with Style: Boost DX using Service Subscribers

Boost your Symfony app's performance and developer experience! Learn how to use Service Subscribers and traits for lazy service loading to reduce eager instantiation, simplify dependencies, and create modular, maintainable code.

Read more
Poster of Guillaume Loulier presentation

A Symfony Training at SensioLabs: Behind The Scenes

What does Symfony training at SensioLabs look like? Find out in this interview with Guillaume Loulier, a passionate developer and trainer, who tells us all about the official Symfony training courses.

Read more
Image