Sure, it might not be obvious why the world needs yet another bot framework, but I’m working on one. The idea is to make a scalable, intuitive, and feature-rich framework that runs on the latest Ruby. Long-running tasks shouldn’t be a problem and the framework should make things like caching a breeze. Permissions are a first-class concept, as are features like threaded replies, reactions, blocks (for rich-text responses), and support for more than just chat input. Enter Waylon: a bot framework built with these concepts (and more) in mind.
I still have a lot of work to do for documenting the framework, plus some of the features I’d like aren’t yet implemented (things like conversation “sessions” for tracking the conversation), but I do have some plugins that’ll give you a sense of what Waylon can do.
First, I have the Slack Sense. For Waylon, a Sense is an input to the bot. I kept it generic because it could potentially be anything, from a webhook to a Chat client. This particular Sense is based around the Slack Events API (unlike most Slack bot clients that use the now-deprecated RTM API).
A fun plugin I wrote is the Wordle Skill that allows the bot to “play” Wordle and report its attempt at a solution.
One question I’m sure is on your mind, since you’re read this far: why the name “Waylon” of all options? Well, it was an available gem name on https://rubygems.org/, so that helps, plus, as a fan of The Simpsons, Waylon Smithers, Jr. seemed like just the faithful assistant I’d want a bot to emulate.
I’ll almost certainly post more about the framework as I expand its capabilities more. Let me know if you find it interesting or if you have ideas on how to improve it!