BC Place Stadium

Large-scale cloud-CMS-driven website

All back-end and some front-end development

  • web
  • front-end
  • back-end
  • Prismic
  • Laravel
  • Blade
  • PHP
  • MySQL
  • Javascript
  • Less
  • Tribal

https://www.bcplace.com/

I can’t believe I’m writing this in 2023, and this website, which I built in 2015, is still live.

Back in 2015 I built this site as part of a small team at Tribal DDB. If memory serves, it was just Tyson and me – Tyson wrote much of the layout and styling code, and I built the Prismic and PHP data models, plus all the back-end code, and the remainder of the front end.

This site uses the Prismic cloud CMS. The back end of the website is written in PHP with the Laravel framework, and I wrote a full-featured package to connect Laravel with Prismic, allowing us to integrate data from Prismic seamlessly into Laravel’s MVC pattern. We ended up using that same package for different projects including Vancouver Convention Centre.

One particular challenge was performance, since the older version of the Prismic API (the only one available at the time) forced us to make quite a large number of queries to build each page, and speed wasn’t amazing. I ended up employing aggressive caching strategies on data from Prismic, with widespread prefetching, and with eviction logic driven by Prismic webhooks.

Another challenge which comes to mind was the events page layout. There were very specific requirements from the design team, and I remember taking over layout duties for that page to write the tricky logic. This is also where I learnt just how complicated the logic to format dates and times can be, especially when events can be short or multiple days, can have multiple instances on successive or non-successive days, at can be at the same or different times each day!

I think the fact that this site is still running is a testament to how solidly we built it. It still looks good to this day, though I wish they’d use better quality images for the upcoming events.