---
title: "Deploy keen-fair"
description: "Deploy and Host keen-fair with Railway"
category: "Bots"
url: https://railway.com/deploy/keen-fair
---

# Deploy keen-fair

Deploy and Host keen-fair with Railway

**[Deploy keen-fair on Railway](https://railway.com/template/keen-fair)**

- **Creator:** Yogen Parekh's Projects
- **Category:** Bots
- **Total deploys:** 1

## Template content

### Slack pr bot

- **Source:** yogen-p/github-pr-slack-bot

## Documentation

# Deploy and Host keen-fair on Railway

keen-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 (:white_check_mark: approved, :rabbit2: changes requested), removes stale reactions when new commits are pushed, and deletes the message automatically when a PR is merged or closed. 

## About Hosting keen-fair

keen-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 keen-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

- [Slack API — Create an app](https://api.slack.com/apps)                                                                                                                                                                                                                          
- [GitHub — Personal access tokens](https://github.com/settings/tokens)
- [GitHub — Configuring webhooks](https://docs.github.com/en/webhooks/using-webhooks/creating-webhooks)                

### Implementation Details

The bot uses [@slack/bolt](https://github.com/slackapi/bolt-js) for the Slack integration and [@octokit/rest](https://github.com/octokit/rest.js) 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.

## Why Deploy keen-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 keen-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.


## Similar templates

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Aug ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Aug ’26] (Media Downloader, Converter & Automation) Self Host
- [Telegram Gateway](https://railway.com/deploy/railway-telegram-gateway) — Multi-bot Telegram webhook gateway with WebSocket event streaming

Open this page in a browser: https://railway.com/deploy/keen-fair
