Deploy calm-fair
Railway

Deploy calm-fair

GitHub PR lifecycle tracker for Slack: reviews, reactions, cleanup

Deploy calm-fair

GitHub-Slack PR Bot

yogen-p/github-pr-slack-bot

Just deployed

Deploy and Host calm-fair on Railway

calm-fair is a Slack bot that tracks GitHub pull request activity in real time. It posts new PRs to your channel, reacts with emoji as reviews come in (✅ approved, 🐰 changes requested), removes stale reactions when new commits are pushed, and deletes the message ─ automatically when a PR is merged or closed.

About Hosting calm-fair

calm-fair is a lightweight Node.js server that listens for two types of incoming events: GitHub webhook payloads (pull request and review activity) and Slack mention events (team queries like "needs review" or "oldest PR"). It maintains a small JSON store mapping PR numbers to Slack message timestamps, which it uses to update reactions and delete messages as PR state changes. The server needs to be always-on with a stable public URL so GitHub and Slack can reach it reliably — Railway handles both out of the box.

Common Use Cases

  • Automatically notify your team's Slack channel when a new PR is opened, without anyone having to post it manually
  • Get a live visual indicator of review status on each PR message without leaving Slack
  • Ask the bot for a quick summary of outstanding review work: which PRs need a first review, which are approved and ready to merge, and which have been sitting the longest

Dependencies for calm-fair Hosting

  • A Slack app with chat:write, chat:delete, reactions:write, reactions:read, app_mentions:read, and channels:history scopes
  • A GitHub personal access token with repo and read:org scope, and a webhook configured on your repository

Deployment Dependencies

Implementation Details

The bot uses @slack/bolt for the Slack integration and @octokit/rest for GitHub API queries. All configuration is driven by environment variables — including the emoji used for reactions — so no
code changes are needed to customise it for your team.

Set your GitHub webhook payload URL to:
```
https://your-railway-url.railway.app/github/webhook ```
And your Slack Event Subscriptions request URL to: ```
https://your-railway-url.railway.app/slack/events ```

Add a Railway Volume mounted at /app/data to persist PR state across redeploys.

Why Deploy calm-fair on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying calm-fair on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

GitHub-Slack PR Bot

yogen-p/github-pr-slack-bot

More templates in this category

View Template
Telegram JavaScript Bot
A template for Telegram bot in JavaScript using grammY

Agampreet Singh
View Template
Cobalt Tools [Updated Apr ’26]
Cobalt Tools [Apr ’26] (Media Downloader, Converter & Automation) Self Host

shinyduo
View Template
Whatsmiau
Deploy Whatsmiau on Railway. WhatsApp REST API. One click.

Douglas Rubim