With GraphQL Summit now behind me, I wanted to share my thoughts on what went into building the community around the conference. This won't be a how-to guide (you should talk to Domitrius Clark if you're interested in doing something similar), but more of what the goals were, and how we approached meeting them.
I think the biggest take-away is that you shouldn't try to recreate an in-person event online. After attending many other online conferences, I noticed that the ones that tried to mimic the experience of an in-person event just felt off. There are things you can do in-person that just don't translate to online, and likewise, there are a lot of cool things you can do online that probably would be difficult to do in person.
We had a few key goals we came up with that helped guide us in our decision making about the structure of the event and community:
- Engaging - we didn't want folks to tune in for a bunch of talks and then walk away each day, we wanted conversations to happen
- Access - having insight into what leaders in the space are doing/thinking and hearing about experiences from other folks at many different stages of their GraphQL journey
- Global - we wanted to accommodate as many timezones as possible so folks from all over the world could participate
- Welcoming - everyone should feel not only safe, but also welcome and able to engage
- Useful to sponsors - we wanted to make sure sponsors could express their uniqueness and have a space of their own within the community
This one was really important to us. We wanted folks to walk away from GraphQL Summit talking about the connections, ideas, and opportunities they discovered more than anything else.
Instead of trying to guess what topics folks would want to discuss, we did two things. First we asked during registration what topics they were most excited about and secondly we kept the number of channels minimal, only adding new channels as conversations about a topic evolved and started to clog up the main channel for chat.
Our moderators were also facilitators. Looking for these types of conversations and offering to create channels for the conversation to have a place of it's own.
What we were trying to avoid was having too many places to say something, which could leave folks saying nothing for fear of saying it in the wrong channel.
Using the information provided by over 6000 registrants, we compiled a list of topic rooms that would be hosted by someone in the community that knowledgeable and excited about that topic. We had anywhere from 12 to 15 rooms each day. They also had their own space within the event and didn't compete with talks or panels. They were open for an hour each day which let attendees have deep conversations and we saw that carry over into chat.
As I previously mentioned, the Summit staff were also our tummlers, looking for opportunities to match attendees with similar interests, create spaces for folks engaging in conversation, or liven up a topic room should it grow quiet.
When doing research for Summit, I asked a lot of folks why they attended in-person events. The majority of them stated they did it for the networking aspects and the access to leaders and experts in the GraphQL community. With that information we made it a priority to provide that experience.
Topic Rooms were a big part of this. By finding people from the GraphQL community and having them host topic rooms, we were able to connect the community with the very people they would seek out during an in-person event. Not to mention that it wasn't just text chat, there was actual conversations happening. In our follow up survey the topic rooms were a main highlight for many folks.
We decided to have a number of panels in addition to traditional talks. We preselected questions for the panelists and allowed them to take questions from chat if they wanted to. The openness and sharing of the panelists experiences gave attendees a view into the world of these experts.
Speakers were given the option to do a live Q&A after their talk if they wanted to. The community was able to ask questions in a reserved channel and then the questions would be moderated and fed to the speaker. Making sure it was enjoyable for both the community and speaker.
Because this year's Summit was going to be an online event, it meant that folks who weren't able to attend previous Summits could now attend.
We didn't want to lose the opportunity to provide our global community with a good experience and scheduled the days in times that would cover the most timezones. We also alternated topic room times and panel/talk times each day so that everyone had an opportunity to attend those conversations.
We also didn't want price to be a limiter of attendance. Beacuse hosting an online event is cheaper than an in-person event, we turned those savings into free attendance. We streamed the talks and panels on the Apollo GraphQL Twitch channel.
The conference should be inclusive and safe for everyone, and with a global audience and many different cultures present we knew we had to constantly emphisize our Code of Conduct and train our moderators to be ready for any situation.
We completely revamped the Code of Conduct to accomodate the event being online and talked about the importance of adhering to it and how we would respond to any issue in the opening statement each week of the conference, in the welcome channel in the event Discord, and in the chat in Twitch.
There were teams of moderators with shifts who all had watched a training video on how to spot and handle CoC violations, as well as a smaller internal CoC response team that would handle the information tracking and resolution of any CoC violation. We also had moderators on Twitch chat and limited chat to followers of the channel.
Lastly, we leaned heavily on Discord's fine-grained permissions and roles to make sure we could control what type of communication was happening and where.
I think this gets overlooked at most online events. We wanted sponsors to also walk away from Summit feeling like their investment was worthwhile, but also for attendees to benefit from the sponsors being there.
Each sponsor had their own section within Discord where they had the permissions to create any channels they wanted. What resulted was each company getting to build a personal space that represented their culture and allowed them to showcase anything they wanted. We saw fun channels full of pets and home work setups, free workshops, give-aways, raffles, and even code challenges for prizes.
We also gave sponsors dedicated times outside of topic rooms and talks/panels to get to interact with attendees without competing for attention with each other or the event content.
When it came to choosing the platforms for where we hosted the event, it was an easy choice to use Twtich for streaming the content and Discord for the community. We're seeing a shift of developers and dev focused companies emerging in both places and both platforms are great tools for moderation (this was huge part of our decision making).
We first laid out our goals and then worked with our community consultant, Domitrius Clark, to help us figure out how to achieve them.
We're extremely happy with how it turned out, but we still have lots of learning to do and adjustments to make for the next one.