BrightID Discord Bot - Epic 4

For context on this post, refer to :robot: BrightID Bot Development

:link:Checkout the current progress on the Unique Bot Web UI :link:

Epic 4 - Sponsorships, Tech Debt, and Infra

I am making this proposal as I complete the web UI in the next few days. There is massive synergy between the Unique Bot, BrightID Stars, and Discord Servers that I cannot wait to explore. This proposal should be a solid next step in that exploration.

Sponsorships

Finally! A feature that I (and many others) have been excited about for a long time. After completing a proper web UI, I now feel comfortable implementing some really cool sponsorship flows. Here is what I plan to puild:

  1. Allow server admins to sign with an address or multisig in the name of their discord community. Then utilize assigned sponsorships to sponsor their community members

  2. Allow any number of community members to donate sponsorships to any number of discord communities

  3. Display how many users each discord community has sponsored

  4. Provide a message for Discord admins when sponsorships are getting low and link them to a site to purchase more

Future Plans: I could imagine BrightID giving rewards to communities who sponsor the most members in a quarter or providing some kind of benefit for taking part in BrightID Sponsorships.

Tech Debt

As the bot was rewritten and expanded, some amount of tech debt has arisen that I would like to manage. Some of this debt includes:

  • Legacy, non-typesafe files
  • Shared code that should be moved to a package in the monorepo
  • Legacy API fetches that should be using the BrightID SDK
  • Ugly code that could use some cleaning and error logging
  • More little things here and there

Infra

The bot is currently hosted on Heroku and the Web UI is on Vercel. While these are working, there are opportunities to improve safety, speed, and security.

  • Railway seems to be the new, bigger, better, cheaper Heroku. Moving to railway would reduce costs, improve DX, and reduce deployment time allowing for me to scale the bot to handle more communities. As aI am currently paying monthly for Heroku, this seems like a no brainer.

  • Vercel offers a lot of really cool auto deployment features (like pasting a link into PRs) I’d love to have these features available to help spur open source development.

  • Hosting the site through Vercel works well, however it would be nice to have a site hosted on IPFS and [eth.limo](https://eth.limo/) in order to improve security of the DNS. I’m not sure how eth.limo interacts with vercel, Remix, and SSR, so I will have to see if this is even possible.

Web UI

There are some cool statistics I want to add to the Web UI, like the amount of Discord Servers the bot is currently a member of (~1900 as of today). As well as how many verified users are in each Discord Server.

Bot Upgrades

Other than providing a link to the new web UI, community members have suggested some great features.

  1. When the bot joins a new server, fetch all the members in the server and check if they are verified. If they are verified, then give them the Verified role

  2. When a new member joins a server, check if they are verified. It they are, give them the Verified role.

  3. The bot currently uses names to identify the proper server role, instead that it should use the role ID. so that duplicate roles are not created if the bot rejoins the server.

Funding

  • 888.88 BRIGHT / hr
    (about $45.33/hr with a BRIGHT price of $0.51)

  • 200,000 BRIGHT
    Priced in working 5 hours a day for 45 days

  • Recipient Address: 0xf4bb53efcfd49fe036fdcc8f46d981203ae3bab8