We use Slack intensively within our team to share knowledge. We created a dedicated news channel to post relevant articles, but usually don't have time to read the all the stuff during working hours. It's also not so easy to keep track of all articles you've already read. RSSBot can help.
What it does
RSSBot organizes all shared links within a channel and generates a RSS feed which can be imported in any RSS reader. Now it's easier to read shared articles from Slack while on the go e.g. in the subway.
How I built it
The bot runs as micro service on AWS Lambda leveraging DynamoDB and SNS to decouple asynchronous tasks (e.g. to fetch additional metadata of the link). To fully automate deployment of the micro service in multiple stages I used CloudFormation and Serverless.com framework.
Challenges I ran into
The main challenge was to accomplish an automated deployment of the AWS infrastructure with serverless.com and pass dynamic references to the micro services within a multi-stage environment.
How to test the bot
The easiest way is with Slack's outgoing webhook:
- Open: https://my.slack.com/services/new/outgoing-webhook
- Leave trigger words empty
- Use the following URL in the URL(s) field: https://7b11on0k17.execute-api.eu-west-1.amazonaws.com/dev/hook/slack/out
- You are ready!
Alternative: host your own RSSBot
- Download the source code from git and follow the simple steps in README.md