Open allella opened 4 years ago
Open-source event hosting service that's the closest thing to what the Chapter app is looking to build. https://github.com/GetTogetherComm/GetTogether https://gettogether.community/login/
It's a cool looking project. I'm a little shocked that meetup decided to go this way.
The "Chapter" app is a good ways away and it sounds like Meetup back-paddled a bit to limit the impact to only a "small" set of their customers. Still, the wheels have been set in motion, and really already were in motion with other projects like GetTogether. Heck, Jacob was talking about making a replacement just for us locally, along with 100,000 other people who didn't like their old pricing model.
UCLUG is now using https://gettogether.community/events/2741/monthly-meeting/ and that has schema.org rich snippets on the event page, but I don't see an API or a way to see the latest events at a standard URL with a normalized set of data.
Also, Chapter (in progress) will likely be used by a number of meetups once it's stable.
Word on the street is Meetup.com back-peddled on the pricing, so the good news is there should be more time for groups to consider jumping to alternatives, like Chapter or GetTogether.
UCLUG is using GetTogether.
The only sort of standard feed there is an .ics file which you can get to by clicking the calendar icon to the right of "Upcoming Events" on the main GetTogether page for the group, which may work.
We could also submit a PR to GetTogether to give them some sort of JSON+LD events feed, or some such.
@ThorntonMatthewD I don't think we've found any APIs, but the "searchables" endpoint you found may help.
For instance, if that's all they have, then it might at least help us figure out the most recent event and the event pages, like last month's UCLUG, have JSON + LD schema markup for events that can be parsed pretty easily.
Getting notifications of edits or cancellations may be a challenge with this setup, but it's looking doable.
Maybe we'll get lucky and there are more structured endpoints within GetTogether.
def searchable_list(request, *args, **kwargs):
searchables = (
Searchable.objects.exclude(location_name="")
.filter(end_time__gte=timezone.now())
.order_by("start_time")
)
serializer = SearchableSerializer(searchables, many=True)
return JsonResponse(serializer.data, safe=False)
It doesn't look like there is a way to filter by any criteria. There exists a couple of constraints to ensure that the events returned are in the future and that the location isn't blank, but nothing user-provided.
https://gettogether.community/api/upcoming_events/ is very similar, but also seems to lack the ability to provide search parameters.
I'm curious what everyone's thought are around possibly contributing upstream in this instance.
https://github.com/GetTogetherComm/GetTogether#getting-involved
I see specifically:
- API/Federation experts
- We need to decide on using AppStream or rolling our own data/protocol
- We need to architect what data will be federated and it's use cases
- We need to support authenticated access to APIs for 3rd party apps
I think if we had a route where we could filter upcoming events by a maximum distance to a coordinate, and/or a collection of teams/orgs we want to track, then that would at the very least give us a list of event pages we could then scrape for the structured data markup on each page for descriptions, locations, times, etc..
If we wanted to go a step further, we could perhaps make the API capable enough to return that information in the response to the initial request.
I think betwen the /searchables
route and the ability to scrape pages we already technically have what we need, but I wanted to float this idea as it may prove more robust in the long-run. It could prove to be a larger commitment to support GetTogether's development, and I do not feel comfortable making that call.
We have our organizations API, where we / do track the event service, API key, and other URLs and info for each org we want to track.
So, requesting for a specific organization would fit our existing pattern better than asking GetTogether for a list of orgs and filtering them out. Here's the human-view of the orgs data.
The earlier hope was that the now archived Chapter project from freeCodeCamp would be another free / cheap option. That was mainly interesting because we could self-host an instance for our area. I helped with Chapter from start-to-finish before fCC decided to divest when it was apparent Meetup wasn't going to change the pricing model, which was their initial motivation for a self-hosted alternative.
In short, if GetTogether is a product we want to support for the free / Meetup-alternative, then I think we can build an integration. We're a small crew, so I hesitate to say we'll be able to make big and sustained contributions to GetTogether itself, but it sounds like a reasonable direction if they have, or we can help inspire, an API on their end that works similar to what we currently support for Meetup and Eventbrite via the events API.
We could get more feedback in the #hg-labs Slack channel on if the GetTogether direction makes sense. And/or at the upcoming HG Labs in person.
Thanks again for uncovering their API and moving this forward. Having a free option we can support would be excellent. And, it may, eventually, allow us to support other adjacent communities with hosting their events. For instance, many of the business-related groups don't post on Meetup or Eventbrite, so they are sort of hard to corral like we've been able to do with 90% of our tech and workforce orgs, who naturally use Meetup and Eventbrite.
If we transition event-api to laravel, we should just delay this until we have migrated events api - it would be a lot easier to do this.
Agreed. UCLUG is the only group using GetTogether and they will be posting to the HG Meetup as well, so we don't plan to address this in the Python code if we move forward with migrating the Events API.
This may be a bit silly, but for the interim what do we think about pulling the .ics file from the UCLUG team page on some interval? https://gettogether.community/team/2044/events.ics
It seems to be a static URL where the contents include the upcoming events.
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:UTC
BEGIN:VEVENT
SUMMARY:Nov 2023 Meeting: Hacking Low Earth Orbit Satellites
DTSTART;VALUE=DATE-TIME:20231114T233000Z
DTEND;VALUE=DATE-TIME:20231115T010000Z
DTSTAMP;VALUE=DATE-TIME:20231101T210759Z
UID:41724@gettogether.community
CREATED;VALUE=DATE-TIME:20231011T140003Z
DESCRIPTION:For our November meeting\, Tim Fowler will be talking about so
me Low Earth Orbit (LEO) satellites he has been making:\n\n---\n\n## A New
ETHOS…\n\n### A journey into the why\, how and who cares of building a
simulated CubeSat.\n\n---\n\nWe'll have food sponsored by our favorite mak
erspace\, [SynergyMill](https://www.synergymill.com/)\, so if you plan to
attend at [OpenWorks](https://joinopenworks.com/) and want to eat\, please
click `Attend` above\, or contact Jās by some other means so we can have
a headcount. We'll start eating at 18:15 or before to avoid Tim's presen
tation. Thank you to Joey at SynergyMill!!!\n\nTim will be joining us\, al
ong with [ColaLUG](https://colalug.blogspot.com/)\, the Columbia SC Linux
User's Group\, live on Jitsi:\n\n[https://meet.jit.si/sclugs](https://meet
.jit.si/sclugs)\n\nEnter OpenWorks from the 3rd floor of [Richardson St. G
arage](https://www.greenvillesc.gov/facilities/facility/details/richardson
-street-garage-33) .
LOCATION:OpenWorks\, Greenville
URL:https://gettogether.community/events/41724/nov-2023-meeting-hacking-lo
w-earth-orbit-satellites/
END:VEVENT
END:VCALENDAR
@ThorntonMatthewD Jas is posting UCLUG events in Meetup, too, as of this most recent event. So, for now, they are making it into the Events API.
So, I wouldn't put too much energy into a short-term for GetTogether.
Connecting with GetTogether and seeing if they have something, or would take PRs, may be a next step.
Thank you! I'll prepare for possibly working that angle if that is how the group decides to proceed.
Glad they're on the board!
Matt mentioned this lack of support for the GetTogether project as a possible concern to monitor. https://github.com/GetTogetherComm/GetTogether/issues/323
List of open-source Meetup alternatives and status, language, and license https://github.com/coderbyheart/open-source-meetup-alternatives
Matt mentioned someone forked GetTogether after not succeeding in taking over that repo and project
Robert mentioned Luma, which has been getting traction, with at least two local organizers https://lu.ma/tj597jvp and https://lu.ma/pixelpushers
API access is $59/month and doesn't seem to allow you to get anybody else's events through the API. However, there is LD+JSON in the HTML of the organizer page that appears to include enough event details that it may be useful. So, that may be an angle on checking for new or cancelled events.
The free tier seems reasonable for most free meetups, but the discoverability is currently limited to bigger cities.
Matt Thornton mentioned https://www.radius.to/ - free tier, but no higher tier pricing listed and not a working app
TLDR; Meetup.com, apparently owned by WeWork, changed their pricing model and it's likely to change the way free groups look at the value of that service. The founder of FreeCodeCamp started a conversation about making a containerized, host-your-own meetup event platform to offer a free open-source alternative.
*** Note: Chapter is an archived project. Though, we may still try to provide support for GetTogether or other FOSS tools.