Skip to content
/ von Public

Webhooks infrastructure that just works.

License

AGPL-3.0, MIT licenses found

Licenses found

AGPL-3.0
LICENSE-AGPL
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

usevon/von

Von

Bun TypeScript Postgres Redis License: MIT License: AGPL-3.0

Von is open-source webhooks infrastructure that handles delivery at scale. With Von, you get:

  • Automatic retries with exponential backoff
  • Circuit breakers for failing endpoints
  • HMAC signature verification
  • Environment isolation (dev, staging, prod)
  • Local testing with tunnels via the CLI

All out of the box, without reinventing webhook infrastructure.

Getting Started

Cloud

Get started at usevon.com with no setup required.

Self-hosted

Self-hosting Von gives you full control over your data with no usage limits, and the backend services compile to standalone binaries that you can run with PM2 for zero-downtime reloads.

The backend (api, tunnel, worker) requires a VPS or dedicated server since stateful WebSocket connections aren't compatible with serverless platforms. The dashboard and site are Next.js apps that can be deployed to Vercel or self-hosted anywhere that runs Node.js.

You'll need PostgreSQL, Redis, and Bun installed for building.

Development

git clone https://github.com/usevon/von.git
cd von
bun install

# Start infrastructure
docker compose -f docker-compose.dev.yml up -d

# Copy env files
cp apps/api/.env.example apps/api/.env
cp apps/worker/.env.example apps/worker/.env
cp apps/tunnel/.env.example apps/tunnel/.env

# Push database schema
bun run --cwd apps/api db:push

# Start all services
bun dev

Production

Frontend

Deploy the dashboard and site to Vercel by importing your repo and setting the root directory to apps/dashboard or apps/site, then add your environment variables.

Backend

The backend services require a Linux VPS with PostgreSQL and Redis, and PM2 for process management (npm install -g pm2). Build the binaries locally and deploy them to your server:

bun run --cwd apps/api build:prod
bun run --cwd apps/tunnel build:prod
bun run --cwd apps/worker build:prod

Copy the binaries to your server (replace user@server with your SSH details):

scp apps/api/dist/api user@server:/app/
scp apps/tunnel/dist/tunnel user@server:/app/
scp apps/worker/dist/worker user@server:/app/

Then start them with PM2 and configure automatic startup:

pm2 start /app/api --name api
pm2 start /app/tunnel --name tunnel
pm2 start /app/worker --name worker
pm2 save && pm2 startup

For zero-downtime reloads after updates, run pm2 reload all.

Testing

# Unit tests (from root)
bun run test

# Package-specific tests
bun test --cwd packages/sdk
bun test --cwd apps/worker

# Integration tests (requires env vars)
cd apps/api && bun test tests/integration

SDKs

Language Package
TypeScript @usevon/sdk
React @usevon/react

CLI

Install the CLI globally to test webhooks locally with tunnels:

npm install -g @usevon/cli

Contributing

Von is open source and welcomes contributions, issues, and feedback.

See CONTRIBUTING.md for development setup and guidelines.

Security

For security concerns, see our Security Policy.

License

Von uses dual licensing:

AGPL-3.0 License (LICENSE-AGPL)

  • apps/ - api, dashboard, site, tunnel, worker
  • packages/auth - authentication
  • packages/db - database schema
  • packages/queue - job queue
  • packages/utils - shared utilities

MIT License (LICENSE-MIT)

  • packages/cli - CLI
  • packages/react - React hooks
  • packages/sdk - TypeScript SDK
  • packages/typescript-config - shared TypeScript config
  • packages/ui - UI components

About

Webhooks infrastructure that just works.

Resources

License

AGPL-3.0, MIT licenses found

Licenses found

AGPL-3.0
LICENSE-AGPL
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published