hackgvl / hackgreenville-com

HackGreenville's Website
https://hackgreenville.com
MIT License
16 stars 15 forks source link

Alternatives to Meetup #215

Open allella opened 4 years ago

allella commented 4 years ago

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.

allella commented 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/

MarkMcDaniels commented 4 years ago

It's a cool looking project. I'm a little shocked that meetup decided to go this way.

allella commented 4 years ago

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.

allella commented 4 years ago

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.

allella commented 4 years ago

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.

allella commented 11 months ago

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.

allella commented 9 months ago

@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.

image

ThorntonMatthewD commented 9 months ago

https://github.com/GetTogetherComm/GetTogether/blob/6708944bbcecb6d3d1467b096b2d72e991583d51/events/views.py#L37-L44

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.

ThorntonMatthewD commented 9 months ago

https://gettogether.community/api/upcoming_events/ is very similar, but also seems to lack the ability to provide search parameters.

ThorntonMatthewD commented 9 months ago

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.

allella commented 9 months ago

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.

bogdankharchenko commented 8 months ago

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.

allella commented 8 months ago

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.

ThorntonMatthewD commented 8 months ago

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
allella commented 8 months ago

@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.

image

ThorntonMatthewD commented 8 months ago

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!

allella commented 7 months ago

Matt mentioned this lack of support for the GetTogether project as a possible concern to monitor. https://github.com/GetTogetherComm/GetTogether/issues/323

allella commented 7 months ago

List of open-source Meetup alternatives and status, language, and license https://github.com/coderbyheart/open-source-meetup-alternatives

allella commented 2 months ago

Matt mentioned someone forked GetTogether after not succeeding in taking over that repo and project

allella commented 2 weeks ago

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.

allella commented 2 weeks ago

Matt Thornton mentioned https://www.radius.to/ - free tier, but no higher tier pricing listed and not a working app