Open source dashboard launcher

Your dashboards,
one tap away

Save any web dashboard as an app. Get native push notifications via webhook. Tap to open.

API Docs GitHub

Save any dashboard

Add Grafana, Home Assistant, n8n, or any web tool. Give it a name, icon, and accent colour.

Push via webhook

Each app gets a unique webhook URL. POST to it from anywhere — Relay delivers a native push notification.

Tap to open

Tap a notification to jump straight to the dashboard it came from. Full-screen WebView, no browser chrome.


How it works

Three steps to get push notifications from any system to your phone.

1

Add an app

Enter a URL, name, and icon. Relay saves it as a launchable app and generates a webhook token.

2

Point your systems at Relay

Copy the webhook URL. Add it to your CI pipeline, monitoring alerts, cron jobs, or automation scripts.

3

Get notified

When your system fires, you get a native push notification. Tap it to open the dashboard instantly.


Webhook API

Send notifications to your phone with a single HTTP request.

POSThttps://relayapp.dev/webhook

Send a push notification to all devices registered to the app matching the webhook token.

Request Body (JSON)

FieldTypeDescription
tokenstringrequiredYour app's webhook token. Found in app settings.
titlestringrequiredNotification title. Shown as the headline in the push alert.
bodystringoptionalNotification body text. Additional detail shown below the title.
eventTypestringoptionalMachine-readable event type, e.g. deploy.success, alert.critical.
metadataobjectoptionalArbitrary JSON object stored with the notification for reference.
curl
curl -X POST https://relayapp.dev/webhook \
-H "Content-Type: application/json" \
-d '{
    "token": "YOUR_WEBHOOK_TOKEN",
    "title": "Build completed",
    "body": "All tests passed. Ready for review."
  }'

Responses

200 Success
{ "success": true, "notificationId": "550e8400-...", "pushed": 2 }
401 Invalid token
{ "error": "Invalid webhook token" }
400 Bad request
{ "error": "title is required" }
403 Disabled
{ "error": "Notifications disabled for this app" }

Integration examples

Drop these into your existing workflows.

Bash script
#!/bin/bash
RELAY_URL="https://relayapp.dev/webhook"
RELAY_TOKEN="YOUR_WEBHOOK_TOKEN"

relay_notify() {
  curl -s -X POST "$RELAY_URL" \
-H "Content-Type: application/json" \
-d "{\"token\": \"$RELAY_TOKEN\", \"title\": \"$1\", \"body\": \"$2\"}"
}

# Usage
relay_notify "Backup complete" "Finished at $(date)"
Python
import requests

requests.post(
  "https://relayapp.dev/webhook",
  json={
    "token": "YOUR_WEBHOOK_TOKEN",
    "title": "Task finished",
    "body": "Processing complete",
    "eventType": "task.done",
  }
)
Node.js
await fetch("https://relayapp.dev/webhook", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    token: "YOUR_WEBHOOK_TOKEN",
    title: "New order",
    body: "Order #1234 received",
    eventType: "order.created",
  }),
});