Skip to content

Latest commit

 

History

History
21 lines (16 loc) · 1.72 KB

CONTRIBUTING.md

File metadata and controls

21 lines (16 loc) · 1.72 KB

Contributing

How to develop

TODO

Principles

These are some principles that we can use to make decisions. They are only indicative and shouldn’t be seen as a strict set of rules.

  • Data structures: the data structures we expose are more important than the rest, even the API.
  • Programmatic API: after the data structures, the way users interact with the library takes priority over the rest.
  • Approachable: most common tasks can be accomplished with a minimum amount of code and knowledge by our users.
  • Consistent: we should reuse names and patterns whenever possible. When it makes sense, we should align with the other Aragon pieces.
  • Flexible: the library should be flexible enough to cover multiple cases when it makes sense. For example, a parameter expecting an App object could also accept the app address.
  • Familiar: interacting with the library should have a certain sense of familiarity. For example, by providing a React version of the library because of the React popularity.
  • Simple: a simple solution is generally preferred over a complex one that might provide more complete features or a better future-proofing.
  • Fast: common scenarios should be as fast as possible, even at the cost of impacting less common scenarios.
  • Lightweight: the bundle size should be as small as possible.
  • Low reliance on external libraries: external libraries should only be used when they provide a clear benefit over the costs they add in terms of size, maintenance, complexity, performances, etc.
  • Extensible: we should aim for a good level of extensibility if it doesn’t conflict with the other principles. For example, custom connectors can be injected but we also embed the most common ones.