A single-page web application delivering TV based content to users

The TunedIn web application primarily acted as an interactive TV guide that would allow the users to scrub through a timeline and see what was on TV at any point in time.

Alongside this, another section was added which contained curated content. This allowed content providers to deliver interactive content in real time, depending on what was on TV at the time. This would allow the user to partipate while watching TV.

This was the first single page web application I ever built, and here is how we did it:

  • Meteor was chosen as the client side framework becasue it was clean and lightweight. The Blaze rendering engine was quite fast and the Handlebars templating engine was elegant to work with.
  • Grunt was the prevalent Javascript task runner at the time, and we used this to bundle dependencies together. Styling was handled using the LESS framework.
  • The test runner used was Mocha and test stubs and spies were handled using SinonJS. For assertions, we used Chai.

An interesting challenge we encountered was having to de-couple the server side code from the client side. At the time we were using it, Meteor was a full-stack framework which had it's own Mongo engine running isomorphically. Our app was fed by data coming from a REST API server written in PHP, which would have been much easier to scale to user demand.