Notifications, where they belong.
One endpoint, every channel. Alphorn routes any webhook to Slack, Discord, email, push, and 15+ more — with smart filters and automatic retries.
How it works
Three steps, zero complexity
From incoming webhook to delivered notification in milliseconds.
Receive
POST webhooks to a public endpoint. JSON, plain text, or Slack-compatible payloads.
Filter
Apply rules by priority, tags, title, message content, or JSON payload paths.
Deliver
Route to any channel with automatic retries and failure notifications.
Integrations
Route to any channel
From Slack to PagerDuty — deliver notifications wherever your team already works. One webhook in, every channel out.
Developer experience
Integrate in minutes
Send a notification with a single HTTP request. No SDK required.
curl -X POST https://app.alphorn.dev/n/wh_abc123 \
-H "Content-Type: application/json" \
-d '{
"title": "Deploy complete",
"message": "v2.1.0 is live on production",
"priority": 3,
"tags": ["deploy", "production"]
}'See it in action
Built for how you actually work
One webhook endpoint, every workflow. Pick your role to see a real setup.
One deploy, two audiences
When you ship, engineers want the commit range and rollback link — your users want a clean changelog. Alphorn fans the same deploy event out to both, with no duplicate glue in your pipeline.
Features
Everything you need
Built for developers who want reliable notification routing without the complexity.
Filtering Rules
Route messages by priority, tags, title, or JSON payload paths. Combine conditions with AND/OR logic.
Automatic Retries
Failed deliveries retry up to 5 times with exponential backoff. Get notified when a delivery permanently fails.
Real-time Streaming
Stream notifications via Server-Sent Events. Build live dashboards and real-time integrations.
Multi-tenant Organizations
Isolate teams with organizations. Role-based access control with owner, admin, and member roles.
Two-Factor Authentication
Secure accounts with TOTP-based 2FA. Enforce organization-wide 2FA requirements.
Open Source
Self-host on your own infrastructure. No vendor lock-in. Fully open source and auditable.
Self-hosting
Own your infrastructure
Deploy Alphorn on your own infrastructure. Just PostgreSQL — no exotic dependencies, no vendor lock-in.
PostgreSQL only
No MongoDB, no Redis — one database to manage
Scale horizontally
Separate web and worker processes behind a load balancer
Run anywhere
Docker, bare metal, or Kubernetes — your choice
services:
alphorn:
image: ghcr.io/alphorn-dev/alphorn:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://alphorn:changeme@db:5432/alphorn
BETTER_AUTH_SECRET: your-secret-key
BETTER_AUTH_URL: http://localhost:3000
depends_on:
db:
condition: service_healthy
db:
image: postgres:18
environment:
POSTGRES_USER: alphorn
POSTGRES_PASSWORD: secret
POSTGRES_DB: alphorn
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U alphorn"]
volumes:
pgdata:Pricing
Simple, transparent pricing
Start free. Scale as you grow. Self-host for free, forever.
Free
For side projects and testing
- 3,000 messages/month
- 3 webhooks
- 3 channels
- 7-day retention
- Community support
Pro
For growing teams and startups
- 25,000 messages/month
- 15 webhooks
- Unlimited channels
- 30-day retention
- +10K messages for €5
Business
For scaling infrastructure
- 500,000 messages/month
- Unlimited webhooks
- Unlimited channels
- 90-day retention
- +10K messages for €5
Or self-host Alphorn on your own infrastructure — free forever.
Enterprise
Custom pricingFor large organizations with custom needs. SSO & audit logs, dedicated support with SLA, custom retention and volume, self-hosting assistance.
FAQ
Frequently asked questions
Everything you need to know before getting started.
Is Alphorn free?
Yes. The hosted Free plan includes 3,000 messages/month, 3 webhooks, 3 channels, and 7-day retention. Alphorn is also fully open source — you can self-host it on your own infrastructure for free, forever.
Can I self-host Alphorn?
Yes. Alphorn is designed to be self-hostable. It runs as a Docker container and only needs PostgreSQL — no Redis, no MongoDB, no external queue. Deploy it on bare metal, Docker Compose, or Kubernetes.
Which channels are supported?
Slack, Discord, Microsoft Teams, Telegram, Email (SMTP), PagerDuty, Pushover, ntfy, generic webhooks, and more. See the full list on the channels page.
How does routing work?
You send a webhook to Alphorn with a title and message. Priority, tags, and payload are optional. Routing rules decide which channels receive the message based on tags, priority, or content. Retries and real-time streaming are built in.
How is this different from Novu, Knock, or ntfy?
Alphorn is self-hostable and focused on routing webhook events to messaging channels, not on building an in-app notification inbox. It has a simpler data model than Novu/Knock and more channels and filtering than ntfy. See the comparison pages for details.
Do you offer an enterprise plan?
The Enterprise plan covers custom message volume, custom retention, SSO and audit logs, a dedicated SLA, and self-hosting assistance. Get in touch and we'll set something up.
Where is my data stored?
In the cloud version, data is stored in the EU. If you self-host, the data never leaves your infrastructure. See the Privacy Policy and DPA for details.
Still have questions? Get in touch.
Ready to route your notifications?
Get started in minutes. No credit card required.