How decatrondev/decatron works
Decatron is a multi-tenant streaming toolkit for Twitch and Kick. Streamers configure bot features and OBS browser-source overlays in the React dashboard; viewers interact through chat, public pages, and overlays, while developers can use the OAuth2 API. The backend serves the dashboard and real-time integrations, with PostgreSQL as its shared persistence layer. The graph preserves documented product areas; source excerpts are selective, so several subsystem links reflect README-level architecture rather than inspected runtime calls.
Main entry points: Program.cs ASP.NET Core API · DecatronDbContext.cs Entity Framework context · pages Dashboard and public pages · SongRequest Song requests
Components 22
Dashboard and overlays
- Dashboard and public pages
ClientApp/src/pages - Overlay renderers
ClientApp/src/components
Bot and streaming features
- Bot commands
Decatron.Custom/Commands/CreateCommand.cs - Command scripting
Decatron.Scripting - Chat moderation
Decatron.Core/Services/ModerationService.cs - Song requests
Decatron.Services/SongRequest - Timers and alerts
Decatron.Controllers/TimerExtensionController.cs - Tournaments
Decatron.Services/Tournament - Live translation
Decatron.Services/LiveTranslation - Discord features
Decatron.Discord
Platform services
- ASP.NET Core API
Program.cs - OAuth2 API
Decatron.Services/OAuthService.cs - Tenant and entitlements
Decatron.Services/Tenancy - Platform integrations
Identity and persistence
- Users and accounts
Decatron.Core/Models/User.cs - Platform and timer models
Decatron.Core/Models/Platform/Tenancy.cs - Core service contracts
Decatron.Core/Interfaces - Entity Framework context
Decatron.Data/DecatronDbContext.cs
Other components
- Streamers and moderators
- Viewers
- Developers
- PostgreSQL
Connections 30
- Streamers and moderators → Dashboard and public pages: configure features
README.md - Viewers → Dashboard and public pages: use public pages
README.md - Dashboard and public pages → ASP.NET Core API: HTTPS and JWT
README.md - Dashboard and public pages → Overlay renderers: configure overlays
README.md - Overlay renderers → ASP.NET Core API: SignalR updates
README.md - Viewers → Bot commands: send chat commands
README.md - ASP.NET Core API → Bot commands: serves bot features
README.md - ASP.NET Core API → Command scripting: serves scripts
README.md - ASP.NET Core API → Chat moderation: serves moderation
README.md - Dashboard and public pages → Song requests: manage requests
README.md - Viewers → Song requests: request songs
README.md - ASP.NET Core API → Song requests: serves queue
README.md - ASP.NET Core API → Timers and alerts: serves timer features
README.md - ASP.NET Core API → Tournaments: serves tournaments
README.md - ASP.NET Core API → Live translation: serves translation
README.md - ASP.NET Core API → Discord features: serves Discord bot
README.md - Developers → OAuth2 API: authorize applications
README.md - ASP.NET Core API → OAuth2 API: hosts OAuth2 API
README.md - ASP.NET Core API → Tenant and entitlements: enforces tenant access
README.md - ASP.NET Core API → Platform integrations: connects integrations
README.md - ASP.NET Core API → Entity Framework context: persists application data
README.md - Entity Framework context → PostgreSQL: reads and writes
README.md - Tenant and entitlements → Entity Framework context: checks storage quota
Decatron.Services/Tenancy/StorageQuota.cs - Timers and alerts → Entity Framework context: reads and writes
Decatron.Controllers/TimerExtensionController.cs - Song requests → Entity Framework context: reads pending requests
Decatron.Services/SongRequest/SongRequestReviewService.cs - Song requests → Platform integrations: notifies requester chat
- Users and accounts → Entity Framework context: stored as user data
README.md - Platform and timer models → Entity Framework context: mapped for persistence
Decatron.Data/DecatronDbContext.cs - OAuth2 API → Entity Framework context: stores tokens
Decatron.Services/OAuthService.cs - Core service contracts → Tenant and entitlements: defines entitlement contract
Decatron.Core/Interfaces/IEntitlements.cs