
Note: 🚧 this is still in early development so it may be buggy, please create a Github issue with feedback / bug reports and we will get them resolved!
A Slack application that connects GitHub activity to your team's Slack workspace, delivering customizable notifications about Pull Requests, Issues, Discussions, etc. in near real-time.
Radar was built with inspiration from Toast and Graphite. I wanted something simpler and lighter than Graphite but with a few key features that Toast was missing. I built it to be more configurable and feature-rich yet still simple and fast.
- Smart Notifications: Routing based on user roles (author, reviewer, assignee)
- Real-time Delivery: Fast notifications from GitHub webhooks to Slack
- Full Event Support: PRs, issues, reviews, comments, discussions, and more
- Keyword-Based Notifications: Smart keyword matching (using AI 👀)
- Digest Notifications: Configurable scheduled summaries of pull requests activity
- Open Source Mode: Run self-hosted with full features enabled (no billing required)
- Node.js 18+
- npm package manager
- Slack workspace with admin privileges
- GitHub account with access to repositories you want to track
- Docker and Docker Compose (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/zlwaterfield/radar.git cd radar
-
Install dependencies for both backend and frontend:
# Install backend dependencies cd app npm install # Install frontend dependencies cd ../client npm install
-
Set up environment variables:
Backend (app directory):
cd app # Create .env file with your configuration # See Configuration section below for required variables
Frontend (client directory):
cd client # Create .env.local file with your configuration # See Configuration section below for required variables
-
Set up the database:
cd app # Generate Prisma client npx prisma generate # Run database migrations npx prisma migrate dev
-
Run the applications:
Start the backend (NestJS API):
cd app npm run start:dev
The API will be available at
http://localhost:3000
Start the frontend (Next.js app):
cd client npm run dev
The frontend will be available at
http://localhost:3001
-
Set up Trigger.dev:
You'll need a Trigger account and to configure your environment variables.
# Login to Trigger.dev
npx trigger login
# Make sure to set TRIGGER_SECRET_KEY and TRIGGER_SECRET_KEY in your app/.env file
# You can find this in your Trigger.dev dashboard
- Set up a tunnel for webhooks (recommended):
For local development, you'll need a public URL for GitHub webhooks and Slack events. We recommend using ngrok:
# Install ngrok (if not already installed)
# Visit https://ngrok.com/download for installation instructions
# Start ngrok tunnel on port 3003 (where your app will receive webhooks)
ngrok http 3003
Copy the HTTPS URL provided by ngrok (e.g., https://abc123.ngrok.io
) and use it for:
- GitHub webhook URLs
- Slack event subscriptions
- Update your environment variables accordingly
-
Run Trigger.dev:
cd app npx trigger.dev@latest dev
See the documentation for detailed setup instructions including:
- Creating a Slack app
- Setting up GitHub authentication
- Open Source Mode - Run without billing/payments
- User and team settings
The application requires several environment variables to be set. See the two .env.example
for a complete list with descriptions.
Key environment variables include:
- Slack API credentials
- GitHub API credentials
- Application settings
- Trigger credentials
- Payment settings (optional - set
PAYMENT_ENABLED=false
for open-source mode)
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details.