2025-03-15 — A review of the Gathio (https://gath.io) web app
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:
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.
random musings | more macro than a microblog
No spam. Unsubscribe anytime.
I have very specific requirements that I was pleased to find Gathio almost entirely fulfills:
Gathio does all of these and a bit more. In a lot of ways it's the events sibling to Signal.
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.
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.
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.
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.