This post proves create-on-GET is untenable


It turns out that when editing a post in a Discourse forum, Discourse does GET requests (ie, fetches the URL) over and over again with every keystroke as you type it. Check out poor Alice’s gallery on our staging server: – It’s empty right now as I type this paragraph.

But when I start typing a commitment for her like so:

Then, yeah, unmitigated disaster.

I’m inclined to say that that alone is all the argument we need for dropping create-on-GET.

(If that’s indeed the conclusion, which, btw, @bee thought was obvious all along, then it will be super frustrating the amount of work we put in to countering spam bots and crawlers so that create-on-GET could function at all. I suppose eventually spam bot mitigation will be valuable anyway but we could’ve put it off till way later without create-on-GET.)

Quick background: I got excited about create-on-GET for the reasons described in the spec. Then I started having doubts when I realized that you can’t count on the person you’re typing to to click on your URLs so you really need to be in the habit of clicking them yourself. And if you’re doing that then one more click to create the promise may be no big deal.


Hahaha! Not laughing at you, just at the silliness of having one commitment for every prefix of your intended title. =)

Yes, doing one more click to create the promise seems very sensible, especially in relation to the other idea about having commitments be “pending” at first, so you have an opportunity to set the due date appropriately.


Turns out @chrisbutler solved this without needing to kill create-on-GET. I don’t know if it’s tenable long term but for now it lives on!


How, exactly?