MCPSERV.CLUB
Gathio

Gathio

Self-Hosted

Federated, privacy‑first event hosting platform

Active(70)
406stars
0views
Updated Aug 30, 2025

Overview

Discover what makes Gathio powerful

gathio is a **federated, privacy‑first** platform for creating and managing polls and events. At its core it exposes a lightweight REST API and an event‑driven architecture that allows developers to embed or extend its functionality in a variety of contexts. The application is written in **Go** and uses the **Gin** web framework for routing, while a PostgreSQL database backs all persistent data. JSON Web Tokens (JWT) provide stateless authentication, and the system can be deployed behind a reverse proxy or as a containerized service.

Federation

Privacy‑first

Real‑time updates

Extensible API

Overview

gathio is a federated, privacy‑first platform for creating and managing polls and events. At its core it exposes a lightweight REST API and an event‑driven architecture that allows developers to embed or extend its functionality in a variety of contexts. The application is written in Go and uses the Gin web framework for routing, while a PostgreSQL database backs all persistent data. JSON Web Tokens (JWT) provide stateless authentication, and the system can be deployed behind a reverse proxy or as a containerized service.

Key Features

  • Federation – gathio supports ActivityPub, enabling users to share events and polls across other federated services.
  • Privacy‑first – all event data is stored encrypted at rest, and the platform does not collect or transmit user identifiers beyond what is required for authentication.
  • Real‑time updates – a WebSocket endpoint pushes event status changes to subscribed clients, making it suitable for live voting or interactive scheduling.
  • Extensible API – the public REST endpoints expose CRUD operations for events, polls, and participants; custom fields can be added via a JSON schema extension.
  • Webhooks – external services can subscribe to event lifecycle hooks (created, updated, cancelled) and receive JSON payloads.

Technical Stack

LayerTechnology
Web frameworkGin (Go)
DatabasePostgreSQL (schema‑driven, ACID compliant)
AuthenticationJWT + OAuth2 provider integration
Real‑timeGorilla WebSocket (Go)
Build & CIGitHub Actions, Go modules
DocumentationMkDocs (Python)
ContainerizationDocker + docker‑compose templates

The Go implementation keeps binary size small and compilation time fast, making it trivial to ship a stateless instance in a single container. The PostgreSQL schema is versioned with sql-migrate, allowing seamless upgrades in production.

Deployment & Infrastructure

gathio is self‑hostable on any machine that can run Go binaries or Docker containers. The repository ships with a docker-compose.yml that starts the web server, PostgreSQL, and a reverse proxy (Traefik) out of the box. For larger deployments, Kubernetes manifests are provided in the deploy/k8s directory; they expose horizontal pod autoscaling based on WebSocket connection count and CPU usage. The application is stateless except for the database, so scaling horizontally requires only a shared PostgreSQL instance or a read‑replica setup.

Integration & Extensibility

  • Plugin system – developers can write Go plugins that hook into the event lifecycle (e.g., custom validation, notification dispatch). Plugins are loaded at startup from a designated directory.
  • Webhooks & API – external services can register webhook URLs via the /api/webhooks endpoint. Each event emits event.created, event.updated, and event.deleted.
  • SDKs – a Go SDK is available as a submodule, simplifying interaction with the API.
  • Custom UI – while gathio ships a React front‑end, the API is fully decoupled, allowing developers to build their own UIs or integrate into existing dashboards.

Developer Experience

The codebase follows idiomatic Go conventions, with clear module boundaries and extensive unit tests. Documentation is hosted on docs.gath.io and built from Markdown files in the docs/ directory using MkDocs, ensuring consistency between API reference and user guides. The community is active on GitHub; contributors are recognized via a visual contributor graph, and issues can be triaged through the CI workflow. Licensing is permissive (MIT), encouraging commercial or internal use without restrictions.

Use Cases

  1. Corporate event scheduling – Teams can create confidential polls for meeting times, with federated sharing to external partners.
  2. Community meetup coordination – Open‑source projects can host events on a self‑hosted instance, preserving data privacy while leveraging ActivityPub to reach other federated services.
  3. Interactive voting platforms – Developers can embed the real‑time poll API into dashboards or mobile apps, using WebSockets for instant results.
  4. Compliance‑heavy environments – The encryption at rest and self‑hosted nature make gathio suitable for regulated industries that cannot rely on third‑party SaaS.

Advantages

  • Performance – Go’s compiled binaries deliver low latency and minimal memory footprint, ideal for high‑traffic polling scenarios.
  • Flexibility – The plugin architecture and API-first design allow deep customization without modifying core code.
  • Privacy & Control – Self‑hosting gives developers full control over data residency, encryption keys, and compliance settings.
  • Federation – Built‑in ActivityPub support opens the door to cross‑platform collaboration without custom integrations.
  • Community & Documentation – Active maintenance, clear docs, and an open license reduce onboarding friction for new teams.

In summary, gathio offers a lightweight yet powerful foundation for any developer needing a privacy‑centric event and poll management system that can scale, integrate, and evolve within their own infrastructure.

Open SourceReady to get started?

Join the community and start self-hosting Gathio today