AlphornAlphornBeta
Open source · Self-hostable

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.

Data stored in the EUBuilt in Austria

How it works

Three steps, zero complexity

From incoming webhook to delivered notification in milliseconds.

1

Receive

POST webhooks to a public endpoint. JSON, plain text, or Slack-compatible payloads.

2

Filter

Apply rules by priority, tags, title, message content, or JSON payload paths.

3

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.

deploy.completed
GitHub Actions
deploy.completed
Alphorn
Slack · #engineering
Deployed v2.1.0 to production
main@a1b2c3d · by @alex · 42 commits · rollback ready
Discord · #changelog
🚀 v2.1.0 is live
Faster webhook ingest, new Telegram channel, bug fixes

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

docker-compose.yml
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

0
  • 3,000 messages/month
  • 3 webhooks
  • 3 channels
  • 7-day retention
  • Community support
Most Popular

Pro

For growing teams and startups

25/mo
  • 25,000 messages/month
  • 15 webhooks
  • Unlimited channels
  • 30-day retention
  • +10K messages for €5

Business

For scaling infrastructure

79/mo
  • 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 pricing

For large organizations with custom needs. SSO & audit logs, dedicated support with SLA, custom retention and volume, self-hosting assistance.

Contact us

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.