/aragon

Create and manage decentralized organizations on Ethereum.

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Aragon

Build Status All Contributors

πŸŒŽπŸš€ Trusted by over 1000 organizations, securing more than $20MM in funds. Try it out.

  • πŸ“š Read the User Guide first, if you have any questions as a user.
  • πŸ— If you'd like to develop an Aragon app, please visit the Aragon Developer Portal.
  • πŸ“ Please report any issues and feedback in the Aragon Client channel.
  • πŸ”§ For technical stuff, use this project's issues or join the technical conversation in our Developer hangout channel.
  • πŸ“– To learn more about contributing to the Aragon client itself, please check the contributing guide.
  • 🚒 For an overview of what changed with each release, check the releases and changelog.

Quick start

Install with yarn and launch the app with yarn start. By default, the app is configured to connect to the Ethereum Rinkeby testnet.

For connecting to other chains / deployments, a few useful npm scripts are provided:

  • Ethereum Mainnet: yarn start:mainnet will launch the app, configured to connect to the Ethereum mainnet
  • Local development: yarn start:local will launch the app, configured to connect to our aragen local development environment. It will also use the local IPFS daemon, if it detects one exists. If you're using the aragonCLI, you'll want to run this to connect to its local chain.

Note: Windows users may need to install the windows-build-tools before installing this project's dependencies.

More configuration options are available, and depending on your needs, you may find the frontend development setup guide helpful.

Releases

The Aragon client undergoes a number of different deployments, based on build environments, major release timelines, and quality assurance checks.

For more information about each official release, see our releases page.

aragonPM

Regular updates, with incrementing minor or patch versions, are published onto the aragon.aragonpm.eth on-chain repository for all supported Ethereum environments.

These should be seen as "official" builds, whose distributions are secured by IPFS. Most users see this version of the app, due to mainnet.aragon.org and rinkeby.aragon.org pointing to these builds.

Each incremental version released through this pipeline is documented in our releases page.

Secrets

A number of environment secrets are required during publishing and these are sometimes different per network.

You may either specify these secrets as environment variables or use a .env. An Aragon One encrypted file (.env.enc) is included in this repo with the current secrets used in production.

To decrypt:

keybase decrypt -i .env.enc -o .env

To encrypt:

keybase encrypt --team aragonone -i .env -o .env.enc

Nightly / Per-PR builds

Automatic nightly.aragon.org and nightly-rinkeby.aragon.org deployments will occur for each PR and merge to master through Now. These are useful for quickly testing a new feature, change, or hotfix.

The official Now app for Github is set up to publish nightlies against Rinkeby see default Now configuration. Travis is set up to publish nightlies against mainnet (see mainnet Now configuration).

Contributing

πŸ‘‹ Get started contributing with a good first issue.

πŸŽ“ You may be interested in the Aragon client architecture guide if you're not familiar with how the project is set up.

Don't be shy to contribute even the smallest tweak. 🐲 There are still some dragons to be aware of, but we'll be here to help you get started!

For other details about contributing to Aragon, more information is available in the contributing guide.

Issues

If you come across an issue with Aragon, do a search in the Issues tab of this repo and the Aragon Apps Issues to make sure it hasn't been reported before. Follow these steps to help us prevent duplicate issues and unnecessary notifications going to the many people watching this repo:

  • If the issue you found has been reported and is still open, and the details match your issue, give a "thumbs up" to the relevant posts in the issue thread to signal that you have the same issue. No further action is required on your part.
  • If the issue you found has been reported and is still open, but the issue is missing some details, you can add a comment to the issue thread describing the additional details.
  • If the issue you found has been reported but has been closed, you can comment on the closed issue thread and ask to have the issue reopened because you are still experiencing the issue. Alternatively, you can open a new issue, reference the closed issue by number or link, and state that you are still experiencing the issue. Provide any additional details in your post so we can better understand the issue and how to fix it.

Contributors

Thanks goes to these wonderful people (emoji key):


Pierre Bertet

πŸ’»

Brett Sun

πŸ’»

Gorka Ludlow

πŸ’»

Jorge Izquierdo

πŸ’»

Luis IvΓ‘n Cuende

πŸ’» 🎨 πŸ€”

Oliver

πŸ’»

ßingen

πŸ’»

Daniel Norman

πŸ’»

John Light

πŸ“– πŸ›

Tatu

πŸ“–

Patricia Davila

🎨 πŸ““

Jouni Helminen

🎨 πŸ““

Luke Duncan

πŸ€”

Daniel Constantin

πŸ’»

RJ Ewing

πŸ’»

Paul Henschel

πŸ’»

Rodrigo Perez

πŸ’»

gasolin

πŸ’»

Adam Soltys

πŸ’»

Arun Kumar

πŸ’»

Beer van der Drift

πŸ’»

Daniel Caballero

πŸ’»

Deam

πŸ’»

Ilia Smirnov

πŸ“– πŸ”§

julsar

πŸ“–

Pascal Precht

πŸ”§

Rudy Godoy

πŸ“–

Yalda Mousavinia

πŸ’»

decodedbrain

πŸ’»

jvluso

πŸ’»

mark g romano

πŸ’»

mul53

πŸ’»

Jon

πŸ’»

Abhinav Sagar

🚧

geleeroyale

πŸ“–

Otto G

πŸ’»

Adam Boro

πŸ’»

Emilio Silva Schlenker

πŸ’»

Olivier Sarrouy

πŸ’»

delfipolito

πŸ’»

Enrique Ortiz

πŸ’»

Fabrizio Vigevani

πŸ’»

Mathew Cormier

πŸ’»

Mick de Graaf

πŸ’Ό

iwaduarte

πŸ’»

EC Wireless

πŸ’»

owisixseven

🎨

Andy Hook

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

Re-usable foundations

Amongst other dependencies, the Aragon client is built upon these packages that you may also find useful for your projects:

  • aragonUI: React component library used to build user interfaces within the Aragon design system
  • token-amount: utility class for encapsulating and formatting a token amount
  • use-inside: React utility that allows a component to be aware of being "inside" the subtree of another component
  • use-token: React utility for fetching information related to tokens on Ethereum
  • use-viewport: React utility providing the current window size and convenient functions for responsive apps
  • use-wallet: React utility aiming to make the integration between your dapp and your users' web3 wallets as straightforward as possible
  • web3-react: a simple, maximally extensible React framework for supporting arbitrary web3 wallets