The Challenge
CAN had been running since 2019 on Angular 7 and Laravel 5.8, built by a previous vendor, with secrets committed to the repository and key judging rules enforced only in the browser. Audio Workshop needed the platform made safe and maintainable without losing years of competition data or interrupting a live season.
Our Solution
We audited all 298 API endpoints, then upgraded the frontend to Angular 21 and the backend to Laravel 13 on PHP 8.4, removed exposed secrets, and moved score visibility and finalization checks to the server. The platform now runs in Docker behind nginx with a pre-rendered public homepage, and we cut production over from the old server with its database and media intact.