Motivation
Events (meetups, conferences, talks, ...) are a crucial platform for people to share information, collaborate, and grow. They help to make friends, get condensed and focused information on a specific topic and learn new things. I owe my entire career to events and the people I met along the way.
In 2011 I had the opportunity to visit my first developer meetup BerlinJS. I was new in the JavaScript world and really loved the inclusivity and friendliness in that community. Right after going back to Barcelona I founded BarcelonaJS. Since then a lot has happened and I have been involved in many events and meetups, always trying to find new ways to make the community better, more inclusive.
Unfortunately the tools and infrastructure for event management have been very centralized and restrictive. On meetup there is the "organizer" who is paying for the group, and they're the one responsive on what's going on. While traveling, I've seen groups with thousands of members but not a single event (neither in person nor virtual), with some people trying desperately through the comments or discussions to get people together.
We've been looking for ways to make the event management more accessible and decentralize the process. Making it easier for individual organizers by allowing more people to collaborate in a community.
The beginning of GitEvents
GitEvents was born in December 2014 as a joint project between BarcelonaJS, Node.js Barcelona and the London Node User Group (LNUG). As developers, we're collaborating on code every day on GitHub, so we thought it would be the perfect platform to also manage events from there. Looking back, the tooling around it was terrible, but the best at the time: a node.js server were GitHub Webhooks were sent to. A GitHub Issue represented a talk for an event, a "Milestone" represented the upcoming events, and "talks" were added to "events" by assigning the issues to milestones and labeling them. We then created json files for each event with semantic schema.org data, which we then used to generate a website.
GitEvents Resurrections
Fast forward to December 2021, we're back with a new version of GitEvents, as nothing has improved (or got worse) in the event management space. The idea is still the same: Issue-based event management. We've simplified the architecture; no server is needed any more and no complicated webhook configuration. Instead we're using GitHub Actions to process issues and events that happen on the repository. When the GitEvents Action is installed in a repo, it can set up the required labels and issue templates with an easy setup script. GitEvents runs with the permissions from a GitHub App, so no bot account is needed, and it's clearly visible what it does when it labels or comments on issues. One of the main features, inspired by Steffen, is the "auto invite" of everyone who interacts with the organization. And since it's based on Open Source Repositories on GitHub, everyone can add talks, event proposals etc. and a team of organizers can moderate.
We've started using GitEvents on the meetups we currently co-organize, such as CyprusJS and the Cyprus Developer Community. We'd love to hear from you if you have any feedback or ideas for improvements. And we're happy to help you set up GitEvents for your own meetup.
GitEvents Features
- Auto-invite everyone who interacts with the GitHub organization, be it a comment, issue or discussion. This helps to create an inclusive space and makes everyone feel welcome
- creation of the required labels and templates to run a meetup, inspired by popular meetups like BerlinJS, BarcelonaJS etc.
- Code of Conduct template and consent check for events, talks, sponsors, attendees, organizers, etc.
- iCalendar export of events as
.ics
file in the same repository, which users can subscribe to in their calendars
GitEvents Roadmap
- More modular/flexible approach for 'auto invite', issue management, ics generation etc.
- Add atom/xml/json feeds for events
- Discord integration
- Snippets to copy&paste the event schedule to other websites
- Simplify the event/talk relationship and connect everything properly
- Add a parser for GitHub Issue Forms instead of relying markdown frontmatter
- Much more.
Conclusion
We're just getting started (in-the-middle-but-somewhat-post-pandemic?), but it really helps getting people together and involve everyone in the process. Events are a great way to get people together either virtual or in real life, and we're excited to see what you can do with it.