March 7, 2019

webhook project: Looking for some idea validation.

Looking for some idea validation for my side project: http://www.gethaken.com/

I have been implementing webhooks for a few different projects in the past, and it was always kind of a painful exercise.

I have been talking to a few people and they were looking for a service at the time they built webhooks themselves.
So I decided to build a prototype for an API based webhook service in my spare time.
At the moment it takes care of:

  • queuing
  • retries
  • structured logging (successes, failures)
  • security

I called it haken which is German for hook.

I am interested in learning if this is something that solves a problem for some of you.

Thank you so much.

#product-feedback-request #idea-validation #need-feedback

  1. 3

    I've had a similar idea before, but never put in the time to build something. I think this type of service has big potential. A large amount of API SaaS products need to offer webhooks to their customers, and there are a lot of edge cases around scheduling, deliverability and retrying that need to be accounted for, so I think there is definitely a market here.

    I'd like to offer a small bit of feedback regarding your "feature" list:

    1. "We ensure the security of our platform without compromise." — This is pretty much saying nothing. I would elaborate just a bit. Do you require HTTPS for all API requests? Then say something like "We use 256-bit encryption for all network traffic to and from our API." How is your datastore secured? If it's hosted on something like Heroku or AWS, copy/paste their security guarantees, in simple terms. Since this service is aimed at developers, this is really a must to establish a baseline of trust.

    2. "Our system is fully managed and we guarantee maximum availability to you." — Again, this is pretty much saying nothing. What is "maximum availability" and how can you guarantee it? You don't define it, so it doesn't mean anything to most people. I'd, at the very least, set up a simple status page and link to that. Is your system distributed and auto scalable? Maybe mention that. Regardless, don't guarantee things you can't actually guarantee.

    You have to hop into your customer's shoes — they want to make sure that the data they're sending to your API is secure, as the data they send likely contains sensitive information about the customer's account for the given service.

    And finally, more generally, I might focus a bit more on how this API, by abstracting away a webhook event implementation, saves a development team valuable time, and thus saves businesses money. Right now, you list a bunch of features but no benefits, which is what you should try to focus on, especially above the fold.

    Good luck with this project!

    1. 1

      Thank you for this great feedback. You are spot on with the copy.

      I like especially this part of your feedback:

      And finally, more generally, I might focus a bit more on how this API, by abstracting away a webhook event implementation, saves a development team valuable time, and thus saves businesses money.

  2. 1

    Why would someone use this over ngrok.io? It allows me to tunnel requests to my local machine, has HTTPS and lets me replay requests. I can really see from your landing page why chose you over ngrok. (PS - this is also to help you think about how to write copy to speak to us developers that have been using ngrok forever)

    1. 1

      Thank you for your feedback. It seems I am not transporting the value and product well in the landing page.

      haken is an api that allows you to add webhooks to your app very easily and quickly.

      ngrok is forwarding remote port to a local machine.

  3. 1

    Quite interesting idea. I've been thinking, webhooks are usually caused by an event. Would it be cool if you'd just store all the hook info and start them with a separate API call when an event occurs?

    1. 1

      Would it be cool if you'd just store all the hook info and start them with a separate API call when an event occurs?

      You mean the recipient url, method, headers, body are stored and you just invoke the event?

      Would you expect the request body to by dynamic or static as well?