I've been researching this area too. I agree that it's crucial for people to have ways to communicate when the internet is shut down.
While I don't have many answers to those questions yet, I can share a few thoughts and point you in the direction of some projects and communities that are dealing with similar questions
---
Communities:
It's the last day of it but this meeting/conference (https://www.battlemesh.org/BattleMeshV16) is currently on and, whilst it has more of a focus on networks in general, there are people there are asking similar questions. The sessions are live-streamed and archived here: https://media.exo.cat/videos/local
I'm not sure where you're based but there are also some local communities:
- https://dwebcamp.org/
- https://canodrom.barcelona/es/comunidad/digicoria
- https://altermundi.net/
---
Some thoughts:
- Scalability: it's a big job to set up aspects like routing protocols for mesh networks. I would suggest building on top of existing standards (e.g. BATMAN, Yggdrasil). The developers of these projects are dealing with the lower-level parts of these questions which would help you focus on building a frontend that works for your use case. You could also use Bridgefy's API though I don't have experience with it and its not open source.
- Security: These protocols implement various strategies. For this, it depends a bit on what your transport protocol is.
- Privacy vs. Accountability: I don't think you can have privacy _and_ police how it is used. Between them, I would take similar decisions to most messaging apps (from Signal to WhatsApp) and strongly design in favour of privacy. If you're set on having some accountability, you could have a peer-led reputation system, but there's no guarantee it will align with your goals - the bots might outvote the people!
- Regulatory Challenges: In the places where this is most needed, the country's laws are going to make it difficult for this app. I suspect you need to make this public and put that risk, unfortunately, on the side of the user. But some aspects that could help are using local first data (https://localfirstweb.dev/) where possible and decentralised data storage when it's not.
- What transport protocols are you considering using for Road? It seems like most protest situations over the last ten years (Iraq) used Firechat until it was shut down in 2018 and then protests after that (Hong Kong) took to Bridgefy (which is only Bluetooth). Some people are also working with LoRa; it's longer range but less accessible as you need separate hardware.
---
Finally, here's the longlist of projects I identified as relevant to my research, copied from a table I've been building:
Althea, Amazon Sidewalk, Armachat, BATMAN-adv, Beaker Browser, Berty, Bria, Briar, Bridgefy, CellSol, Chirp Stack, CJDNS, Cow Mesh, DAT Protocol, dcomms, Disaster Radio, Echolink, Element, Firechat, Freenet, Freifunk, GNUnet, Guifi, Holepunch, Hyperboria, I2P, IPFS, IPFS Desktop, Jami, LibreMesh, Lokinet, Loratype, Matrix, MeshCentral, Meshtastic, MessengerPi, NomadNet, NTS, OpenGarden/Firechat, OrbitDB, Ouisync, Positive Intentions, Pymesh, Qaul, Resilio Sync, Reticulum, RetroShare, Ricochet Refresh, Ripple Messenger, Scuttlebutt, Secure Scuttlebutt, Serval, Simplex, Syncthing, The Things Network, Tox, Two Way, VOA Radiogram, Volk Fi, Whisper, Yggdrasil, Zello, ZeroTier
In particular, Briar, Qaul and Bridgefy align closely with what it sounds like you're aiming for.
---
I hope there's something useful for you in there!