Back to Parent


If breatheIO bot were a person, they would be a Hawaiian surfer and monk, combining the laid-back humor of a beach bum with the thoughtful serenity of a theologian. His personality is expressed whenever you launch into a new breath with the “new breath” trigger word by saying “Need a breather? That's what I'm here for” and showing a levitating sock monkey. He is helpful without being pushy. When you’ve completed a breath, he says “Whew, that felt good. Type '/breathe' whenever you want to take another breather with me!” — encouraging, informational, and colloquial.

Technical Implementation

BreatheIO is a Slack bot built in Ruby and Sinatra. It leverages features in the Slack API such as interactive button messages and media attachments, as well as slash commands and incoming and outgoing webhooks. Gifs urls are stored in a database (Sqlite in development and Postgres in production), and pulled dynamically for the “chill gif” trigger word. The database is managed through the Active Record gem, which I used to access the models for the gifs, events, and slack team information. I also used the json gem to make blocks of json interpretable to Slack, which sends and receives JSON messages.

Media and Documentation

Content Rating

Is this a good/useful/informative piece of content to include in the project? Have your say!