{"id":42067399,"url":"https://github.com/thesubtleties/atria","last_synced_at":"2026-01-26T08:16:57.545Z","repository":{"id":272100653,"uuid":"914616469","full_name":"thesubtleties/atria","owner":"thesubtleties","description":"Virtual and Hybrid Event management platform with real-time networking features. Create events, manage sessions, facilitate attendee connections, and enable live chat. Built with Flask, React, and Socket.IO.","archived":false,"fork":false,"pushed_at":"2025-12-30T19:01:58.000Z","size":6081,"stargazers_count":76,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:37:01.687Z","etag":null,"topics":["agenda","association","chat","community","creator-platform","direct-messaging","event-agenda","event-management","event-networking","events","hybrid-events","jitsi-meet","live-events","livestreaming","non-profit-organization","social-network","video-conferencing","virtual-events","zoom"],"latest_commit_sha":null,"homepage":"https://atria.gg","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thesubtleties.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"CLA.md"}},"created_at":"2025-01-10T00:26:00.000Z","updated_at":"2025-12-28T14:58:53.000Z","dependencies_parsed_at":"2025-01-12T06:17:21.526Z","dependency_job_id":"24f74f33-cc1e-4b83-81b8-9ba8e0ef4e23","html_url":"https://github.com/thesubtleties/atria","commit_stats":null,"previous_names":["thesubtleties/atria"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/thesubtleties/atria","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesubtleties%2Fatria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesubtleties%2Fatria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesubtleties%2Fatria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesubtleties%2Fatria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thesubtleties","download_url":"https://codeload.github.com/thesubtleties/atria/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesubtleties%2Fatria/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28770358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T07:45:00.504Z","status":"ssl_error","status_checked_at":"2026-01-26T07:45:00.070Z","response_time":59,"last_error":"SSL_read: 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":["agenda","association","chat","community","creator-platform","direct-messaging","event-agenda","event-management","event-networking","events","hybrid-events","jitsi-meet","live-events","livestreaming","non-profit-organization","social-network","video-conferencing","virtual-events","zoom"],"created_at":"2026-01-26T08:16:57.478Z","updated_at":"2026-01-26T08:16:57.535Z","avatar_url":"https://github.com/thesubtleties.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Atria - Event Management \u0026 Professional Networking Platform\n\n**Build meaningful connections that last beyond your events.**\n\n![Version](https://img.shields.io/github/v/release/thesubtleties/atria) [![Live Demo](https://img.shields.io/badge/demo-atria.gg-6366f1)](https://atria.gg) [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](LICENSE) [![Documentation](https://img.shields.io/badge/docs-docs.atria.gg-34d399)](https://docs.atria.gg)\n\n\u003e ⭐ **If you find Atria interesting, please consider starring this repository** — it helps us grow and reach more people who could benefit from the platform.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://storage.sbtl.dev/spookyspot/atriaslideshowsmall.webp\" alt=\"Atria Platform Overview\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n---\n\n## What is Atria?\n\nAtria is an **open-source event management platform** that combines comprehensive event administration with intelligent networking features. Unlike bloated enterprise tools or feature-creep SaaS platforms, Atria focuses exclusively on what matters: **your event and the connections made there**.\n\n### Why Atria?\n\n**Event-Focused, Not Platform-Focused**\nWhen you're managing an event, you see only that event. No distracting sidebars, no unrelated organizations, no feature overload. Just powerful tools to run your event and facilitate meaningful networking.\n\n**True Open Source \u0026 Data Ownership**\n- AGPL-3.0 licensed - complete transparency and freedom\n- Your data stays yours - export or migrate anytime, no vendor lock-in\n- Self-host or cloud - run it yourself for free, or use managed hosting\n- No surprise pricing - never held hostage by sudden price increases\n- Community-driven - talk directly to the developers who built it\n\n**Built for Real Events**\n- Corporations: Conferences, product launches, training events\n- Nonprofits: Fundraising galas, awareness campaigns, volunteer coordination\n- Education: Academic conferences, workshops, alumni gatherings\n- Faith Organizations: Church conferences, community gatherings, ministry events\n- Communities: Professional associations, industry meetups, local events\n\n---\n\n📰 **Stay Updated**: Follow our [blog](https://docs.atria.gg/blog) for release notes, feature announcements, and platform updates.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\nBefore you begin, ensure you have:\n\n- **Docker \u0026 Docker Compose** (recommended for quickest setup)\n- **Node.js 20+** and **Python 3.13+** (if running outside Docker)\n- **PostgreSQL 15+** (included in Docker setup)\n- **MinIO or S3-compatible storage** (required for file uploads)\n  - See [MinIO on GitHub](https://github.com/minio/minio) for self-hosted option\n  - Or use AWS S3, DigitalOcean Spaces, or other S3-compatible service\n- **Redis** (optional but recommended for caching and real-time features)\n  - App works without Redis (graceful degradation) but with reduced features\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/thesubtleties/atria.git\n   cd atria\n   ```\n\n2. **Configure environment**\n   ```bash\n   # Copy environment files (you need BOTH)\n   cp .env.example .env                                # For Docker Compose\n   cp .env.development.example .env.development        # For backend app\n   ```\n\n   **Why two files?**\n   - `.env` → Used by Docker Compose to set up PostgreSQL (minimal config)\n   - `.env.development` → Used by the Flask backend application (full config)\n\n   For local development, the defaults work out of the box! For production, edit:\n   - JWT secret keys (generate new ones!)\n   - MinIO/S3 credentials (for file uploads)\n   - Email settings (for invitations)\n   - Redis URL (for caching and real-time features)\n\n3. **Start the platform**\n\n   **Option A: Using the interactive chooser (recommended)**\n   ```bash\n   ./dev-environment-chooser.sh\n   ```\n   Select option **1) Standard Local Development** for the simplest setup.\n   - The chooser will ask if you want to seed the database with sample data\n   - **Recommended: Say yes (y)** for first-time setup to get sample organizations, events, and users\n\n   **Option B: Direct Docker Compose (no tmux required)**\n   ```bash\n   docker compose -f docker-compose.dev-vite.yml up\n   ```\n\n   By default, this will **automatically seed** the database with sample data.\n\n   To **disable** automatic seeding:\n   ```bash\n   SEED_DB=false docker compose -f docker-compose.dev-vite.yml up\n   ```\n\n   **Note**: Sample data includes test organizations, events, users, and sessions to help you explore features immediately.\n\n4. **Access your platform**\n   - **Frontend**: http://localhost:5173\n   - **Backend API**: http://localhost:5000\n   - **API Documentation**: http://localhost:5000/new-swagger\n   - **Health Check**: http://localhost:5000/api/health\n\nThe development environment includes:\n- Hot reload for frontend and backend\n- PostgreSQL database (seeded with sample data by default)\n- Automatic dependency installation\n\n**Need more detailed setup instructions?** → [Full installation guide](https://docs.atria.gg/docs/getting-started/installation)\n\n---\n\n## Core Features\n\n**Event Management**\n- Multi-day events with complex session scheduling\n- Drag-and-drop speaker management with role assignments\n- Real-time session status updates\n- Hybrid event support (virtual + in-person attendance)\n- Multi-platform video streaming (Vimeo, Mux with signed playback for token-based video security, Zoom)\n- Session-specific chat rooms (public and backstage)\n\n**Professional Networking**\n- Icebreaker system for personalized connection requests\n- Attendee discovery by role and interests\n- Privacy controls for profile visibility\n- Connection management and tracking\n\n**Real-Time Communication**\n- Multi-level chat system (general, Q\u0026A, networking, session-specific)\n- Direct messaging between attendees\n- Administrative and backstage channels\n- Live session chat during presentations\n- Socket.IO powered instant messaging\n\n**Multi-Tenant Architecture**\n- Organization-level management with data isolation\n- Role-based access control (Organization: Owner \u003e Admin \u003e Member)\n- Event-level permissions (Admin \u003e Organizer \u003e Moderator \u003e Speaker \u003e Attendee)\n- Cross-organization event support\n- Complete data security and separation\n\n**Sponsor Management**\n- Multi-tier system (Platinum, Gold, Silver, Bronze, custom levels)\n- Rich sponsor profiles with logos, descriptions, links\n- Drag-and-drop reordering for visual organization\n- Automatic image optimization (WebP conversion, 80-90% size reduction)\n\n**Security**\n- HTTPOnly cookie authentication (XSS protection)\n- JWT with automatic refresh tokens\n- Granular role-based permissions\n- Secure file storage with three-tier access control\n- Multi-tenant data isolation\n\n**Developer Experience**\n- Comprehensive OpenAPI documentation\n- RESTful API design\n- Real-time Socket.IO event system\n- Hot reload development environment\n- Docker-first deployment\n\n---\n\n## Technology Stack\n\n### Backend\n- **Python 3.13** with **Flask** framework\n- **PostgreSQL 15** with SQLAlchemy ORM\n- **Redis 7** for caching, presence tracking, and Socket.IO clustering\n- **Flask-SocketIO** for real-time features\n- **S3-compatible storage** (MinIO, AWS S3, or similar) for file uploads\n- **SMTP2GO** for transactional emails\n\n### Frontend\n- **React 18** with **Vite 6** build system\n- **Mantine UI 7** component library\n- **Redux Toolkit + RTK Query** for state management\n- **Socket.IO Client** for real-time updates\n- **Zod** for runtime validation\n\n---\n\n## Project Status\n\n**Current State**: Live at atria.gg with active development\n\n- Live deployment at [atria.gg](https://atria.gg)\n- 196 passing tests (~47% backend coverage, target: 80%+)\n- Automated CI/CD with GitHub Actions\n- Multi-instance scaling ready (Socket.IO clustering with Redis)\n- Actively maintained with regular updates\n\n**Roadmap highlights**:\n- Advanced reporting \u0026 analytics\n- Interactive polling system\n- Ticketing integrations\n- AI-enhanced features (session imports, chat host)\n- Custom event theming\n- Enhanced mobile experience\n\n**Full roadmap \u0026 changelog** → [docs.atria.gg/roadmap](https://docs.atria.gg/roadmap)\n\n---\n\n## Documentation \u0026 Resources\n\n- **Complete Documentation**: [docs.atria.gg](https://docs.atria.gg)\n- **API Reference**: [docs.atria.gg/docs/api/atria-api](https://docs.atria.gg/docs/api/atria-api)\n- **Community Support**: [GitHub Discussions](https://github.com/thesubtleties/atria/discussions)\n- **Bug Reports**: [GitHub Issues](https://github.com/thesubtleties/atria/issues)\n- **Commercial Support**: [steven@sbtl.dev](mailto:steven@sbtl.dev)\n\n---\n\n## Contributing\n\nWe welcome contributions from the community! Whether fixing bugs, adding features, or improving documentation, your help makes Atria better for everyone.\n\n**Before contributing, please:**\n1. Read our [Contributing Guidelines](CONTRIBUTING.md)\n2. Sign the [Contributor License Agreement](CLA.md)\n3. Check existing [issues](https://github.com/thesubtleties/atria/issues) and [discussions](https://github.com/thesubtleties/atria/discussions)\n\n**Quick contribution guide**:\n- Fork the repository and create a feature branch\n- Follow existing code style and patterns\n- Add tests for new functionality\n- Update documentation as needed\n- Submit a PR with clear description\n\nAll contributions must pass our CI test suite before merging.\n\n---\n\n## Licensing\n\n### Open Source (AGPL-3.0)\n\nAtria is licensed under the [GNU Affero General Public License v3.0](LICENSE).\n\n**You can:**\n- Use, modify, and distribute freely\n- Run for any purpose including commercial use\n\n**Requirements:**\n- Modifications must be licensed under AGPL-3.0\n- If you run modified code on a server, you must provide source code to users\n- Attribution required: Keep \"atria is made with ❤️ by sbtl\" in the UI\n  - \"atria\" links to https://atria.gg\n  - \"sbtl\" links to https://sbtl.dev\n\n**Full attribution requirements** → [LICENSE-ATTRIBUTION.md](LICENSE-ATTRIBUTION.md)\n\n### Commercial License\n\nFor organizations that cannot comply with AGPL-3.0:\n- Private modifications without source disclosure\n- Integration into proprietary systems\n- Custom support and SLA options\n- No attribution requirements\n\n**Contact for commercial licensing**: [steven@sbtl.dev](mailto:steven@sbtl.dev)\n\n---\n\n## Deployment Options\n\n### Self-Hosted (Free)\nRun your own instance with complete control. Perfect for organizations with specific compliance requirements or those who prefer full data ownership.\n\n- Free under AGPL-3.0 license\n- Complete control over data and infrastructure\n- Full source code access for customization\n- Community support via GitHub\n- **Note**: Self-hosted instances are isolated - users only connect within your events, not across other organizations using Atria\n- **Need to self-host but can't comply with AGPL?** Contact us about commercial licensing options: [steven@sbtl.dev](mailto:steven@sbtl.dev)\n\n### Managed Hosting (atria.gg)\nUse the hosted SaaS platform with extended networking capabilities and zero infrastructure management.\n\n**Currently in Early Access** - Experience Atria with no event size restrictions while we finalize features and stabilize the platform.\n\n- **Free during Early Access** - no event size limits\n- Cross-event networking - users can connect beyond individual events\n- Connections are tagged by the event where they originated, keeping your event visible\n- Actively maintained with bug fixes and updates\n- Multi-tiered data protection (Longhorn + Backblaze B2 backups)\n- Broader community reach - attendees can discover familiar faces from other events\n- **Note**: Early Access means best-effort uptime while we work toward production-grade infrastructure\n\n**After v1.0 Release**: Free tier for events up to 50 attendees, with paid tiers for larger events and premium features\n\n### Custom Private Instance\nGet the benefits of managed hosting with the isolation of self-hosting, plus custom features.\n\n- Managed setup and maintenance without your IT team's involvement\n- Private, isolated instance (not part of the shared community)\n- Custom branding and feature development\n- Flexible commercial licensing (can work around AGPL requirements)\n- Custom data retention and reporting capabilities\n- Pricing and terms negotiable based on your needs\n\n**Questions about deployment?** → Contact [steven@sbtl.dev](mailto:steven@sbtl.dev)\n\n---\n\n## Support\n\n**Community Support**:\n- Documentation: [docs.atria.gg](https://docs.atria.gg)\n- GitHub Discussions: [Community forum](https://github.com/thesubtleties/atria/discussions)\n- GitHub Issues: [Bug reports \u0026 feature requests](https://github.com/thesubtleties/atria/issues)\n\n**Commercial Support**:\n- Email: [steven@sbtl.dev](mailto:steven@sbtl.dev)\n- Response time: 24-48 hours for general inquiries\n- Priority support available for managed hosting customers\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Ready to transform your events?** [Get started now](#quick-start) or [try the live demo](https://atria.gg)\n\n_Building meaningful connections, one event at a time._\n\nMade by [SBTL](https://sbtl.dev) | Copyright © 2025 SBTL LLC\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesubtleties%2Fatria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesubtleties%2Fatria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesubtleties%2Fatria/lists"}