step 1. write this hackmd
step 2. put on github/website
# Cabal Contribution Guidelines
1. **Small trusted groups (e.g. 2-25 ppl).** Cabal prioritizes features that serve small trusted groups of people. This also means prioritizing security, safety, and privacy (and fun).
2. **Sustainability.** We are attentive to the sustainability of the code as well as the personal relationships of maintainers. We want to keep a functional set of features that are maintainable (e.g. tested) as well as a community that is respectful to each other.
3. **Separation of concerns.** Built in clear layers (protocol, library, clients).
4. **Accessibility.** From an end-user point of view, Cabal works where people are, from in the terminal to on mobile devices. From a developer point of view, it should be easy to work with as well (e.g. documented, simple, enjoyable).
5. **Polish & Aesthetics.** Cabal's clients appeal to their audiences through well-chosen features and simple design.
6. **Minimize waste.** Runs SUPER fast and smooth, even on older hardware.
# Values
1. **Nazi punks fuck off.**
No nazis, no TERFs, no alt-right—or anyone friendly with them
3. **No-burnout zone**
Contributing should be enjoyable _at least more-often-than-not_; like hanging out with good friends
1. **Kindness**, to each other and to ourselves
1. **Collaboration & communication rather than hierarchy and authority**
Honest and clear communication is important to us, as is collaborating with people who align with the project. Everyone is welcome to tag along for the ride (just make sure to read the contributing guidelines & talk with existing maintainers _before_ you start building a huge feature)
# Cabal Roadmap
A roadmap is useful for
1. writing grants
2. telling supporters/individual donors what we're crowdfunding on
3. giving new contributors ideas for what to work on
We wrote some stuff but it's a bit old now
* Existing roadmap
* https://github.com/cabal-club/commons/blob/master/roadmap.md
* https://github.com/cabal-club/cabal-desktop/issues/225
Homework: Compare potential list of features with the above goals and pick blocks of work that are compatible with many/most/all of the goals.
- cabal-ui, cabal web, cabal mobile (Accessibility, polish, separation of concerns, sustainability)
- Internationalization (Accessibility, Polish, Small trusted groups)
- Simpler & smaller protocol/cli library (accessibility, small trusted groups, separation of concerns)
- Zero knowledge peers (supports small trusted groups, path to funding sustainability, accessibility)
- Communal documentation-cleaning sprint (polish, sustainability, accessibility)
- Scrollback (polish, separation of concerns via dedicated npm module)
- Private messages (small trusted groups, polish, accessibility, separation of concerns)
- Image sharing (small trusted groups, polish, accessibility)