What's KiteTail?


I'm working on a webhook-driven checkout platform called KiteTail.

It creates beautiful checkout pages for your one-time purchase products, and notifies you via webhook whenever a new sale comes through.

You don't need to write a single line of payment code, you only need to worry about how to respond when a new purchase is successful.

The Problem

When I released my testing course, I needed a way to take payments.

Stripe Checkout got me up and running in just a few days, but it wasn't long before I needed additional functionality that I'd have to build myself, such as:

  • Handling discounts and coupons
  • Collecting sales tax
  • Generating custom invoices for business customers
  • ...or god forbid, supporting PayPal.

The worst part was that I couldn't easily layer these features on top of Stripe Checkout; I'd have to drop it completely and build a new checkout flow from scratch.

A Perfect World

My course app isn't special.

Sure, there are some special things it needs to do whenever someone purchases, but I don't need to do any of that stuff until a purchase actually happens.

This got me thinking:

What if I could offload all of the checkout work somewhere else, and have my course app only be concerned with fulfillment?

Enter KiteTail.

How KiteTail Works

KiteTail is a developer-focused checkout-as-a-service platform that uses webhooks to handle fulfillment.

It provides a beautiful checkout experience for your one-time purchase products, as well as a host of other nice-to-haves that you'd never get around to building yourself:

  • Support for Stripe and PayPal out of the box
  • Manage coupons and discounts
  • Properly collect local sales taxes
  • Track abandoned purchases
  • Generate custom invoices for business customers
  • Sales and revenue reports

Here's how it works:

Step 1: Add a product

"Products" are anything you want to charge money for that can be fulfilled via webhook.

That includes things like:

  • Access to a private course
  • A link to a downloadable product
  • A productized consulting call that you follow up about via email
  • A sponsorship slot on your podcast
  • A T-shirt you plan to ship yourself

...you get the picture. KiteTail is only concerned with the actual checkout process, what happens after that is entirely up to you.

Creating a new product requires only a few pieces of information:

  1. The product name
  2. The price
  3. A brief description to include on the checkout page
  4. An optional image
  5. The endpoint to notify when a purchase succeeds

Step 2: Setup your endpoint

Any time someone pays for your product, KiteTail will POST the purchase details to your endpoint.

That might look something like this:

    "id": "B3xF8g6CRcY5JEHhwC9pXVrTqxpyMfUY",
    "email": "adam@example.com",
    "full_name": "Adam Wathan",
    "amount": "13900",
    "coupon_code": "EARLYACCESS2017",
    "product_id": "R0ys3WDr",
    "product_title": "Test-Driven Laravel – Early Access",
    "created": "2017-02-27T16:46:47+00:00",

You can do whatever you want with that information, like:

  • Send the customer an email
  • Generate a unique access link to your content
  • Send yourself a reminder to fulfill the purchase manually

Your endpoint returns a URL back to KiteTail, and that's where we send the customer after the purchase is complete:

    "url": "https://testdrivenlaravel.com/purchases/{some-unique-access-code}"
    // or
    "url": "https://fullstackradio.com/shirts/thank-you"
    // or 
    "url": "https://heroicons.com/secret-download-page"

Step 3: Link to your checkout page

Now that everything is wired up, just link to your product's KiteTail-hosted checkout page anywhere you want people to be able to pay for your product.

For the customer, the flow looks like this:

  1. Visit your product's landing page
  2. Click "Buy" and get taken to the checkout page on KiteTail
  3. Complete their purchase and get redirected back to the URL of your choice

Building in Public

I'm still early in the development process right now, but I really want to turn KiteTail into a business that I can work on full-time.

The easy thing to do would be to go head down into the code and hack on it for the next 6 months, but that's not going to increase my odds of success.

I need people to know KiteTail exists, so instead my plan is to try and build it in public.

Here's what I'm thinking:

  1. Regular live coding streams.

    I've done a few of these in the past and people seem to really enjoy them, so I'm going to try and commit to a couple of streams per week where people can tune in and watch me work on building KiteTail.

    If that's something you'd be interested in, follow me on Twitch!

  2. Sharing the journey through Full Stack Radio.

    Full Stack Radio has a pretty big audience these days, and some of the most popular episodes have been the discussion-style episodes, where we've gone really deep into super practical coding topics.

    Those episodes are also the most fun for me, so I'm going to take a break from the interview format for while and instead find a co-host to talk to about what we're working on.

    It's still going to be very code-focused, but the topics are going to come from features I'm building and problems I'm tackling with KiteTail, and you'll be able to follow along with my progress on the app from episode to episode.

Staying in the Loop

If you think KiteTail might be a good fit for something you're working on or you just want to keep up with my progress on the app, I'm putting together a separate mailing list just for KiteTail news.

Subscribe below and I'll send out periodic status updates, as well as details about early access when the app is getting closer to launch: