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
| Layer | Technology |
|---|---|
| Web framework | Gin (Go) |
| Database | PostgreSQL (schema‑driven, ACID compliant) |
| Authentication | JWT + OAuth2 provider integration |
| Real‑time | Gorilla WebSocket (Go) |
| Build & CI | GitHub Actions, Go modules |
| Documentation | MkDocs (Python) |
| Containerization | Docker + 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/webhooksendpoint. Each event emitsevent.created,event.updated, andevent.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
- Corporate event scheduling – Teams can create confidential polls for meeting times, with federated sharing to external partners.
- 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.
- Interactive voting platforms – Developers can embed the real‑time poll API into dashboards or mobile apps, using WebSockets for instant results.
- 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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Tiny File Manager
Lightweight web file manager in a single PHP file
Peergos
Private, end‑to‑end encrypted cloud for the web of your data
Dashpress
Generate admin dashboards from your database instantly
Drop
Open‑source DRM‑free game distribution platform
ApostropheCMS
Full-stack CMS with in-context editing and headless flexibility
Shlink
Self-hosted URL shortener with analytics and QR codes