We just shipped webhooks for Marble, a lightweight, reliable way for your site to notify external services when content changes.
What is a Webhook
A webhook is a simple HTTP callback: when something happens in Marble (like a post being published, updated, or deleted), Marble sends a small JSON payload to a URL you control so your systems can react automatically.
Why we built this
In past projects we had to trigger builds manually every time content changed. slow and annoying, especially with static-site output. Many modern frameworks let you revalidate or request a rebuild for specific pages, so webhooks let Marble notify your build pipeline, search index, notification system, or any external API the moment content changes. We’ll publish framework-specific guides soon.
What powers Marble's webhooks
Marble’s webhooks are built on top of Upstash’s QStash. Using QStash lets us hand off delivery, retries, scheduling, and fan-out to a managed serverless messaging layer so we don’t have to maintain a homegrown queue. This means more reliable delivery for your integrations and fewer edge cases for us to debug. you can see how this was implemented here.
What you can do with them
Trigger a build or revalidate a specific page after publish.
Send Slack / Discord notifications when a post goes live.
Sync content to a search index or external CMS.
Fan out one event to multiple endpoints (e.g., CI + analytics + notifications).
Security & reliability
Requests from Marble include a signature so you can verify payloads and be sure the request actually came from Marble. And because we use QStash, delivery includes automatic retries and delivery guarantees instead of best-effort fire-and-forget.
Example event
{
"event": "post.published",
"data": {
"id": "abc123",
"title": "My new post",
"slug": "my-new-post",
"publishedAt": "2025-09-15T12:34:56Z"
}
}
the fields may vary by event but for most events they are identical, to see the full list of events and their payloads check out our docs on webhooks.
How to get started
Go to Dashboard
On the sidebar click "webhooks"
Next click on "New Webhook"
Add your endpoint URL.
Choose which events you want to subscribe to (publish, update, delete, etc.).
Save (We auto generate a secret for you once you save)
That’s all you need to start receiving webhooks from Marble. In the coming weeks, we’ll share framework-specific guides so you can see real examples of how to trigger revalidation and keep your blog pages fresh automatically.