We Need to Make Virtual Dev Conferences Better
By: Michael Bogan
Tags: Programming, JavaScript, Open Source, Web Development, Conference

What is FOSTIVE?

FOSTIVE (Free and Open Source Tools for Incredible Virtual Events) is a collection of open source apps for virtual events. It was created by the Heroku and Salesforce developer relations team.

The project contains several apps, all meant to make virtual events more interactive and fun. The idea is that future projects can take these apps, improve them, add more, etc., to help us all have a little more fun while we’re constrained to the world of virtual-only events. The FOSTIVE project is very new and was launched alongside the CascadiaJS event, so it’s just getting started. Let’s take a brief look at each of the apps currently in the repo.

The Emote widget

This app “allows virtual event attendees watching the event stream to share their emotion with other attendees and the presenter in real time. It’s a higher fidelity, virtual-only version of clapping.” This is the emoji widget you see in the bottom-left section of the conference dashboard. It allows participants to “emote” — and then keeps track of the counts of those emotes per presentation.

The client is written using Lightning Web Components (an open source web component framework) and plugs easily into your webpage. It uses anime.js for the animations of the emotes.

The server is written in Node.js, uses Redis for messaging and in-memory data storage, and deploys to Heroku for hosting.

The Multiplayer Quiz app

The Multiplayer Quiz app is, just like the name says, a multiplayer quiz show with a host and a group of remote contestants. The faster a contestant correctly answers each question, the more points that contestant scores. The app includes a leaderboard that displays the current score and rank of the contestants.

Here’s a video of the app in action.

The app has a client and a server, and requires Salesforce to run (the free developer edition of Salesforce works fine).

The host app runs on top of Salesforce, tying into a Salesforce Organization to load the questions for the quiz.

The player app is a mobile app built with LWC. It runs on Node deployed to Heroku. (You can run it for free with a small group of players. Something the size of a large conference, however, would require a paid plan.)

The Family Photo app

And finally, my favorite: the Family Photo app (called “gif-booth” in the repo).

The Family Photo app, as I mentioned above, takes a three-second video of the participant and turns it into an animated GIF.

Creating your animated GIF

Then the app adds them to a view of all the GIFs so you can see the other attendees!

I saw lots of creativity in the videos created at the conference. There was a running gag of “Oh hello there!” surprise GIFs, a few basic waves, and of course, liberal inclusion of dogs and cats.

The Family Photo app is built using Node with FFmpeg to process the videos and uses an Amazon S3 bucket for storage. The client is written in React.

Other Ideas

There’s also a list of cool, but not yet implemented, ideas in the repo (including real-time reviews of talks, giveaways, and Twilio’s hackable pixel art board). Anyone is welcome to contribute possible ideas for future projects to this list, or grab one on the list and start implementing it.