felipe@dumont:~/projetos/cruzeiro-ingressos$
cd ..
~/projetos/cruzeiro-ingressos

Cruzeiro online ticketing

Official site, ticketing and internal systems of a major Brazilian football club, modernized from jQuery to React and built to handle 50k+ simultaneous buyers.

I joined Cruzeiro Esporte Clube as a front-end developer and, during my time there, I was the only front-end developer working on the club's projects. I owned the front-end of everything the fans and the club staff touched:

  • Official site: the club's institutional portal and content
  • Football ticketing: online ticket sales for the club's matches
  • Sada Cruzeiro volleyball ticketing: the same sales experience for the volleyball team
  • Internal management systems: tools used by the club's teams day to day

The challenge: match days brought peaks of more than 50 thousand simultaneous users trying to buy tickets online. Purchase flows had to stay fast and stable exactly when the demand was highest.

Ticket purchase flow:

  • Ticket rules and pricing by member plan
  • Checkout with online payment
  • Digital ticket delivered to the fan

Built for traffic peaks:

  • Virtual waiting room to control the flow of buyers into checkout
  • CDN and caching for static content and assets
  • Lightweight front-end on the purchase path, with a lean bundle and few requests

Internal systems:

  • Member management
  • Ticket and box office operations
  • Stadium access control
  • Content management for the site

Modernization: the systems were built on legacy technology (jQuery, Vanilla JavaScript, HTML and CSS). I modernized them gradually, screen by screen, with legacy and new code running side by side, adopting the React ecosystem:

  • React and TypeScript for components and screens
  • Redux for application state
  • TailwindCSS for a consistent, fast-to-build UI
  • Jest for automated tests

Result: a modern, tested front-end that held up to the club's biggest ticket sales, delivered by a single front-end developer.

next projectUrban mobility apps