This article is a revised version of the original publication at opensource.com. Thank you also to Jesús Espino and Justin Reynolds for their valuable feedback on this article.
Hackathons are events where developers, product managers, designers, and others come together to tackle problems over a short time period. They have become increasingly popular over the last 15 years after OpenBSD ran the first hackathon in June 1999.
These events provide several benefits—greater engagement across the community, innovation and new ideas, awareness for the organizers, and networking opportunities for participants.
I've run and participated in several hackathons to engage with the open source community. In 2020, I participated in a hackathon to overcome the challenges of COVID-19 and ran a hackfest to create open source chatbots for developer workflows. Both had thousands of participants and were run completely virtually.
We've come a long way from our first hackathon in 2016 that had only 20 participants to building a step-by-step guide for running a virtual hackathon, and we've learned many valuable lessons.
If you are considering running a virtual hackathon, here are eight tips to keep in mind:
Before you begin to plan your hackathon, you'll need to choose a theme or a topic for it first.
Is there a specific business or social problem you're trying to solve? An industry you want to reach? Technologies you want to explore together with your community?
Choosing the theme at the start is important, as it gives you a clear focus for the rest of your planning—which communities to reach out to, how to determine logistics, what materials to prepare, and other details. It also inspires your community to work on solving the specific kinds of problems you're organizing around.
With 365 days in a year, you'd think it'd be easy to find one on which to hold an event, but it can actually be a challenge to schedule even a virtual hackathon. The most important thing is not to rush the preparation. Ideally, you should schedule the hackathon at least two months out. This gives you enough time to promote and organize it and gives your participants enough time to prepare for it—whether it's researching the hackathon topic or setting aside time for it on their calendars.
Here are a few quick tips when trying to decide when to run hackathons:
> Avoid overlap with major holidays in the countries you're trying to reach. If the event is global, then avoid major holidays in the countries where you have bigger communities.
> Avoid overlap with significant company or community events that may act as a distraction during the hackathon, such as major product releases or developer conferences.
> Avoid starting the hackathon on a Friday, especially if you plan to reach developers around the world. If you're located in the Western Hemisphere and hold a hackathon kick-off call on Friday, those in Europe and Asia will either have to join in late Friday night or Saturday morning, effectively meaning the hackathon starts on a weekend in those areas. It is typically better to start on a Thursday instead.
Given the hackathon is online, there is also an opportunity to extend it beyond a standard 48-hour event. I have found that running a three- or four-day event, for instance, results in much higher quality submissions that are closer to completion.
It is much easier to promote and organize the event when you have someone you can collaborate with. At a minimum, find one or two developers who can act as leaders during the event, mentoring newcomers and answering questions from the participants. They can also be your point of contact for technical support before and during the event.
You should also consider if you need a partner to run operations such as scheduling calls, and a partner to create the event marketing materials.
Moreover, once you've picked the theme and dates of your event, reach out to your community and ask if anyone is open to help. Many may be interested. Acting as a hackathon organizer and mentor also provides a great experience for community members themselves.
Start by listing everything you and your hackathon partners may need to do before, during, and after the hackathon. And I do mean everything—from deciding which platform to host your hackathon on to which video conferencing tool to use for presentations to what prizes to give out. The more comprehensive your workback schedule is, the better prepared you will be, and the more successful the hackathon will be.
To help you get started, check out this playbook I created for Mattermost on"How to Run a Hackathon" with key dates and activities that you can use for inspiration.
Code of conduct is important to promote healthy behavior within your community. It establishes what is accepted by participants and helps create a safe and welcoming environment for everyone.
The same is true for hackathons. The code of conduct establishes the rules and actions taken when the rules are broken. Include a clear contact or place to report harassment from the participants. Often, the members you're partnering with from tip #3 will also help enforce the code of conduct as needed.
To learn more about codes of conduct, including ways to enforce them, see this excellent guide.
During the hackathon, there is a lot going on. People ask questions, share progress, and team up with others. Especially when running a hackathon with hundreds (or thousands!) of participants, it can quickly get chaotic.
That is why a single hackathon landing page is critical. This landing page should contain all the information community members need to know, including resources to get started, where to ask questions, and how to create a submission. Updates can also be communicated in other channels like Twitter, but they should always be reflected on the hackathon's landing page. Your landing page is the source of truth.
Plus, make sure to include plenty of information for first-time participants. If you've run a few events, a lot of the information you share is familiar to you and previous participants. However, everything is new and often confusing for first-time participants, so make sure to keep them in mind when building the landing page.
A common reason to run a hackathon is to reach new users and communities who have heard of your project before. Therefore, announcing and promoting the hackathon beyond just your social channels is very important. However, simply spamming other communities and pages is not just ineffective, but also disrespectful.
Go back to point #1, where you selected the hackathon theme. Are there certain technologies that are relevant to it? Or industries?
If so, study where those communities exist and reach out in their respective channels. Even better, find their community manager and share the hackathon with them first before sharing with the wider community.
The biggest challenge I've found with virtual hackathons as compared to physical hackathons are the social aspects. Since people are not working in the same rooms together anymore, building connections and collaborating with others takes extra effort.
Make sure to add social activities throughout the event dates, accounting for different time zones. Include activity feeds where participants can share updates on what they're working on, drop-in social hours over video, coffee times, pizza hours, and more.
Taking the extra step to ensure there are opportunities for social interaction creates a more engaging experience for everyone involved.
Running a virtual hackathon is not easy, but if you prepare for it well and use the above tips to plan it, you will be set up for success, and hopefully have lots of fun along the way!