Bounty Board Discord UX
Just a doc to jam on Discord UX...add whatever you want
Basic ideas
Bounty states
Proposed Discord API
/bounty create
/bounty assign
Delete the following commands (will now be done as a reacts on the bounty card and via web):
publish react
claim react
submit react
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
- Draft - Creators create bounties in draft mode. This allows the creator to double-check all information.
- Open - Creators publish bounties to open them for claiming. Bounties can be claimed...
- by anyone (if no
for-role
orfor-user
param has been specified) - by specific users/roles (based on
for-user
andfor-role
params in/bounty create
) - by someone chosen by bounty creator (in the case of
require-application
bounties)
- 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.
- 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
- user types
/bounty create title:hello world reward:50 BANK
from any Discord channel or thread
- BountyBot leaves an ephemeral message on the channel/thread which is the bounty card, with an emoji react to
publish
ordelete
and a link to edit the bounty on the web - the link to the web should look similar to sesh, offering “Advanced features” (combo below)


- If they publish, bounty is shown...
- on the channel it was created in as a card
- on #bounty-board, in a list with a link to the card above
- on the website
- If they go to the website, they can enter additional info including description, criteria, due date, etc
- 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
Â
Â