As we are building a new version of Open Collective, it’s good to keep track of some of the design principles that will guide us as we build together a co-op-erating system for communities.
A co-op-erating system for communities, a system to manage their financial and non financial contributions, their external and internal economy.
A place to record, acknowledge and value all the financial and non-financial contributions in your community.
We leave no one behind. Everyone in the community should be able to contribute and have their contribution recorded. That means that we don’t only make it easy for anyone to contribute, we also make it easy for people to record contributions on behalf of others in their community that may not necessarily be connected.
We create a space that allows for experimentation, without jeopardizing the structure and the assets of the community. This means we log everything and we allow for every action to be reversible whenever possible.
The more we, the more me. Open Collective also needs to benefit you. It should be the go-to-place to record your contributions, get the latest updates from the communities you are part of, and interact with other members. It should help you manage your different identities. It should also provide a profile page where people can see who you are based on the contributions you make to various communities.
Everything is public within the community unless specified otherwise. This removes a lot of headaches in terms of access control, permissions, etc. Private information should stay on people’s devices and be shared peer to peer.
Within a community, there is a high level of trust. Therefore, we can get rid of passwords and access control. What matters is that everything is logged and reversible by the stewards.
Every action should be logged (Nostr events).
Every action should be reversible by the author or a steward (while keeping history). That means that the steward can maintain a blacklist of Nostr event ids that should be ignored.
Anyone can contribute. Wiki style. See an issue, a metadata missing, go fix it. Then login if you want to attach that contribution to (one of) your profile.
Everything should be offline first, then sync with the community. This is not only a fantastic user experience (no latency), but it also ensures resilience as the data is decentralized among all users.
Communities should be able to run a local server and point their domain name to it. They should be able to define their own access control (e.g. some communities may decide to have a whitelist of users).
We do not expect users to have any technical experience. We don’t expect to know what a private key is (and how to store it properly).
People use Lu.ma, Google Drive, opencollective.com, let’s embrace that diversity of tools. We should also let anyone build other frontends, other ways to input data in the system (or consume it).
We record all financial and non financial transactions on an EVM blockchain.
We write all transaction metadata as Nostr notes.
We provide a default Nostr Relay for all open communities. Closed communities need to have their own Nostr Relay. This will enable them to have much more fine grain control for access control.
We do not assume that people can keep a private key safe. Therefore, private keys should never leave a device (and exporting them should not be allowed). The corresponding public key should be considered like an IP address that can change over time. Each Open Collective Community Server should keep track of all their users and their associated sessions.
Make sure we use a decentralized solution to store assets, uploads, etc.
Offline first FTW.