Taking JavaScript to the Theatre

Callboard is a frontend JS prototype application to help stage managers make preshow calls on a complex schedule.
Also appears on FourWord, the blog of Four Kitchens. See the full project on GitHub.

Callboard

(Are you a theatrical worker? Jump to the project page.)

JavaScript goes to the theatre

When not building websites for Four Kitchens, I am a deck manager and theatrical electrician. For Zilker Theatre Productions’ Oklahoma! in 2014, I managed backstage scheduling and gave warning calls to the rest of the company as we worked through the schedule each evening. With a wristwatch, a bit of focus, and lots of caffeine, this was easily manageable. But distractions pop up backstage, and I like automating things with code.

Callboard (demo) is a simple web app that takes an easily-editable schedule and produces a list of countdowns for warnings and events using Countdown.js and Moment.js. At the space, I navigated to the site on my phone and checked it periodically while I handled my other pre-show tasks. When my phone buzzed, it was time to get up, make a lap of the space and holler at people (politely…).

Among others, I defined these events:

And the warnings that I wanted to give for each: (“Ten minutes to top of show!”, “Five minutes to the fight rehearsal!”, etc.)

Combined, that looks like this:

var calls = [
  {
    event: 'Actors to Venue',
    time: '7:00pm',
    // No announcement for the venue call. It's not like they'll be early...
    warnings: []
  },
  {
    event: 'Sound Check',
    time: '8:00pm',
    warnings: [10, 0]
  },
  {
    event: 'Top of Show',
    time: '8:30pm',
    // We don't give a warning for TOS, that's the Places call
    warnings: [30, 15, 10, 5]
  },
  {
    event: 'Actors and Band to Places',
    time: '8:28pm',
    // Other warnings are for TOS, this is an event for a special 2-min warning
    warnings: [0]
  },
  {
    event: 'Go for Act One',
    time: '8:30pm',
    warnings: [0]
  }
];

Callboard takes these data and builds out three displays:

Three displays

Retrospective: was it useful and did it work?

The goals were:

So, yes! This bit of cross-disciplinary nerdiness worked out well. It was useful to have a brain backup because pre-show hours can be very busy.

Future roadmap / current limitations

I’ll keep tweaking this as I use it for future shows. Currently there are a handful of things I’d like to work on: