{"id":41173098,"url":"https://github.com/austinginder/localmeet","last_synced_at":"2026-04-08T16:03:56.403Z","repository":{"id":77472518,"uuid":"344569826","full_name":"austinginder/LocalMeet","owner":"austinginder","description":"Self-starting local meetups","archived":false,"fork":false,"pushed_at":"2022-04-06T13:26:55.000Z","size":1598,"stargazers_count":6,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-23T10:46:54.006Z","etag":null,"topics":["meetups","opensource","wordpress"],"latest_commit_sha":null,"homepage":"https://localmeet.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/austinginder.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-04T18:23:34.000Z","updated_at":"2024-11-30T04:43:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f11d184f-baf0-47de-8c6c-1d73391801be","html_url":"https://github.com/austinginder/LocalMeet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/austinginder/LocalMeet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinginder%2FLocalMeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinginder%2FLocalMeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinginder%2FLocalMeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinginder%2FLocalMeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/austinginder","download_url":"https://codeload.github.com/austinginder/LocalMeet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinginder%2FLocalMeet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["meetups","opensource","wordpress"],"created_at":"2026-01-22T19:47:15.941Z","updated_at":"2026-04-08T16:03:56.377Z","avatar_url":"https://github.com/austinginder.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![](img/LocalMeet-logo.png)\n\n## Self-starting local meetup groups\n\nLocalMeet is an open source meetup platform built as a WordPress plugin. It turns a WordPress site into a full-featured, self-hosted alternative to Meetup.com — with groups, events, RSVPs, email notifications, and a single-page app frontend.\n\n\u003e **Note:** LocalMeet takes over the entire frontend of your WordPress site. Only install on a dedicated WordPress instance.\n\n### Features\n\n**Groups**\n- Create and manage meetup groups with Markdown descriptions and custom slugs\n- Invite-based group creation — admins send invites with a group allowance, recipients can start their own groups\n- Member directory with join/leave tracking and CSV export\n- Per-group email notification preferences (members can mute notifications or one-click unsubscribe)\n- Configurable reply-to address for group emails\n- Search across all groups\n\n**Events**\n- Create events with name, date/time, end time, location, description, and cover image\n- Recurring events — weekly, biweekly, or monthly with automatic instance generation\n- Event capacity limits with RSVP enforcement\n- Cancel events with member notifications\n- Event search within a group\n- Markdown support for descriptions and summaries\n- iCal calendar attachments via spatie/icalendar-generator\n\n**RSVPs**\n- Logged-in users toggle going/not going instantly\n- Anonymous users RSVP via email verification — no account required upfront\n- Capacity checks enforced at RSVP time for both flows\n\n**Comments**\n- Members can post, edit, and delete comments on events (Markdown supported)\n- Comment moderation — organizers can approve or reject comments\n- Organizer notifications on new comments\n\n**Email notifications**\n- Event announcements to group members\n- Freeform group notices\n- Organizer alerts when members join, leave, or comment\n- Member notifications when a group is deleted\n- All verification flows (RSVP, join group, create group) use secure email tokens\n\n**Saved locations**\n- Groups can maintain a library of reusable locations (name, address, notes)\n- Select from saved locations when creating events\n\n**Media**\n- Organizers can upload cover images for events\n- Per-user media library\n\n**Accounts**\n- Email-based signup with automatic account creation\n- Password set/reset flows\n- Profile management (name, email, avatar via Gravatar)\n- First-time password prompt for users created through email verification\n\n**Security**\n- Parameterized SQL queries throughout (no raw string interpolation)\n- Rate limiting on login, password reset, RSVP, group creation, announcements, and join requests\n- Explicit permission callbacks on every REST endpoint\n- Proper HTTP methods (POST for mutations, DELETE for deletions)\n- Secure token generation with `random_bytes()`\n\n**Frontend**\n- Single-page app built with Alpine.js\n- Server-side prerendering for SEO\n- Responsive design with mobile support\n- Paginated groups, events, and comments\n\n### Requirements\n\n- PHP 7.4+\n- WordPress 5.0+\n- A dedicated WordPress installation (LocalMeet overrides the site frontend)\n\n### Installation\n\n1. Upload the `localmeet` folder to `/wp-content/plugins/`\n2. Activate the plugin through the WordPress admin\n3. Run the database migration: `LocalMeet\\DB::upgrade()`\n\n### License\n\n[MIT](license.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinginder%2Flocalmeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faustinginder%2Flocalmeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinginder%2Flocalmeet/lists"}