Codapult
DocsBlogPricingPluginsDemo
Get Codapult
Logo

Build your SaaS with AI. Keep the architecture under control.

Get Codapult

Product

  • Pricing
  • Architecture
  • Modules
  • AI platform
  • Plugins

Developers

  • MCP
  • CLI
  • Documentation
  • Launch your SaaS
  • Build a B2B SaaS

Resources

  • Blog
  • FAQ

Connect

  • Contact
  • GitHub

Compare

  • SaaS template comparison
  • Codapult vs Supastarter
  • Codapult vs Makerkit
  • Codapult vs ShipFast
  • Codapult vs SaaSBold
  • Codapult vs Gravity
  • Codapult vs Nextbase
  • Codapult vs BuilderKit

Featured on

Codapult on LaunchNestCodapult on LaunchNestbetterlaunch.cobetterlaunch.coFeatured on LaunchBuffFeatured on LaunchBuffCodapult on PeerPushCodapult on PeerPushFeatured on LaunchItFeatured on LaunchIt
© 2026 Codapult·All rights reserved·Privacy Policy·Terms of Service
Full source code · One-time purchase · Self-host anywhere
All articles

Getting Started

  • Introduction
  • Quick Start
  • Your First 30 Minutes
  • Project Structure
  • License and Permitted Use
  • Starter Profiles and Recipes
  • Product Recipes

Configuration

  • Environment Variables
  • App Configuration
  • Which Modules Should I Enable?
  • Provider Matrix
  • Capability Coverage

Database

  • Database and Provider Guide
  • Database
  • Migrations

Authentication

  • Authentication
  • OAuth Providers
  • Two-Factor & Passwordless
  • Enterprise SSO (SAML)

Ai

  • AI Runtime Architecture and Evals
  • AI Features
  • Streaming Chat
  • RAG and Semantic Search
  • Quotas and Memory

Teams

  • Teams & Organizations
  • Permissions & RBAC
  • SCIM Provisioning

Security

  • Data Retention Policy
  • Security

Deployment

  • Enterprise E2E Evidence
  • Enterprise Production Readiness
  • Deployment, Backup, and Restore Runbook
  • Deployment
  • Troubleshooting

Payments

  • Payments & Billing
  • Stripe Setup
  • LemonSqueezy Setup
  • Polar Setup
  • Payment Webhooks

Api

  • API Layer
  • tRPC
  • GraphQL

Email

  • Email
  • Email Templates

Infrastructure

  • Infrastructure
  • Self-Hosting
  • File Storage
  • Docker
  • Background Jobs
  • Terraform & Pulumi
  • Kubernetes

Ui

  • UI & Theming

I18n

  • Internationalization

Content Management

  • Content Management

Admin

  • Admin Panel

Monitoring

  • Analytics & Monitoring

Modules

  • Module Architecture
  • Waitlist
  • Audit Log
  • White-Labeling
  • Workflow Automation
  • A/B Testing
  • Welcome Page
  • Referrals
  • GDPR Export and Deletion
  • Promotions
  • Outgoing Webhooks

Plugins

  • Plugin System
  • CRM Plugin
  • Helpdesk Plugin
  • Email Marketing Plugin

Upgrading

  • Upgrading Codapult

Developer Tools

  • AI Agents & IDEs
  • MCP Server
  • Testing
  • Build Your First Feature with Codapult MCP
  • How Guard Blocks an Architectural Regression
Modules

Outgoing Webhooks

Let users subscribe to product events with HMAC-signed delivery, retries, and dead-letter replay.

Outgoing webhooks let your customers receive product events in their own systems. Codapult includes subscription management, HMAC signing, delivery records, retries, and dead-letter replay.

Key files

FilePurpose
src/lib/outgoing-webhooks/index.tsSubscription, dispatch, retry, and replay helpers
src/app/api/webhooks/outgoing/route.tsList/create webhook subscriptions
src/app/api/webhooks/outgoing/dead-letter/route.tsDead-letter queue and replay API
outgoing_webhook tableSubscription records
outgoing_webhook_delivery tableDelivery attempts and results

Dispatching an event

import { dispatchEvent } from '@/lib/outgoing-webhooks';

await dispatchEvent('subscription.created', {
  userId,
  subscriptionId,
  plan: 'pro',
});

Matching rules:

  • * receives every event.
  • user.* receives every user event.
  • payment.completed receives only that exact event.

Delivery format

Each delivery sends JSON with an event ID, event name, payload, and timestamp. Requests include:

HeaderPurpose
X-Webhook-IdSubscription ID
X-Webhook-SignatureHMAC-SHA256 signature
X-Webhook-EventEvent type

Retries and dead letters

Failed deliveries are retried with exponential backoff up to the configured maximum attempts. Deliveries that still fail are marked as dead-lettered and can be replayed from the admin endpoint.

Feature flag

ENABLE_WEBHOOKS="false"

When disabled, webhook dashboard and API surfaces return 404.

PromotionsPlugin System