Beeminder Forum

TaskRatchet Development Updates

And, more progress:

  • I created a GitHub repository for the web client. I’ll be building it out first, mocking out the API as I go. That way, if the API needs to change, I won’t have to rebuild anything.
  • I’ve made the first wireframe for the web app (this is not intended to be final in any way):


Suggestions, critiques, and pull requests welcome. :slight_smile:


So I’m confused - is this API supposed to be accessed through HTTP, with the GET and POST? That seems very strange to me - why would you route it through HTTP? I know Beeminder does it but I’m not aware of any other API that does and it strikes me as odd.

I’m new to API design. My understanding is that most RESTful APIs are based on HTTP. What is the alternative you see most APIs using?

1 Like

Well it’s a REST API. What APIs do you know of that claim to be RESTful yet do not sit on top of HTTP?

But to answer the “why http” in a bit of a tangent: Back in the days people started abusing HTTP for things other than HTML and website resources primarily for the simple reason that most firewalls allowed port 80 already whereas using a different port required your network operator to whitelist that port by hand.
It was pure convenience. Not exactly a technical necessity.
Soon™ many services would just simply use HTTP and port 80 (and SSL and 443 respectively) and firewalls “had” to advance to higher OSI levels for traffic that used to be discernible because of its port numbers now became a black box. So nowadays firewalls look into the actually HTTP packets and try to figure out what is going on, adding complexity and so on and so forth. All because port 80 was already allowed and custom ports weren’t.
And what do users use if in doubt? The service that “just works” out of the box.

1 Like
  • I’ve switched from using Reactor to actually doing a proper compilation. This allows for committing the compiled app, which in turn makes the next two enhancements possible.
  • I’ve added a stylesheet. It’s currently not doing anything useful except proving that I’ve done it. It’s precompiled from less.
  • I’ve set up GitHub Pages on the repository, so you can launch the app (such as it is) without cloning the repository. Nice!
1 Like

I’ve been spending a lot of time listening to interviews with people who have turned their own side hustles into businesses. Also, I’ve been going through a course on on customer development. My new top priorities for the project are:

  1. Start having interviews with potential users (please reach out!)
  2. Start capturing leads on the landing page
  3. Start running a service with as little code as possible, mostly manually (yes, Shirk & Turk style), to start getting some data I can use to inform the development of the service
1 Like

So far I’ve had one conversation with @zzq. It was very insightful. I’d like to have a lot more interviews with potential users (hint, hint), or really anyone who uses Beeminder. I need to start reaching out to more people directly to schedule interviews instead of waiting for interviews to come to me. Probably should make a goal for that… :wink:

I’d also really like to switch as quickly as possible to getting feedback from real users instead of potential users, and that means MVP time. I’m thinking I could start out by sending a daily email to a group of alpha users asking them what’s on their plate for the day. They can respond back (or not) with a list of tasks and stakes for each. I’ll then enter those tasks into an AirTable base. I can generate views using the base to see what tasks are upcoming or overdue, and send email reminders to the appropriate users. If a user misses a deadline, I can manually create a charge in Stripe.

This is so ridiculously manual that I have a feeling I won’t be able to resist the urge to automate almost as soon as I start. But I think if I can resist that urge for just a little bit I stand to learn a lot by having such a high level of awareness into how the system is working for those daring enough to join the experiment.

Thankfully, once I do stop resisting, AirTable has a fantastic API, and I think Stripe has a good one too (haven’t used it), so getting the first level of automation up-and-running shouldn’t be that hard.

Beyond that, I’ll let user feedback direct the project.


And… there’s now a “Join” button on which takes you to a page where you can give me a dollar and (really, truly) join the alpha! :grin:


Joined! Very exciting!

1 Like

What happens now that I’ve joined? I haven’t heard anything

@zedmango I’ll be emailing you once I’m ready to start the alpha. I’m going on a trip in a couple of days, so it’ll need to be after the 20th. Starting out, this will be a very manual process for me, so I want to be able to give it the attention it needs.


I was also delighted to cough up a dollar to try this out!

(Now I’m fantasizing about some kind of scheme for dynamic pricing for beta apps where you actually see the whole queue of people and initially you pay the $1 to get in line but then … basically there’s a big auction and you make people bid for their spots in the beta. Oh, yeah, I have a domain name that could work for this and everything:


I joined as well! So exciting!

1 Like

First email of the alpha sent!

@zedmango, @dreev, @openmedi, did the email get past your spam filters? Also, maybe add to your contacts…


:partying_face: It did!

1 Like

got it! some questions:

nothing about payment info though - how are you going to charge us?

and can we set deadlines at times other than midnight?

is there any verification involved or is it just self-reported?

how do we check and determine what outstanding tasks we have and what their pledge amounts are?

what are the rules on canceling a goal?


  1. Payment: That’s why you had to pay for the alpha. Stripe has your payment details, which allows me to create a new charge for you manually.
  2. Non-midnight deadlines: Sure! I’m really not sure how this is going to work, but if you’d like it, go ahead and give me a non-midnight deadline, and I’ll see what I can figure out.
  3. Completion verification: Not by default. If you’d like to try it, let me know what I need from you to verify a task, and I’ll try holding you to it.
  4. List access: I’m planning to include that list in your daily email. If you want an updated list, feel free to email me for it, and I’ll try to get it to you as soon as I can.

If there’s a theme to these answers, it’s that the service is very flexible right now. I don’t know what TaskRatchet needs to be long-term; so if you need it to work differently, just ask, and I’ll try to figure out how to make it work for you, at least temporarily until I’m convinced that’s not the direction the product should go.


well I’d definitely want non-midnight deadlines and a way to see my current list without having to email you / check my email

Oh, and what about canceling a goal?

For sure! I’ll definitely be aiming to remove myself from the loop as this project progresses. (Long-term that would be a terrible bottleneck!)

Again, re: timezones, just give me a deadline other than midnight and I’ll try to make it work.

Canceling a goal is as easy as emailing me and telling me to cancel it.