Review: Gathio (Event Manager)

We recently migrated our local friend group off Facebook Messenger (and Facebook in general), which has gone very well, but we still lack a drop-in replacement for Facebook Events.
Event planning software is difficult. Developers tend to go one of two directions with it:
- A fully feature-complete complex platform that typically requires all users to have an account.
- Just the basics with minimal sign-up friction.
The first option is the most common, but both are quite hard to find examples of. People tend to use their social network of choice by default.
For event software there is the temptation to make it a full-blown social network, or to cater to large independent organizations or ticketing style events, which is a poor fit for friend groups.
Platforms like these also suffer from the network effect problem – it's an uphill battle getting people to sign-up for a completely separate website just for events, you need everyone to use it for it to be useful, and it needs to be really good to bother making the effort.
I experimented with Mobilizon briefly, but it seemed to be more of a MeetUp replacement, and had some mobile UI and localization issues I felt would reduce adoption with my friends.
Since we left Facebook Messenger for Signal I decided to look around the Signal forums to see what people may be using, and came across Gathio.
Requirements
I have very specific requirements that I was pleased to find Gathio almost entirely fulfills:
- Self Hosted: I don't typically prefer self hosting important stuff for friends, because it's unfair to have them rely on a service that could go down or suffer outages randomly if I'm not available, and it puts more pressure on myself. Events are OK though:
- If you think about it, the site only needs to be up and running for the length of any currently scheduled events, so the stakes are low.
- It's not the end of the world if it goes down for a while because most people will have email copies already of invites. Typically we would be using it for reoccuring group activities anyway.
- It is not used as frequently as like a chat app or web forum, so day to day uptime isn't as urgent.
- Minimal account requirements: I don't mind a host or admin needing an account, but it needs to be immediately useful to everyone else, so guests should just be able to RSVP with as little information as possible.
- Privacy: If security is not being mandated by account signups there needs to be a way to protect events from the wider internet. It doesn't need to be hyper-secure or password protected – URLs just need to not be obvious or guessable.
- Email driven: People should be able to get updates via email.
- Mobile friendly: I don't want people having to install another app.
- Organized: There should be a way to collate events while preserving the above requirements.
Gathio does all of these and a bit more. In a lot of ways it's the events sibling to Signal.
Features
Setup
Setup was pretty straightforward. I set up an SMTP server on Mailgun, an Nginx reverse proxy to handle HTTPS, a Mongo database, and the docker image for Gathio. After wiring up all the parts it was ready to go. It has optional ActivityPub support but I switched it off since I will not be using it.
Registration Flow
Host (i.e., admin) accounts are simply a list of trusted emails in the configuration file. To login to create an event you just request a magic link.

Afterwards you're presented with a few simple hosting options.

To create an event you just fill out the form below, which creates a randomly generated event URL.

I typically check the Users can mark themselves as attending this event
box so people can RSVP themselves.
Below is an example event:

To be able to edit the event you have to provide the randomly generated password, either by clicking the Edit Your Event button in your email, or typing it in your password with the enable editing form. If you bookmark the editable event the password is also already pre-filled in the URL.


It's a similar flow for guests. People can RSVP with minimally their name, and also their email. If you do not provide your email you will have to write down your password to be able to edit your RSVP later without having to ask the host.

And that's basically it. There's some nice to haves as well such as an export to iCal, and links to maps. Guests get email updates as you make changes to the events, and there is a basic chat box for guests to use.
Events auto-delete in seven days by default. I turned this off for now, but I think I'll eventually make it something like 90 days. I think it's helpful to encourage the ephemeral spirit of this tool, and also if events get orphaned because hosts forgot the password they'll eventually get cleaned up and deleted.
Event Groups
One pain point I anticipated is if the URLs are all unpredictable and random, and there are no accounts and everything is private by default, discoverability suffers. You need to self-organize and manage links to everything yourself. This is where event groups come in.
You can associate events with Event Groups, which have a permanent URL and never auto-delete. You can bookmark this page and see any associated upcoming events in one place, subscribe to email updates, and export the calendar. It's a neat additional feature that ties it all together.

Wrap Up
Overall there really isn't many other features I would add. I don't think it has a superuser UI or CLI anywhere, which could be helpful for some administrative tasks, but is easy enough to work around by just relying on the auto-delete feature. It's also pretty easy to just wipe the database and start over – there are no accounts!
I did notice a small bug during my deployment which I reported, where certain email updates were not being delivered to guests, but fixed on my instance myself in the meantime.
Member discussion