Webhook scheduler

Schedule webhooks. Monitor every run.

Beacon is a cron-based webhook scheduler built on Supabase. Create jobs in seconds, log every execution with HTTP status and duration, and get alerted the moment things go wrong.

< 1strigger latency
pg_cronno external scheduler
100%runs logged
RLSper-user isolation
Recent runslive
JobStatusDurationWhen
Sync inventory0 * * * *
200 OK143ms2s ago
Send weekly digest0 9 * * 1
200 OK891ms6h ago
Purge CDN cache*/5 * * * *
503 Err234ms1m ago
Expire promo codes0 0 * * *
204 OK67ms4h ago

How it works

01

Create a job

Name, webhook URL, cron expression. Done in under a minute.

02

Beacon schedules it

A pg_cron entry is created in your database automatically.

03

Webhook fires on time

Your endpoint receives a signed POST on every tick.

04

Monitor every run

HTTP status, duration, and response logged and searchable.

Features

Cron scheduling

Any valid 5-field cron expression. pg_cron runs inside your database — no external scheduler, no drift.

Full run history

Every execution logged — HTTP status, duration, response body, and error messages.

Automatic retries

Configurable 0–5 retries with linear backoff. Each attempt gets its own row in the run log.

HMAC signing

Every call includes X-Beacon-Signature: sha256=<hmac> so your endpoint can verify authenticity.

Custom headers

Send any HTTP headers per job — bearer tokens, API keys, content types — stored and forwarded on each call.

Run Now

Trigger any job instantly from the dashboard or REST API for testing and one-off runs.

Pause & resume

Disable a job without deleting it. The pg_cron entry is removed and re-created on resume.

Failure alerts

On final failure, sends email via Resend and Slack block-kit messages — configurable per job.

Row-level security

Strict per-user isolation via Postgres RLS. You only ever see your own jobs and run data.

Use cases

Anything that needs to happen on a schedule.

Data pipelines
  • Sync inventory from a supplier API hourly
  • Pull overnight exchange rates
  • Archive stale rows to cold storage nightly
Notifications
  • Daily digest of signups and revenue
  • Weekly Slack report to #ops
  • Monday reminders for incomplete profiles
Infrastructure
  • Healthcheck pings every 5 minutes
  • Purge CDN cache after nightly publish
  • Rotate and invalidate API tokens weekly
Business logic
  • Process subscription renewals at midnight
  • Expire promo codes after 30 days
  • Recalculate leaderboard rankings every 15m
AI workflows
  • Nightly embedding jobs for knowledge base articles
  • Batch sentiment analysis on support tickets
  • Weekly changelog generation via LLM
Integrations
  • Poll partner APIs for new orders
  • Sync GitHub issues to your PM tool every 30m
  • Fetch forecasts and update Notion dashboards

Built on

Next.js 16App Router · TypeScript · Tailwind v4Server actions, streaming, RSC
SupabasePostgres 17 · Auth · Edge FunctionsRow-level security on every table
pg_cronPostgres-native cron schedulerNo drift, no external service
pg_netAsync HTTP from inside PostgresFires webhooks via net.http_post()
Ready

First job running
in under two minutes.

Create an account, add a webhook URL and a cron expression, and Beacon handles the rest.

Create free account
POST/api/v1/jobs
{
  "name": "Sync inventory",
  "webhook_url": "https://api.example.com/sync",
  "cron_expression": "0 * * * *",
  "max_retries": 3
}
201 Created · job scheduled · next run in 43m