Current · Source available · Commercial grant
HookSteel
Your handler returned 500. The same paid event came back. You granted twice.
The credit is granted once. HookSteel fulfills each signed Stripe or Polar billing event once, from the outbox on your Postgres.
The same signed event, four times, still grants the credit once. A crash mid-drain is still one grant. Five chaos scenarios cover Stripe and Polar. npm run demo runs the duplicate and the crash.
$89Founding $89 (first 10 licenses), then $129 · 14-day purchase refund
Contract
Same transaction. Drain after commit.
01
Record
Verified event and outbox rows, in the same Postgres transaction.
02
Deliver
Adapters run on drain after commit.
03
Keep
Duplicate deliveries ACK 200 without a second outbox row.
HTTP 400 is poison or a bad signature. HTTP 200 is accept, duplicate, or ignored. HTTP 500 is transient after verify.
The grant runs after that transaction commits. Not exactly-once transport.
Watch demo
SHA-256 60f5435d6043dd3db064b291f4a371fdf6f202e8d959b0d6d81b4b89f210d78c
Compare
Logged event ids are not an outbox.
Hookdeck wins hosted ingress, fan-out, and the dashboard. Stripe docs tell you to log event IDs and return 2xx. Neither is the outbox on your Postgres, where a rolled-back fulfill stays rolled back. HookSteel is that outbox.
Boundary
Use Hookdeck for ingress.
This is the outbox you keep. Not a hosted gateway.
01
Hookdeck is built for hosted ingress, fan-out, rate limits, observability, and retries at the edge.
02
HookSteel is the unique event id, the transactional outbox, side effects after commit, and the chaos proofs on your Postgres.
03
Use Hookdeck when you need multi-destination routing, a team dashboard, or you do not want to run an outbox worker.
04
Use HookSteel when a rolled-back fulfill would grant twice, and the code has to live on your Stripe and Polar.
05
Use both when Hookdeck sits in front and HookSteel sits inside. That pairing is optional.
06
Do not buy HookSteel if you want yellowgram to host the webhooks.
Grant
What the kit is.
Included
Kit zip hooksteel-0.1.1.zip (SHA-256 e5fb3c1117b954f344fb27e7b1bf7be89d46e120839e238983d017a50e08e4d9). GitHub Issues for 60 days, best-effort, no SLA. Stripe handle and Polar handlePolar, with no Polar SDK. Drain, replay CLI, five chaos scenarios, and adapter stubs. Not a hosted webhook gateway.
Pricing
Founding $89 for the first 10 licenses; then $129. One SKU. 14-day purchase refund. No hosted SKU.
License
Pay unlocks one-organization commercial use under PolyForm Noncommercial and the Suthirth grant. Reading or cloning the public repo is not a commercial right. The HookSteel commercial grant is for the named tag. Commercial production use requires a paid HookSteel commercial grant from Suthirth Solutions, operating as yellowgram. Not MIT. Not an OSI-approved license. Public brand: HookSteel · yellowgram.
Legal seller
Suthirth Solutions, operating as yellowgram · hello@yellowgram.dev
FAQ
Questions
What do the HTTP statuses mean?
400 is poison or a bad signature. 200 is accept, duplicate, or ignored. 500 is transient after verify. Stripe and Polar deliver at least once. A duplicate still returns 200 and does not write a second outbox row.
Do you offer discount codes or deal pricing?
No. The listed price is the price.
When does the founding price end?
After the 10th HookSteel license. Then $129. No discount codes.
What does the grant cover?
Commercial production use requires a paid HookSteel commercial grant from Suthirth Solutions, operating as yellowgram. One organization. Not multi-org. Grant product-name: HookSteel commercial grant.
Is this a hosted webhook gateway?
No. Use Hookdeck for ingress. This is the outbox you keep. It is not Credit Ledger, MayDo, SeatTruth, or BurnBrake.
yellowgram/hooksteel · v0.1.1 · 562e32db6d818b28443f54946b77e13f96985b4b · zip SHA-256 e5fb3c1117b954f344fb27e7b1bf7be89d46e120839e238983d017a50e08e4d9