Skip to content

Send Webhooks

Hookbase helps you build webhook infrastructure for your customers. Instead of building webhook delivery from scratch, use our SDK and Portal to provide a polished webhook experience.

What You Get

  • Reliable Delivery - Automatic retries, exponential backoff, and dead letter queues
  • Customer Portal - Embeddable React components for endpoint management
  • Event Types - Define and organize the events your customers can subscribe to
  • Signature Verification - HMAC-SHA256 signatures for secure webhooks
  • Delivery Logs - Full visibility into delivery attempts and failures

Architecture

Your Application                    Hookbase                     Your Customer
┌─────────────┐                   ┌─────────────┐               ┌─────────────┐
│             │  Send webhook     │             │  Deliver      │             │
│   Backend   │ ─────────────────▶│     API     │──────────────▶│  Endpoint   │
│             │  via SDK          │             │               │             │
└─────────────┘                   └─────────────┘               └─────────────┘


┌─────────────┐                   ┌─────────────┐
│             │  Embed portal     │             │
│  Frontend   │ ◀─────────────────│   Portal    │
│             │  components       │             │
└─────────────┘                   └─────────────┘

Quick Start

1. Install the SDK

bash
npm install @hookbase/sdk

2. Send Your First Webhook

typescript
import { Hookbase } from '@hookbase/sdk';

const hookbase = new Hookbase({
  apiKey: process.env.HOOKBASE_API_KEY,
});

// Create an application for your customer
const app = await hookbase.applications.create({
  name: 'Acme Corp',
  uid: 'customer_123',
});

// Send a webhook
await hookbase.messages.send(app.id, {
  eventType: 'order.created',
  payload: {
    orderId: 'ord_123',
    amount: 99.99,
  },
});

3. Embed the Portal

tsx
import { HookbasePortal, EndpointList, EndpointForm } from '@hookbase/portal';
import '@hookbase/portal/styles.css';

function WebhookSettings({ portalToken }) {
  return (
    <HookbasePortal token={portalToken}>
      <EndpointForm />
      <EndpointList />
    </HookbasePortal>
  );
}

Next Steps

Released under the MIT License.