Announcing Campmaster Constantine


I’ve been on Discord for five years now, and I’ve been developing bots for it since at least 2016. In that time I’ve really had two major bot projects, namely the OtmasBot and Kronos. Both of those were implemented in Node.JS, and they both had their respective problems. The OtmasBot was a mess, and sometimes the token even got leaked into git as well. Kronos was different. Kronos had a decent command framework (run through discord.js-commando) and commands that (sometimes) worked. The major difficulty I ran into with Kronos was getting the databases to play nicely with my code. There were multiple issues with SQLite and Docker, spread across many different repositories as I tried GitHub, GitLab, and different frameworks like Klasa. None of them worked, and the project lost my interest for a while.

Camp Quarantine

Enter Camp Quarantine, a new Discord server focused around inclusive international Scouting. As one of the founding staff members, I wanted to provide something to help the server out, and I immediately thought of a bot. At first, I was going to implement it in Node.JS again. Then, I remembered all the difficulties I had last time I tried that, and I remembered that I’ve been meaning to learn Rust for a while. I know that making a Discord bot is not exactly the preferred way to learn a new language, but it worked for Node.JS, why couldn’t it work with Rust? I decided on using the serenity library, which included a “Standard Framework” to make commands easier.


Around this time, I discovered Sourcehut. Sourcehut is a simple, JavaScript-free project site that’s split up into several different services, like Git, CI, and Todo lists. I decided I’d give Sourcehut a go along with Rust.

The Outcome

Somehow, this combination of new services, languages, and libraries worked. I’ve been more productive in the last few weeks than I ever have been before. Campmaster Constantine has grown in functionality faster than either Kronos or the OtmasBot, and the code is cleaner and faster. My databases “just work”. I’ve finally figured out how to make Continuous Deployment work properly, and I’ve learned so much about Rust and Git.

For all software developers, I’d highly recommened both Rust and Sourcehut. They’re both incredibly powerful and useful tools. As for the Campmaster, he’s available to join your Discord servers and start working today! You can read more about him here.

Have a comment or question on one of my posts? Start a discussion in my public inbox by sending an email to ~muirrum/[email protected]. If you are unfamiliar with mailing lists, start with mailing list etiquette. Otherwise just shoot me an email to my address which is linked in the sidebar.

Articles from blogs I follow

De-Google my blog - How to blog in 2020 without Google

Hi everyone! Right now I have Google almost completely out of my life, but some of the top commentaries of my posts in /r/degoogle and /r/selfhosted were “Your blog still uses google for resources lol”, so I needed to change that. Shame. In my old blog, the …

via rogs | Blog May 20, 2020
Status update, May 2020

This month I’ve started working with Valve, the company behind the Steam game platform. I’ll be helping them improving gamescope, their gaming Wayland compositor. Unlike existing compositors, gamescope uses Vulkan and libliftoff. Because these are pretty …

via emersion May 18, 2020
Status update, May 2020

Hello, future readers! I am writing to you from one day in the past. I finished my plans for today early and thought I’d get a head start on writing the status updates for tomorrow, or rather, for today. From your reference frame, that is. Let’s start with W…

via Drew DeVault's Blog May 15, 2020

Generated by openring