Bounty Board Discord UX

Just a doc to jam on Discord UX...add whatever you want
Basic ideas
  • sesh-like - basic, oft-used functionality in Discord, push to web for anything complex/difficult to use on Discord
  • prefer ephemeral messages, limit DMs - when something would require a DM to do, consider sending the user to the website
  • everything is a bounty - all commands are meant to act upon bounties. Even commands like IOUs are just shortcuts for completed, unpaid bounties
  • reacts, not ids - everything on Discord should be simplified to allow for reacts to interact. Users should never have to input an ID
  • canonical bounty card - when bounties are created, they turn into a card in the channel they are created in, and the reacts on the card update depending on the state of the bounties.
    • only one bounty card is ever created, in the channel the bounty was created in. This card should link to the web version of the bounty
    • #bounty-board now shows a list of open/in-pitch/in-progress/in-review bounties with a link to the bounty card
Bounty states
  1. Draft - Creators create bounties in draft mode. This allows the creator to double-check all information.
  1. Open - Creators publish bounties to open them for claiming. Bounties can be claimed...
    1. by anyone (if no for-role or for-user param has been specified)
    2. by specific users/roles (based on for-user and for-role params in /bounty create)
    3. by someone chosen by bounty creator (in the case of require-application bounties)
  1. In-Progress - Contributors claim (or are assigned for require-application) bounties to work on them. Once claimed, a bounty is In-Progress while the work is being completed.
  1. Completed - Creators complete bounties to signal they have accepted the work and intend to pay for them
 
*Paid - Creators mark bounties as paid once they have paid the contributors. This can happen at any stage mentioned above
 
Proposed Discord API
/bounty create
params
  • *title: <string> - the title of the bounty
  • *reward: <decimal> <token string> - the reward of the bounty (i.e. 50 BANK)
  • for-user: <@person> - Set the user that can claim this bounty. If set, no one else can claim.
  • for-role: <@role> - Set the Discord role that can claim this bounty. If set, no user without the role can claim.
  • repeat: <int> - Set the number of times this bounty can claimed by different people. (0-100, where 0 is infinite)
  • require-application: <boolean> - Set whether or not a pitch phase will be used to choose the claimer.
 
behaviour
  1. user types /bounty create title:hello world reward:50 BANK from any Discord channel or thread
  1. BountyBot leaves an ephemeral message on the channel/thread which is the bounty card, with an emoji react to publish or delete and a link to edit the bounty on the web
    1. the link to the web should look similar to sesh, offering “Advanced features” (combo below)
notion image
notion image
  1. If they publish, bounty is shown...
    1. on the channel it was created in as a card
    2. on #bounty-board, in a list with a link to the card above
    3. on the website
  1. If they go to the website, they can enter additional info including description, criteria, due date, etc
    1. they should be able to publish from the website
 
/bounty assign
currently required because it would be difficult to have reacts for all of this
Delete the following commands (will now be done as a reacts on the bounty card and via web):
  • /bounty publish
  • /bounty claim
  • /bounty submit
  • /bounty complete
  • /bounty apply
  • /bounty assign (eventually)
publish react
Can only be activated by the bounty creator. When activated, the bounties is published as described in /bounty create
claim react
When activated, the bounty is marked as claimed by a specific user. If the user doesn’t have permissions due to for or for-role param, they are advised of this via an ephemeral message (i.e. you don’t have the @developer role)
submit react
Can only be activated by the claimant. When activated, the
 
 

Bounty Board Discord UX

Just a doc to jam on Discord UX...add whatever you want
Basic ideas
  • sesh-like - basic, oft-used functionality in Discord, push to web for anything complex/difficult to use on Discord
  • prefer ephemeral messages, limit DMs - when something would require a DM to do, consider sending the user to the website
  • everything is a bounty - all commands are meant to act upon bounties. Even commands like IOUs are just shortcuts for completed, unpaid bounties
  • reacts, not ids - everything on Discord should be simplified to allow for reacts to interact. Users should never have to input an ID
  • canonical bounty card - when bounties are created, they turn into a card in the channel they are created in, and the reacts on the card update depending on the state of the bounties.
    • only one bounty card is ever created, in the channel the bounty was created in. This card should link to the web version of the bounty
    • #bounty-board now shows a list of open/in-pitch/in-progress/in-review bounties with a link to the bounty card
Bounty states
  1. Draft - Creators create bounties in draft mode. This allows the creator to double-check all information.
  1. Open - Creators publish bounties to open them for claiming. Bounties can be claimed...
    1. by anyone (if no for-role or for-user param has been specified)
    2. by specific users/roles (based on for-user and for-role params in /bounty create)
    3. by someone chosen by bounty creator (in the case of require-application bounties)
  1. In-Progress - Contributors claim (or are assigned for require-application) bounties to work on them. Once claimed, a bounty is In-Progress while the work is being completed.
  1. Completed - Creators complete bounties to signal they have accepted the work and intend to pay for them
 
*Paid - Creators mark bounties as paid once they have paid the contributors. This can happen at any stage mentioned above
 
Proposed Discord API
/bounty create
params
  • *title: <string> - the title of the bounty
  • *reward: <decimal> <token string> - the reward of the bounty (i.e. 50 BANK)
  • for-user: <@person> - Set the user that can claim this bounty. If set, no one else can claim.
  • for-role: <@role> - Set the Discord role that can claim this bounty. If set, no user without the role can claim.
  • repeat: <int> - Set the number of times this bounty can claimed by different people. (0-100, where 0 is infinite)
  • require-application: <boolean> - Set whether or not a pitch phase will be used to choose the claimer.
 
behaviour
  1. user types /bounty create title:hello world reward:50 BANK from any Discord channel or thread
  1. BountyBot leaves an ephemeral message on the channel/thread which is the bounty card, with an emoji react to publish or delete and a link to edit the bounty on the web
    1. the link to the web should look similar to sesh, offering “Advanced features” (combo below)
notion image
notion image
  1. If they publish, bounty is shown...
    1. on the channel it was created in as a card
    2. on #bounty-board, in a list with a link to the card above
    3. on the website
  1. If they go to the website, they can enter additional info including description, criteria, due date, etc
    1. they should be able to publish from the website
 
/bounty assign
currently required because it would be difficult to have reacts for all of this
Delete the following commands (will now be done as a reacts on the bounty card and via web):
  • /bounty publish
  • /bounty claim
  • /bounty submit
  • /bounty complete
  • /bounty apply
  • /bounty assign (eventually)
publish react
Can only be activated by the bounty creator. When activated, the bounties is published as described in /bounty create
claim react
When activated, the bounty is marked as claimed by a specific user. If the user doesn’t have permissions due to for or for-role param, they are advised of this via an ephemeral message (i.e. you don’t have the @developer role)
submit react
Can only be activated by the claimant. When activated, the
 
Â