Skip to content
noah edited this page Feb 3, 2023 · 10 revisions

So, you want to contribute to the DAO DAO frontend? Great - we're happy to have you!

Curious about the various services DAO DAO uses to support its frontend? Check the infrastructure page!

What kind of contribution are you interested in making?

I want to report a bug in the UI.

Open an issue and tag the issue "bug." Feel free to reach out to us on Discord as well---people who find bugs get a special role. (:

I want to suggest a new feature.

Open an issue and tag the issue "feature suggestion." Feature suggestions will be triaged through our design and roadmapping process.

I want to translate DAO DAO to a new language.

Head over to packages/i18n and follow the instructions in that README to contribute a translation.

I want to add a new Action to DAO DAO's UI.

DAO DAO proposals can have Actions, code that can be run "as the DAO" after a proposal passes (e.g., spending money or executing a smart contract). Adding an Action to the UI allows DAO members to configure Actions' code and parameters via a GUI.

Learn how to add an Action to DAO DAO's UI.

I want to work on a UI component.

We use Storybook to build stateless components in isolation. Head over to packages/storybook and follow the instructions in that README to run Storybook.

Hints for getting started: Explore the components we already have in packages/stateless/components. Copy a story from that folder. Modify an existing component to suit your needs. Play around.

Our docs are constantly evolving, primarily as a result of questions and confusions that inevitably arise in the development process. We love to help; don't hesitate to reach out!

Does your component display user-uploaded images? Learn how we get image accent colors in the UI.

I want to add support for a new voting module.

Head over to packages/stateful/voting-module-adapter and follow the instructions in that README to get started.

We strongly encourage reading through the other voting module adapters and building an understanding of the interface before diving in. The CwdVotingCw4 adapter represents a simple membership-based DAO voting structure. The CwdVotingCw20Staked adapter is a bit more complex, as it involves staking and unstaking CW20 tokens. These were the inaugural adapters, and both are worth checking out.

I want to add support for a new proposal module.

Head over to packages/stateful/proposal-module-adapter and follow the instructions in that README to get started.

We strongly encourage reading through the other proposal module adapters to build an understanding of the interface before you start. The inaugural adapter is the CwdProposalSingle adapter, allowing for the creation of proposals that accept Yes, No, and Abstain votes to be cast on a given set of actions or just a message.

I want to understand how the UI works! How do the pieces all fit together?

Fantastic! Read more about the frontend's architecture and the design decisions we made.

Got an idea on how to improve our architecture or operations? Tag a core member on our Discord. We love making things better.