CONCHABLE

THERE CAN BE ONLY ONE




What is this?
Helps you take turns with your team mates. Think of it as a sort of queue: only one person can have the conch at a time. When someone is done with it, they pass it on.
What happens when I seize the conch?
You become owner of the conch, and you only pass it on when you're ready (by clicking a link in an email or hitting the API).
Why would someone request the conch?
Because you told the team: "There's a conch for XYZ, go to conchable.com to request it, and when it's your turn, you'll get notified."
Introducing Dibs On Stuff
I've written a Slack bot so that you don't have to! Introducing Dibs, your official Slack interface to Conchable. Now you can run /dibs on something or /dibs off something to seize and release the conch for whatever you like, right from Slack.
Add to Slack
worth a coffee?
Why's it called "conch" ?
In Lord of the Flies, the kids would take turns speaking - only one could speak at a time, provided they held the conch (a seashell) they would cooperate by passing it around between them.
What can I use this for?
Anything that requires the same old repetitive conversation between team members for a specific resource that there is only one of, eg:

you: Hey who's currently occupying the blah?
someone: I think Jimmy was the last person doing blah
you: Hey Jimmy is it ok if I take over blah?
Jimmy: uh yeah sure, I'll let you know when I'm done - uh actually I told Steph she could have it next...

If that conversation happens over and over - well that right there - that's conchable. Pass the conch Jimmy, pass the conch - don't be a conch-gobbler Jimmy!
Whyyy?
To help people take turns with stuff. To avoid having the exact same repetitive conversations about who's got what. To prevent queue-jumpers. To avoid people bugging you (they'll be notified when it's their turn).
Is there an API?
You betcha:
# request the conch for yourself
curl https://conchable.com/seize \
  -X POST \
  -H 'Content-type:application/json' \
  -d '{
        "conch":"My First Conch",
        "name": "Lenny Carl",
        "email":"lennyc@example.com"
      }'
# release the conch, pass it onto the next person
curl https://conchable.com/release \
  -X POST \
  -H 'Content-type:application/json' \
  -d '{
        "conch":"My First Conch",
        "key": "(key from previous request)"
      }'
# get the current conch-bearer
curl https://conchable.com/bearer \
  -X GET \
  -H 'Content-type:application/json' \
  -d '{
        "conch":"My First Conch"
      }'
# get the queue of people for the conch
curl https://conchable.com/queue \
  -X GET \
  -H 'Content-type:application/json' \
  -d '{
        "conch":"My First Conch"
      }'
# request the conch for yourself + alert me via a
# custom webhook when it's my turn.
#
# The webhook pushes whatever data you put in 'payload'
# and shuttles it off to 'dest'. This means you can make
# hooks for particular web services to get notified when
# the conch changes hands.
#
# If hooks are used, then the default email sending action
# will not take place (you'd implement email sending
# by adding a hook with a 'dest' that is an email address).

curl https://conchable.com/seize \
  -X POST \
  -H 'Content-type:application/json' \
  -d '{
        "conch":"My First Conch",
        "name": "Lenny Carl",
        "email":"lennyc@example.com",
        "hooks":[
          {
            "dest": "https://...",
            "payload": {...},
            "headers": [...]
          },
          {
            "dest": "https://...",
            "payload": {...},
            "headers": [...]
          }
        ]
      }'

# 'headers' optional array of http headers
# 'dest' can be a URL or email address
# 'payload' can be a string or some JSON,
# and may contain these placeholders:
#
#   ${conch_name}
#   ${conch_email}
#   ${conch_fullname}
#   ${conch_key}
#   ${conch_time}
#   ${conch_date_rfc2822}
#   ${conch_release}
#   ${conch_release_no_prot} (remove "https://"
#   to avoid slack auto-click/link unfurl)
#
# If you didn't want to use our Slack bot "Dibs",
# then you could implement Slack sending by setting
# up a hook like this:

        "dest": "https://hooks.slack.com/...",
        "payload": {
          "channel": "@myuser",
          "username": "conchable.com"
          "text": "${conch_name} is yours
            ${conch_fullname}, to release it:
            <${conch_release}|${conch_release_no_prot}>",
        }

# To send an email as a hook, the dest and
# payload would look like:

        "dest": "some.email@address.com",
        "payload": {
          "subject" : "Your conch is ready",
          "body" : "${conch_name} is yours
            ${conch_fullname}, to release it:
            ${conch_release}"
        }
Privacy Policy
The information that is put into this service is used only to run this service. No spam etc. Here's the long version Privacy Policy
Contact me
My name's Alex Lance, I wrote the functionality. Hit me up if you have any questions or support queries: trouble @ conchable.com (or feel free to buy me a coffee if you're getting some value out of this stuff :)