13
14 Comments

Saas (microsass?) based around webhooks

I had an idea for a simple SaaS that I'm not sure I want to follow up with so I figure I'd share.

A lot of third-party services send you webhooks when events are triggered (new content, new purchase, etc.). The problem is a lot of them are fire-and-forget, if you miss it you miss it. They are also transient, in that unless you save its data yourself, once you receive it it's gone. Finally, at a minimum, it's extra infrastructure you need to setup to listen for webhooks, it's typically recommended that you set up a separate server for listening for webhooks so it doesn't go down when pushing new build/updates/etc.

I had an idea for a sort of "middleman" service, where instead of setting up your own server and using that as your webhook endpoint (or in addition to your own server), you could use my service to create endpoints. When this endpoint receives an webhook request from a third-party you can set it to simply forward it along to your server, or you can layer on some extra features:

It can log/store all the received webhooks for analytics/auditing.

Forward the request to your server, or forward it to multiple servers (imagine you when you receive a new purchase you want to receive it on your server for upgrading the user in your DB, but also send it to Mailchimp to send out an email)

You can set up manually or automatic replays where it will retry sending the request in case you missed it the first time.

You can edit/append to the incoming requests or setup special respones

You can access all requests via a RESTful API, so you wouldn't even need your own webhook server you could just send a GET request and grab all your webhooks at once.

Guaranteed uptime so you wouldn't have to worry about your server going down.

on January 31, 2021
  1. 5

    Hi Justin,

    It's great idea and in fact, that's exactly what we have built at hookdeck.io.

    As you point out, most many team end up spending time putting together what we call 'webhook infrastructure' to handle their events. That usually means setting up ingestion servers (often AWS Lamda's), queues, storage, alerting and logging etc. We've built Hookdeck to replace all of this without deploying any infrastructure with the idea of being production ready with very little work.

    You can learn more about how that works right here: https://hookdeck.io/docs

    It's a topic I don't see being brought often on IH, HN and others, I'm glad to see more people like you are talking about it 🤩

    Shoot me an email and we can discuss some more about it! [email protected]

    1. 1

      Super cool product looks really well done! I very well may be a customer at some point. It just seems so much easier to utilize a third party than to set up the infrastructure yourself, especially if it’s done better than you could. I was also planning on choosing the name hookbox.io so I’m glad I posted here before starting to develop basically the same product as you haha.

      1. 2

        Ahah! That's funny we've really had a similar idea, even for the name. I'd be glad to onboard you to try and out and give some your thoughts and feedback. Reach you to me when you've got time :)

  2. 3

    I believe Zapier solves this isssue

  3. 2

    A few reasons why I wouldn't use this kind of product:

    • It's one more piece in the puzzle, i.e. one more thing that can fail. Webhooks are often very important (e.g. when you need to change the status of a subscription if a payment fails or something) and I wouldn't want to risk webhook alerts because something in the middle is having some downtime;
    • privacy and security: some webhook alerts may carry sensitive data that can't or shouldn't be shared with third parties, especially in GDPR land; also people would have to trust you with this data, which isn't easy;
    • many services already have a retry logic for when something goes wrong when connecting to your backend; they usually retry every a number of times with exponential backoff. A couple of examples are Chargebee and Paddle that I have used or use for Payments. I can't remember Chargebee but Paddle even allows you to retry the webhooks from their control panel if needed;
    • in most cases, at least from my experience, webhooks need to be integrated with the business logic of my product, so adding something in the middle might just make things more complicated;
    • some services use some particular mechanisms for authentication when posting webhooks; Paddle for example uses some particular signature that must be used by my backend when parsing the data received with the webhook. Unless your service simply proxies/forwards the webhook requests exactly as they are, some custom logic would have to be implemented on your side, which isn't scalable with so many services that use webhooks.

    These are just some random reasons that come to my mind right away. I wouldn't use such a service and I wouldn't pursue this as a business to be honest. I don't really see the point if I can be honest :)

  4. 2

    Not much to add here but just want to say that one of my favourite free (with paid option) webhook-related tools is http://webhook.site/

    It simply helps expose webhook payloads, for when you are testing things.

    Might provide a bit of inspiration!

  5. 2

    I have been building something similar for several years now (https://webhookrelay.com/) :) It's mostly my main side project (doing consulting on ML/Data Science full-time). The problems are interesting that such services need to solve, that's why I really like working on it.

    Mostly:

    • Handling really high numbers of webhook (not surprising :D) and normal databases like postgres/mysql kinda go into meltdown with you are inserting so much data and then need to do some timeseries querying. You have to go with more interesting database choices.
    • Messaging between the nodes
    • Handling slow consumers (this might not look like an issue early on but later it becomes a proper PITA that deserves a blog post)

    It's kinda like a never ending project tbh. I have several other projects started around IoT fleet management and a public transport ticketing service. Not sure which one will be the most successful yet. (so far consulting pays the best :D )

    1. 2

      Wow yeah that looks a lot like what I was thinking, but with even more features. I definitely figured there'd be some tricky parts but I hadn't considered slow consumers or dealing with tunneling to internal networks (I wouldn't even know how to test that).

      Btw, in your main here image, I think you may have a typo "Receive HTTSP requests..."

      1. 2

        thanks! that typo was invisible for months to me :D I think tricky parts are still coming out, like retries at scale, allowing users to execute code on their webhooks, etc. I think I will still need few more years to reach my "feature complete" milestone :)

  6. 2

    I develop shopify apps and I need to listen to new order webhooks. Many app developers also need to listen to various webhooks as u mentioned.

    Some developers suggest to use aws lambda to build a queue system. But I am not familiar with aws. It'd too enterprises for me.

    I think about using celery + redis but it's too complicated to set up. The 3rd way may be using DO app platform so it's scalable.

    If you can set up a webhook service with HA, scalable (due to peak seasons) and a freemium pricing (like sentry), it may be attractive.

    I dont launch my app yet so I simply handle the webhooks with a docker container.

    1. 2

      We've built hookdeck.io specifically for this. We don't believe you should need to setup 5 AWS services to handle your webhooks. We have a few other shopify app developers using Hookdeck now and they are all very satisfied by how simple it's been to use and setup. Check it out and give me your feedback ✌️

  7. 2

    Just have in mind that there are already established services doing what you described. For example https://pipedream.com does that and more.

  8. 1

    As @ssijak said, there's already an established service doing what you described.

    I recently had to integrate third-party API for one of my clients using web hooks and I'd rather use something that's already established for something as critical as this (my client landed $20k/month customer that REQUIRED this integration).

    But on the positive side, you can find users that are dissatisfied with Pipedream and make something for them.

  9. 1

    I remember seeing this exact business a few days ago: https://gowebhooks.github.io/

  10. 2

    This comment was deleted 2 years ago.

  11. 3

    This comment was deleted 5 years ago.

Trending on Indie Hackers
The most underrated distribution channel in SaaS is hiding in your browser toolbar User Avatar 194 comments How are you handling memory and context across AI tools? User Avatar 109 comments I gave 7 AI agents $100 each to build a startup. Here's what happened on Day 1. User Avatar 105 comments Do you actually own what you build? User Avatar 66 comments Code is Cheap, but Scaling AI MVPs is Hard. Let’s Fix Yours. User Avatar 34 comments How to see your entire business on one page User Avatar 29 comments