How we used Slack as a backend

For our latest project, we used a rather unconventional content management system—Slack. Here’s what we did and why.

We recently built a an enhanced live streaming experience for Red Bull Radio. (For context: we act as the service’s product team.) Their editors are now able to easily share real-time updates from events broadcast on the station, directly through Slack.

Culture Clash Atlanta on Red Bull Radio

The experience launched last week, to coincide with this year’s Red Bull Culture Clash in Atlanta. Culture Clash is an action-packed event series that puts a spin on the traditional sound clash, derived from Jamaican dancehall culture. The musical competition is known for its spectacular surprise appearances and dubplate specials, recorded specifically for the night.

Like many other shows and festivals, the clash was broadcast live on Red Bull Radio. There is a lot happening at these shows, so the challenge was to create an enhanced audio experience that would be meaningful and entertaining for users listening online for multiple hours.

To keep listeners engaged, we introduced custom emoji reactions (airhorn, anyone?), a live chat, and a timeline. With the timeline, users received real-time updates throughout the event that paired with the broadcast. Rae Sremmurd jumping on stage to support their mentor, Mike WiLL Made-It? Content creators on site captured the moment and shared it with listeners as it was happening.

With an already hectic production, we needed to build a simple solution that provided producers and editors on the ground a way to quickly share content with ease.

In order to make that happen, we used Slack as a backend. We paired AWS Lambda functions with Firebase’s real-time database to relay Slack events to the application.

Culture Clash Slack Timeline Channel

The Slack Channel ID was the unique identifier that allowed us to pass information to the timeline coupled to the Culture Clash event. Incoming images from Slack were captured and uploaded to an Amazon S3 bucket via Lambda functions. The Slack channel topic was used as a status message — where content editors would update listeners on where they were in the competition, i.e. “Round 4: The Decider.”

Using Serverless CloudFormation templates allowed us to get off of the ground quickly with Lambda functions. We were able to deploy functions in a third of the time without the need to rewire things like the API Gateway or POST handlers.

The use of Slack and various micro-services made for a fun experience and a frictionless application lifecycle from development to production. Keep an eye on Red Bull Radio to see the Slack-fuelled live broadcast module in action again soon, and hit us up with any questions.

Unruly, winners of Culture Clash Atlanta 2017 (© Brian Hall/Red Bull Content Pool)