A routing layer between your forge and your team.
ForgeRelay does not replace GitHub or GitLab. It decides what reaches chat, who gets mentioned, and how the conversation stays current until the request is merged. Reviews stay in threads. Direct-to-main stays visible.
Routing
A route is a policy, not a single alert.
One repository, one destination, and every event type that belongs to that pairing. Conditions live in a collapsed disclosure so the common case stays readable.
Rule subjects
- Pull requests
- Commits
Relayed events
- opened
- review_requested
- approved
- merged
- checks failed
Conditions
- branch = main
- label ≠ wip
- author ≠ dependabot
- Presets: Review essentials, Full lifecycle (with CI), Pipeline monitoring, Custom
- Searchable pickers for repositories, workspaces and channels
- Route summary shows route ID, saved state and how many features are overridden
Threads
One request, one living thread.
The first event posts a summary in the channel. Everything after it updates the same thread, so the channel keeps one line per request instead of six.
-
FR
ForgeRelay APP 14:02
#482 Review requested — cache invalidation
Status: Awaiting review
northwind/api · feat/edge-cache → main
- Opened by
- dana.k
- Reviewers
- alex.r
- CI
- 2 pending, 4 total
- Size
- +128 · −41 · 3 files
Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay
Open pull request
-
FR
ForgeRelay APP 14:09
Open pipeline #58217
2 of 9 jobs failed.
Passed
build, typecheck, security, e2e, deploy-preview, docs, coverage
Failed
integration-tests, lint
- Duration
- 2m
- SHA
- 83c1a8e
ForgeRelay
-
DK
Dana Køhler 14:16
Missing lockfile bump. Pushing now.
-
FR
ForgeRelay APP 14:24
Open pipeline #58217
Checks are green again.
Passed
integration-tests, lint, build, typecheck, security, e2e, deploy-preview, docs +1 more
- Duration
- 2m
- SHA
- 83c1a8e
ForgeRelay
-
FR
ForgeRelay APP Next day, 09:30
Still waiting on review · @dana.k
-
FR
ForgeRelay APP 11:04
#482 Merged — cache invalidation
Status: Merged
northwind/api · feat/edge-cache → main
- Opened by
- dana.k
- Reviewers
- None
- CI
- 4 passing
- Size
- +128 · −41 · 3 files
Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay
Open pull request
Review health
See the review queue before it becomes a stand-up problem.
One scheduled digest turns open review work into a clear daily rollup. Keep the states that matter to your team, choose the destination channel, and open the queue when something needs a closer look.
ForgeRelay APP now
Daily review health
3 awaiting review · 1 failing CI · 1 blocked · 2 stale · 4 ready
- • northwind/api #482 Tighten SSO session expiry — Awaiting review · Stale · 3 days
- • northwind/payments #517 Ship the billing meter — Failing CI · 5 hours
Open review queue
Configured for your review ritual
- Schedule the rollup by weekday, time and timezone
- Include awaiting review, failing CI, blocked, stale or ready-to-merge work
- Start with every status on, then narrow the signal for one team
- Scope the digest to selected repositories or every active repository
Commit digests
When work lands without a pull request.
Opt-in digests for pushes to a watched branch — often main. Same routing discipline as review routes: branch filters, bot suppress, conventional commit types. One digest per push, not one message per commit.
-
FR
ForgeRelay APP 16:12
northwind/api → main · 4 commits
- • a1b2c3d feat: add digest routing — dana.k
- • d4e5f6a fix: nil guard on author — alex.r
- • e7f8a9b chore: bump deps — dana.k
1 filtered
Compare
- Push webhooks stay off until the workspace opts in
- Filters decide which commits appear — empty digests are not posted
- Contents: read on GitHub exists for Push subscription and compare links — see Security
Status colours
Make request state readable at a glance.
Choose the accents for Open, Draft, Awaiting review, Changes requested, Merged and Closed. The same organisation palette is used for PR and MR cards in Slack and Discord, with a live preview before you save.
Organisation status palette
One set of colours across every destination.
- Open #286653
- Draft #99AAB5
- Awaiting review #F2C744
- Changes requested #E03E3E
- Merged #9B59B6
- Closed #6B7280
Pick colours in Preferences and preview them before saving.
- Set once for the whole organisation
- Applied to both Slack and Discord deliveries
- Reset to the ForgeRelay defaults at any time
- Included on every plan
People
Mentions that reach a person.
Identity mapping links forge accounts to Slack and Discord users. Suggested matches show why they were suggested, and anything unmapped falls back to a plain handle.
- priya.raman Priya Raman Matching verified email mapped
- dana.k Dana Køhler Matching display name mapped
- t.oyelaran — No confident match needs mapping
Reminders
Quiet, once, then silence.
A stale review reminder posts into the existing thread and mentions the mapped reviewer. The elapsed delay is configured once for the workspace; each route can enable or disable the reminder.
Still waiting on review · #482
Open for 19 hours with one reviewer requested.
@dana.k
Reminders stop as soon as a review lands, and are never repeated for the same threshold.
Pipeline status
Failures, and the recovery that follows.
Choose failures only, failures and recovery, or all changes. Post into the existing request thread or as a new message, with failed jobs, duration, SHA and a pipeline link.
Open pipeline #58217
2 of 9 jobs failed.
Passed
build, typecheck, security, e2e, deploy-preview, docs, coverage
Failed
integration-tests, lint
- Duration
- 2m
- SHA
- 83c1a8e
ForgeRelay
Open pipeline #58217
Checks are green again.
Passed
integration-tests, lint, build, typecheck, security, e2e, deploy-preview, docs +1 more
- Duration
- 2m
- SHA
- 83c1a8e
ForgeRelay
Delivery reliability
Every relay is recorded.
Deliveries carry the event, route, destination, status and payload. When a destination rejects a message, replay it from the log once the channel is healthy.
| Event | Route | Destination | Status |
|---|---|---|---|
| evt_9042 | rt_01 | #eng-reviews | ok |
| evt_9038 | rt_01 | #eng-reviews | ok |
| evt_8836 | rt_04 | #deploys | ok |
| evt_8791 | rt_02 | #eng-reviews | failed |
Comparison
Basic webhook notifications vs ForgeRelay.
A forge webhook can post an event. A relay decides which events matter, who they concern, and how the conversation ends.
| Capability | Basic forge-to-chat notifications | ForgeRelay |
|---|---|---|
| Per-repository destinations | One webhook per repository, per channel | Routes chosen from searchable repositories and channels |
| Multiple event types per rule | No | One route relays review, merge and pipeline events |
| One thread per request | No | Yes |
| Reviewer mentions | Plain forge handle | Mapped Slack or Discord user |
| Stale review reminders | No | One quiet nudge per threshold |
| Daily review health | No | Scheduled queue of awaiting, failing, blocked, stale and ready work |
| Pipeline failure and recovery | Failure only, as a separate message | Failure and recovery inside the request thread |
| Commit digests | Every push as a separate message | One filtered digest per push — branch, author, type |
| Per-route message behaviour | No | Default / On / Off per feature |
| Custom PR/MR status colours | No | One organisation palette across Slack and Discord |
| Delivery history and replay | No | Recorded payloads, replay on demand |
-
Per-repository destinations
- Basic forge-to-chat notifications
- One webhook per repository, per channel
- ForgeRelay
- Routes chosen from searchable repositories and channels
-
Multiple event types per rule
- Basic forge-to-chat notifications
- No
- ForgeRelay
- One route relays review, merge and pipeline events
-
One thread per request
- Basic forge-to-chat notifications
- No
- ForgeRelay
- Yes
-
Reviewer mentions
- Basic forge-to-chat notifications
- Plain forge handle
- ForgeRelay
- Mapped Slack or Discord user
-
Stale review reminders
- Basic forge-to-chat notifications
- No
- ForgeRelay
- One quiet nudge per threshold
-
Daily review health
- Basic forge-to-chat notifications
- No
- ForgeRelay
- Scheduled queue of awaiting, failing, blocked, stale and ready work
-
Pipeline failure and recovery
- Basic forge-to-chat notifications
- Failure only, as a separate message
- ForgeRelay
- Failure and recovery inside the request thread
-
Commit digests
- Basic forge-to-chat notifications
- Every push as a separate message
- ForgeRelay
- One filtered digest per push — branch, author, type
-
Per-route message behaviour
- Basic forge-to-chat notifications
- No
- ForgeRelay
- Default / On / Off per feature
-
Custom PR/MR status colours
- Basic forge-to-chat notifications
- No
- ForgeRelay
- One organisation palette across Slack and Discord
-
Delivery history and replay
- Basic forge-to-chat notifications
- No
- ForgeRelay
- Recorded payloads, replay on demand
A longer version of this comparison lives on the compare page .
Put the review where the team already is.
Free for up to 3 mapped people. Unlimited repos and notifications. No credit card.