For freelance developers who look after their clients' integrations
Every webhook,
held fast.
When Stripe or GitHub sends a message and your client's app stumbles, that message is usually gone for good. Holdfast keeps every one safe, explains what went wrong in plain words, and sends it again once it's fixed.
No sign-up for the demo. Live mode asks GitHub for one permission: managing webhooks.
Two ways to try it
Watch it work, then point it at something real.
A pretend tea shop
Chai & Co. takes payments through Holdfast. Break its shop seven different ways and watch nothing get lost.
- Made-up customers and payments
- Real relay, real retries, real Gemma explanations
- See the note the shop owner would read
Your own GitHub repo
Sign in with GitHub, pick a repository, and Holdfast adds itself as the webhook. Push a commit and watch it arrive.
- No app of your own? Use the built-in test app and make it fail on purpose
- Stripe connects by hand in two minutes
- Your events are visible only to you
What your client reads
Not a stack trace. A sentence.
When something is held, Gemma reads what code found and explains it twice: once for the shop owner, once for you. Code checks every word it writes for the owner: no jargon, no invented numbers, no promises nobody made.
Stripe · payment received · ₹1050 from Nisha
The message arrived in a new layout
Nisha's ₹1050 payment couldn't reach Chai & Co. because the sender changed how they send customer information. Holdfast is keeping it safe, and it can be sent again once the system is updated to expect the new format.
The sender now uses data.object.customer.id instead of data.object.customer_id. Change the app to expect data.object.customer.id.
How it works
Five promises, each kept by code.
The model explains. It never decides what happens to a message.
- 1Saved firstOn disk before "got it"
- 2CheckedForgeries kept aside
- 3Retried, then heldA down shop loses nothing
- 4ExplainedGemma, in plain words
- 5Sent again, onceDuplicates never get through
Why an open model
Your clients' payments stay with you.
- Private. Messages carry names, addresses and amounts. Gemma runs on the same server as Holdfast, so none of it goes to an AI company.
- Cheap to run. No bill per message. One small model on one server explains every failure.
- Checked. The model picks from a fixed list of causes and code checks what it writes. If it gets something wrong, the built-in rules answer instead.
What's real today
No surprises.
- GitHub is live. Real repos, real webhooks.
- Stripe connects by hand. One-click sign-in needs a Stripe platform account we don't have yet.
- Demo customers are made up. The engine is the same one Live uses.
- Explanations take a minute. You see a rules answer instantly; Gemma's replaces it.