Quick summary of my scrambled ideas so far:
- set up on the main dashboard/site
- to be able to access bans data, we require a new bot: Appeals
- config options around unappealable bans (either manually managed or marking automatically via string matching in the reason)
- how long to wait before reappealing
- appeal format (questions, etc)
- maybe more i'm not thinking of right now?
- also on the main dashboard, appeals can be managed. the previously mentioned bot is used fo post in Discord notifications. lots of uses of the token grant system to let mods easily manage appeals without needing to follow the regular dash oauth flow
- perhaps this is actually undesirable/too hard to work with - instead the dash is more of a tool to view an overview of past/present appeals, but actions are taken via in-Discord buttons
- we own unban.app - this would be a new nextjs app within apps/appeals. users oauth via the Appeals bot/app (to avoid confusion by shoving ChatSift in there). we compute the list of guilds the user is banned from that are part of the system and allow them to submit appeals. appeal status is transparently shown on the site
- to notify the user, we set up a guild with no text channels, where via the bot we post some info embeds in a read-only channel instructing users to have open DMs & a button that tests if they've set it up correctly. this guarantees that staff teams' decisions can be sent to the user. UI on both sides can warn if the user is likely not notifiable
- the server will strictly forbid DMing other users in it - this will be its only rule, which leads to a ban if broken (we'll set up ModMail)
- bot requires virtually no gateway/live events. it's "HTTP-only" but has no commands in user-facing guilds. just the stuff for our get-notifications-guild handling a few buttons. we can shove it into the API as opposed to spinning another service
- late thought (5d later): we should support appealing timeouts too
Quick summary of my scrambled ideas so far: