Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a Theme Engine for Filmmakers ...and D...

Building a Theme Engine for Filmmakers ...and Developers

This talk will explore the design and architecture of the VHX theme engine, which allows our filmmakers to easily create highly-customizable websites to promote and sell their movies. We’ll walk through the technical and UX decisions that were made to optimize for maintainability, flexibility and future-proofing.

VHX themes are a blend of HTML, CSS, JavaScript and Mustache templates that are parsed by both Ruby and JavaScript. On the Ruby side, our theme engine can take advantage of server-side rendering, caching, and testability; with the JavaScript implementation we can add client-side rendering, live previewing, and enable an offline development environment for theme designers.

We’ll show off the code involved in VHX’s theme engine, advanced code editor (with live previewing through the HTML5 postMessage API), a master/child inheritance system that allows themes to be forked, and piecing it all together in a beautiful, easy-to-use interface.

Avatar for Kevin Sheurs

Kevin Sheurs

June 08, 2013

Other Decks in Programming

Transcript

  1. @ksheurs @vhxtv VHX.tv A platform that is enabling filmmakers to

    distribute video content directly from their own website and identity
  2. @ksheurs @vhxtv VHX.tv Product Goals Offer something simple, easy to

    use, and flexible like Tumblr’s theme garden + video and e-commerce baked in
  3. @ksheurs @vhxtv VHX.tv Engineering Goals Build something simple, but powerful

    Strive to build something better, faster, and more fun than existing solutions
  4. @ksheurs @vhxtv VHX.tv ...support Server-Side Benefit from performance, caching or

    pre- rendering, specs, accessibility, no-script, and SEO
  5. @ksheurs @vhxtv VHX.tv Local Development Separation of data and presentation

    Portability in rendering engines Theme engine exporter to transfer responsibility to JavaScript Mustache Local JSON data, templates, and assets
  6. @ksheurs @vhxtv VHX.tv Future Plans Continue to polish local development

    environment Extend Mustache support with Handlebars Use Github for theme management and submissions