<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: alex</title>
    <description>The latest articles on DEV Community by alex (@alexandert02).</description>
    <link>https://dev.to/alexandert02</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177198%2F6f61a9c3-4f2d-4377-9624-acfbe89930c1.jpg</url>
      <title>DEV Community: alex</title>
      <link>https://dev.to/alexandert02</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexandert02"/>
    <language>en</language>
    <item>
      <title>I was tired of clicking "resend" in the Stripe dashboard</title>
      <dc:creator>alex</dc:creator>
      <pubDate>Sun, 11 Oct 2026 14:39:52 +0000</pubDate>
      <link>https://dev.to/alexandert02/i-was-tired-of-clicking-resend-in-the-stripe-dashboard-21hm</link>
      <guid>https://dev.to/alexandert02/i-was-tired-of-clicking-resend-in-the-stripe-dashboard-21hm</guid>
      <description>&lt;p&gt;You know the loop. Your webhook handler breaks. You fix something. Then you go back to the Stripe dashboard, dig out the event, click "resend", and wait to see if it worked this time.&lt;/p&gt;

&lt;p&gt;It didn't. So you do it again.&lt;/p&gt;

&lt;p&gt;I did that more times than I want to admit. At some point I just wanted to fix the code and send the same request again, right from where I was looking at it. So I built a small tool for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;It's called hookbin. You get a public URL, you give it to Stripe (or GitHub, or anything else that sends webhooks), and every request shows up in a simple inspector. A little CLI then passes each request on to the app running on your laptop.&lt;/p&gt;

&lt;p&gt;The part I actually use every day is the &lt;strong&gt;Replay&lt;/strong&gt; button. When my handler throws a 500, I fix it and replay the exact same request. Same body, same headers. Stripe never has to send it twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying it takes two minutes
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://hookbin.madebyflow.de" rel="noopener noreferrer"&gt;hookbin.madebyflow.de&lt;/a&gt; and create a URL. No account, no credit card.&lt;/p&gt;

&lt;p&gt;Paste that URL into Stripe under Developers → Webhooks.&lt;/p&gt;

&lt;p&gt;Then run the CLI next to your app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://hookbin.madebyflow.de/cli/install | sh
&lt;span class="nv"&gt;HOOKBIN_SECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'…'&lt;/span&gt; hookbin listen &amp;lt;slug&amp;gt; &lt;span class="nt"&gt;-f&lt;/span&gt; http://localhost:3000/webhooks/stripe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's really it. Trigger a test payment and watch it arrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few things I cared about
&lt;/h2&gt;

&lt;p&gt;I didn't want a tunnel. The CLI just opens one outgoing connection, so nothing on my machine is exposed.&lt;/p&gt;

&lt;p&gt;I wanted signature checks to keep working, so the body and the &lt;code&gt;Stripe-Signature&lt;/code&gt; header arrive exactly as Stripe sent them. One catch: Stripe rejects signatures older than five minutes, so if you replay something from an hour ago, loosen the tolerance in development.&lt;/p&gt;

&lt;p&gt;And I wanted to try it without signing up. Anonymous URLs last eight hours. If you sign in with GitHub, they stay private and never expire.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's early
&lt;/h2&gt;

&lt;p&gt;This is a side project, and I'd love to hear what's missing or annoying. The CLI is open source if you want to poke around: &lt;a href="https://github.com/AlexanderT02/hookbin-cli" rel="noopener noreferrer"&gt;github.com/AlexanderT02/hookbin-cli&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How do you test webhooks right now? I'm genuinely curious.&lt;/p&gt;

</description>
      <category>webhooks</category>
      <category>stripe</category>
      <category>node</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
