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).
Introducing Dibs On Stuff
Your official Slack interface to Conchable.

Now you can run /dibs on something or /dibs off something to seize, release and queue up for whatever you like, right from Slack.
Add to Slack

There's also some extra features
Why's it called "conch" ?
In the Golding novel 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 on 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).
What can we use it for?
Taking turns with utilizing a staging server seems to be popular! Orrr - bring your dog to work day? Jostling for the company car parks? Grabbing the office shower after a long bike ride? Maybe the support roster?
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 (old version)
curl https://conchable.com/queue \
  -X GET \
  -H 'Content-type:application/json' \
  -H 'CONCHVERSION:1' \
  -d '{
        "conch":"My First Conch"
      }'
# get the queue of people for the conch (new version returns enriched payload)
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
Any questions or support queries: trouble @ conchable.com (or feel free to buy me a coffee (hell, take me to lunch!) if your company is getting some value out of this.
-- Alex Lance
Other projects
Some other stuff I've been working on:

Autoexpire.com transfer sensitive information to your clients (for sharing passwords or other documents, and customizing the security controls)

Streetmates.net join up the people in your street in a non-intrusive fashion (give each street on the planet a mailing list)

Stagehand.com.au help small theatre companies put shows on