Things I learned shipping a Discord bot this week:
1. Railway's restart policy can cause rapid reconnects Discord IP ban.
Set restartPolicyMaxRetries to 3, not 5. The fewer restarts, the less likely you get rate limited.
2. SQLite is fine for a Discord bot.
WAL mode + aiosqlite = zero issues so far. You don't need Postgres until you're at hundreds of servers with heavy concurrent writes.
3. discord.py slash commands take up to 1 hour to propagate globally.
For instant updates during development, sync to a specific guild instead. But remove guild sync before production or you get duplicates.
4. matplotlib heatmaps are slower than expected (~300ms per render).
Just shipped v1.2.0! 🚀
Biggest change: Ko-fi payments now auto-activate.
Previously I had to manually grant paid tier after every payment, not scalable. Now when someone pays on Ko-fi and includes their Discord Server ID in the message, the bot detects it automatically and activates their subscription instantly.
Also added /announce so I can broadcast updates directly to servers that opt in, much better than hoping people check the changelog.
Invite Link: https://discord.com/oauth2/authorize?client_id=1482225606761386085&permissions=2147601472&integration_type=0&scope=bot+applications.commands
For any questions, DM semti1 on Discord.