A timeout in front of your deploy hook. An editor publishing twenty documents in ten minutes triggers one build instead of twenty.
You give Purley the webhook you want called - normally a Vercel deploy hook - and it gives you back an incoming URL. Point Prismic at that incoming URL instead of the deploy hook.
Each new trigger while pending does not extend the window - the window runs from the first trigger, so a steady stream of publishes still produces a build on a predictable cadence.
Save it, then copy the Incoming URL with the copy button and paste it into your Prismic repository's webhook settings in place of the deploy hook.
Rows update live - no refreshing needed. Each shows the current status, the number of triggers caught during the current window, the timeout length, a countdown to firing while pending, the outgoing and incoming URLs, and when it last fired.
Incoming payloads are not forwarded. The outgoing request is a plain POST with no body, which is exactly what a Vercel deploy hook needs, but means this will not work for a target that expects a specific payload or signature.
Firing is driven by a job that runs every minute, so a webhook can fire up to a minute after its countdown reaches zero. Outgoing URLs must be public addresses - requests to private or internal hosts are refused.
No Prismic or Vercel credentials - only a URL to call. This tab works on an otherwise unconfigured project.