Triggered
IFTTT-style Discord automation: compose trigger → action rules, persisted in MongoDB.
Built
Users compose when/then rules across messages, reactions, voice, roles, and schedules. Triggers and dos load from a JSON registry; slash UX handles validation and autocomplete; permissions are scoped per server. Docker Compose + pytest; the hosted instance is personal, not a product.
IFTTT, but for one guild
Triggered is Discord automation you compose instead of code. When a message / reaction / voice / role / schedule event fires, a stored rule runs an action. Triggers and dos load from a JSON registry so the slash UX can validate and autocomplete without a hardcoded switch.
Permissions are scoped per server. Docker Compose + pytest. The hosted instance is personal, not a product.
Registry, then persistence
The useful design choice was making the registry the source of what can exist, and Mongo the source of what this guild actually configured. Autocomplete stays honest. A missing trigger type fails closed instead of executing a half-built rule.
I would not sell this as a platform. I would show it as the moment I stopped writing one-off cogs for every “if X then Y” request.