Logo Yuka

Yuka is a global leader in health and environmental transparency. Available across iOS and Android, its mobile application helps over 68 million consumers worldwide decode food and cosmetic labels instantly. With a lean technical team of just five people, including two co-founders, Yuka manages a massive database of over 5 million products, handling an intense traffic load of more than 70 product scans every single second. To scale this Tech for Good powerhouse without inflating engineering overhead, Yuka relies on Symfony as its back-end foundation.

The high-growth diet: 70 scans per second on a lean back-end

Operating globally across 13 countries, the Yuka mobile app acts as a direct consumer client that communicates natively with a customized Symfony API. The application serves a simple color-coded rating (green to red) alongside deep-dive nutritional evaluations instantly upon a barcode scan.

When your application handles 70 request cycles per second, any latency in data hydration or controller execution ripples into user frustration. Symfony’s highly optimized HTTP kernel and flexible caching abstraction layers became crucial assets. During their recent modernization, the team refactored core API endpoints to cache complex database payloads. By integrating native caching mechanisms seamlessly within the business logic, Yuka successfully minimized expensive, repeated queries to their Algolia search index. This directly stabilized back-end performance across millions of unique products while significantly slashing external infrastructure costs.

"For a team of our size, falling behind on aging dependencies is a risk we couldn't take. Moving to Symfony 7 proved that you don't need a massive engineering department to run a global scale app, you just need the right framework architecture." — François Martin, Co-Founder and CTO at Yuka

The clean upgrade: jumping from Symfony 4 to 7

As the application grew rapidly, the core architecture remained tied to Symfony 4, EasyAdmin 1, and PHP 7.4. While highly stable, this legacy stack created a compounding technical debt: the team missed out on modern PHP 8+ performance optimizations, security patches were nearing end-of-life, and recruiting new talent to an aging codebase grew increasingly complex.

To break this bottleneck, Yuka partnered with the framework experts at SensioLabs to orchestrate a systematic major version upgrade. The application was incrementally migrated through Symfony 5 and 6, ultimately landing cleanly on Symfony 7. The database abstraction layer was simultaneously lifted from Doctrine ORM 2 to version 3, and the runtime environment transitioned to PHP 8.3.

[Symfony 4 / PHP 7.4] ──> [Symfony 5 & 6] ──> [Symfony 7 / PHP 8.3]


To manage the extensive structural changes and custom back-office overrides required when moving from EasyAdmin 1 to EasyAdmin 4, the engineering team automated code compliance by introducing a modern developer toolkit:

  • Rector & PHP CS Fixer: Automated abstract syntax tree (AST) refactoring to rewrite deprecated method calls and enforce styling standards.
  • PHPStan: Introduced strict static analysis to capture type-hint mismatches and hidden regressions before runtime.
  • Continuous Integration: Built a robust automated CI test pipeline to safeguard API endpoint contracts across language upgrades.

Because Symfony maintains strict backward compatibility standards across its release cycles, this modernization path ensures Yuka can easily transition to Symfony 7.4, the Long-Term Support (LTS) release, guaranteeing operational support and security patches through the end of 2028.

Giving back: Open Source fuel for the ecosystem

For Yuka, building on Symfony isn't a one-way street. The process of upgrading heavily relied on a highly cooperative relationship with the open-source community. Resolving version constraints for high-throughput mobile applications frequently requires extending ecosystem packages. Throughout the upgrade process, Yuka and the SensioLabs experts directly contributed features, compatibility patches, and bug fixes back into several vital third-party packages, including:

By choosing an open-source architectural foundation, Yuka did not merely resolve its technical debt, the engineering team actively enriched the global PHP ecosystem, proving that Tech for Good companies can directly drive the open-source tools they rely on.

A shared vision for a better digital and physical world

Ultimately, the collaboration between Yuka and Symfony is rooted in a deep alignment of values. Yuka is fundamentally a Tech for Good company, empowering millions of citizens to make informed, healthier choices for their bodies and the planet through transparency. Symfony operates on a parallel philosophy in the digital space, championing open-source software, transparency, collective collaboration, and democratization of high-performance technology.

When a major consumer-advocacy app scales globally on an open framework, it proves that building a healthier world physical-wise is made entirely possible by fostering a sustainable, collaborative world digital-wise. By working together to uplift both codebase quality and ecosystem packages, Symfony and Yuka demonstrate that technology reaches its highest potential when it serves the common good.

Thanks to François Martin, Co-Founder and CTO at Yuka, and the engineering team at SensioLabs.


Technical stack

  • Symfony
  • Doctrine ORM, EasyAdmin
  • Algolia, Firebase, NzoUrlEncryptorBundle
  • PHPStan, Rector, PHP CS Fixer, Automated CI
  • Native iOS & Android apps
Published in #Case studies