- The schema: define each event’s shape once, in a file in your repo
- SDKs: generated, type-safe publishing clients for TypeScript, Go, Python, Java, and Kotlin
- Delivery: signed webhooks with automatic retries, a dead-letter queue, and replay
- The customer portal: self-service endpoints, secrets, live delivery logs, and generated event docs
Why Repost Send
Webhooks are an API your customers build against, and they are usually shipped without types, versioning, or reliable documentation. The typical setup is aPOST helper in a queue worker, a payload shaped by whatever the serializer produces, and an events page someone updates by hand. It works until a customer integrates against docs that no longer match production.
Send avoids the problem by generating everything from the schema:
- The SDK, the payloads, and the event docs come from the same file, so they cannot disagree
- A payload that doesn’t match its event definition doesn’t compile
- Schema changes are recorded as migrations, reviewed in pull requests, and checked in CI
- Delivery comes with signatures, about a day of retries, a dead-letter queue, replay, and per-attempt logs
- Customers manage their own endpoints, secrets, and delivery history in a hosted portal
When to use Send
Send is a good fit if you run a platform that delivers webhooks to many customers, if you want event docs and SDKs that stay current without maintenance, or if you would rather not operate retry queues, signing, and secret rotation yourself. It may not be what you need if you have a single internal consumer (a message queue is simpler), if you need full control over delivery infrastructure, or if you only receive webhooks. Receiving is Repost Ingest, the other half of this product.How it works
1. Define your events
The schema describes your payload models and event types:repost/schema.repost
2. Version and deploy them
Schema changes are recorded as migrations and deployed to an environment:3. Publish from your code
Generation produces a typed client with one method per event type. The HTTP API is available when you’d rather not use one:4. Repost delivers
Each customer endpoint subscribed to the event receives a signed request. If the endpoint is down, Repost retries for about a day and then parks the delivery in a dead-letter queue for replay:5. Your customers manage themselves
Mint a portal link from your backend. Your customer gets their endpoints, signing secrets, live delivery logs, and your event catalog, in your branding, with no account to create:Next steps
- Quickstart: run the whole flow yourself, from an empty directory
- Core concepts: the six ideas behind everything above
- Defining events: the schema language in full
- Customer portal: what your customers get, and how they reach it