1. Do not rely on the law to protect systems or users. 2. Prepare policy commentary for quick response to crisis. 3. Only keep the user data that you currently need. 4. Give users full control over their data. 5. Allow pseudonymity and anonymity. 6. Encrypt data in transit and at rest. 7. Invest in cryptographic R&D to replace non-cryptographic systems. 8. Eliminate single points of security failure, even against coercion. 9. Favor open source and enable user freedom. 10. Practice transparency: share best practices, stand for ethics, and report abuse.
https://en.wikipedia.org/wiki/Rubber-hose_cryptanalysis
https://en.wikipedia.org/wiki/Rubberhose_(file_system)
I wrote two on these things. First is general stuff for both security and stopping legal reach of LEO's. Second is incrementally designing something like Tor with assurance against a NSA-level opponent using methods that stopped them in the past and then some overkill on top of it. The latter is to cover any advances they might be making.
https://www.schneier.com/blog/archives/2013/10/a_court_order...
https://www.schneier.com/blog/archives/2014/09/identifying_d...
Something as simple as publishing the hash of the update in a blockchain and then widely distributing the source to construct reproducible builds for that hash would go a long way. You don't even need to make it open source, you could just have a robust enough set of geographically distributed testing labs inspect this code and check the published hash code.