Who can see what
Access is governed by roles made of individual permissions, not by a single "administrator" flag. Every call into the system checks the permission it requires, so a treasurer cannot open minutes and an ordinary member cannot open the admin. Modules an association does not use can be switched off entirely, and then disappear from the menu.
How signing in works
Passwords are never stored in the clear, only as salted hashes. Sign-in tokens are sent as httpOnly cookies, so JavaScript, and therefore an injected script, cannot read them, and they are marked secure and SameSite. Actions that change data also require a CSRF token, and the long-lived session is replaced every time it is renewed.
One association cannot see another’s data
Every row in the database carries the association it belongs to, and every lookup is scoped to it. Which association a request belongs to is decided by the domain it arrives on, not by anything the client can send along. On top of that, a user needs a role in that particular association to reach the admin at all.
Payments and card details
Card details are entered on the payment provider’s own page. The platform gets back an order reference and a status, and never sees the card number. Each association uses its own key with the payment provider; it can be entered but never read back, and is only ever shown masked.
Confidential reports
Incidents can be reported anonymously, and when the reporter chooses that, no identity is stored on the case, not even for later use. Each case carries a confidentiality level that decides who in the association can open it at all, so a report about a person is not sitting in plain view of the whole board.
What the AI features may do
AI is off until the association turns it on, and is only applied to text you hand it: rewriting a paragraph, summarising minutes, answering from your own rulebook. The models run on our own infrastructure rather than at an external model vendor, and every call is logged with its usage so it can be accounted for afterwards.
In the browser
Pages are served with a strict Content-Security-Policy where each response gets its own nonce, so a script we did not put there cannot run. HSTS pins traffic to HTTPS. Fonts and analytics are served from our own domain, so no third party follows your members around, and analytics only counts after consent.
What is your responsibility, and what is ours
The association is the data controller and decides what is recorded and who gets access. We are the processor and handle it only to run the service. In practice the part that matters most is yours: keep the list of administrators short, and remove access when a volunteer stops.