Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Choose Your Own Adventure Presentations

Use this code to create real-time branching presentations so your audience can choose the path through your next technical talk.

This project also is the default WSGI application for the Full Stack Python Guide to Deployments book.

Here's a screenshot of the vanilla choices screen. You can of course modify this initial screen with your own styles and visualizations.

The screenshot may not look like much at first. That's where your story and content come in. To see the potential of audience voting during a presentation to determine the path of the story, check out the "see it in action" section below.

Code walkthrough

Detailed installation instructions and a walkthrough of the code base can be found in this blog post I wrote for Twilio along with the follow-up three part tutorial:

  1. Wizards Only
  2. Even Wizards Need Web Forms
  3. Voting with a Wand (or Smartphone)

See it in action

You can check out how these branching presentations work if you watch the DjangoCon 2014 video "Choose Your Own Django Deployment Adventure" or "Choose Your Own WSGI Deployment Adventure" with Matt Makai and Kate Heddleston.

Here's how the screen looks initially.

After votes start coming in...

Here's an example screenshot I took from the DjangoCon talk with DjangoCon styling.

Software stack

Uses reveal.js, Python, Flask, WebSockets, Flask-SocketIO and Twilio SMS.

Yes, we used a Flask app at DjangoCon. For shame.


Created by Matt Makai and Kate Heddleston.

This project wouldn't have been possible without Miguel Grinberg's fantastic flask-socketio library and his detailed tutorials. A huge thank you to Miguel for his coding and writing.