AutoMod

Moderation bot for Stoat that keeps communities safe.

AutoMod is a moderation and utility bot for the chat platform Stoat, of which I am a core team member. It is one of the most popular bots on the platform, being present in over 8700 servers with a combined total user count in excess of 230,000 people.

A user adds the word 'poo' to the filter list using '/filter add poo'. AutoMod confirms the addition with 'strictness HARD.'
AutoMod following a request to begin filtering out a word.

I am responsible for the bot’s full development lifecycle, including its development, maintenance, and hosting for the official Stoat instance. AutoMod provides essential moderation features such as message filtering, punitive user actions, and comprehensive action logging, among much more.

Spurred by the growing need for improved user resources, I created a custom documentation website from the ground up, making comprehensive support materials presented in an accessible manner available to all users. Realising the need for better communication with the user base, I extended this site to also support a blog.

The bot is developed in a monorepo, written in JavaScript/TypeScript. It is built with a modern stack but is purposefully very lean on dependencies for improved security, size, and maintainability. It does rely upon some modern libraries and technologies, including:

  • Valkey, a fork of Redis, for high-speed caching and real-time operations.
  • MongoDB for persistent data storage.
  • Docker for containerisation, allowing consistent and reliable deployment and distribution.

Though AutoMod is largely a back-end affair, my personal skill set lies in the front-end, which came into play for the development of a full web-based dashboard to manage the bot’s functions and presence in servers. From the dashboard, users can graphically manage spam handling, message filtering, command prefixes, and a range of other options after logging in through a custom login flow.

A dashboard interface with a grid of cards indicating different servers, with some information about each, including if the person is an owner, manager, moderator, or user.
AutoMod dashboard’s server overview page.

Other Bots

Given AutoMod’s huge success and large demand, I also created other bots.

The biggest in scope is AutoFeeds, which automatically fetches and posts new items from user-specified RSS, Atom, and JSON feeds. It is also containerised with Docker and stays simple with a database using the SQL-based MariaDB.

I also created AutoDice, a dice bot perfect for people playing tabletop role-playing games, and also a bot which only allows users to send emojis. All have proved a great success and have been loved by users.

Combined AutoMod and AutoFeeds branding showing the logos and text with a rainbow banner behind them.

The entire AutoMod project is open-source and can be found on Tangled under the AGPL v3.