Our principles underly the technical decisions we make on conventions and tools we use. They are the most important part of this repo; every other decision and recommendation should be reproducible simply by applying these principles to different problems encountered in UI development.
Note that the principles are ordered by their importance. Earlier principles should take precendence over later ones if there are ever conflicts, and we have attempted to provide additional details on these potential conflicts where possible. The most important rule is User over team over self. The remaining rules are, in general, simply more specific applications of optimizing for our users, over our team, over ourselves:
- API over implementation
- Explicit over automatic
- Isolation over integration
- Community over ownership
- Declarative over imperative
Finally, remember that these are only our principles, and they only exist for now; they will not make every decision, and they are not set in stone. As our needs change, we may update our principles, and as we encounter new problems, we should document how we applied these ideas to build solutions.