1# Contributing to SophaxChat23Thanks for your interest in contributing. SophaxChat is a security-focused project — please read this before submitting code.45## Philosophy67This project has a formal philosophy document. **Read [PHILOSOPHY.md](../PHILOSOPHY.md) before contributing.** By submitting a pull request, you agree to its principles.89The short version:1011-**No servers.** Every feature must work without a central server.12-**No accounts.** Identity is cryptographic, not email/phone-based.13-**No tracking.** No analytics, no crash reporters that phone home.14-**Minimal dependencies.** Every dependency is a potential attack surface.1516## Building1718### iOS / macOS1920Prerequisites: Xcode 15+, XcodeGen.2122```bash23brew install xcodegen24xcodegen generate25open SophaxChat.xcodeproj26```2728Press **⌘R** to build and run. A physical device is required for MultipeerConnectivity (Simulator does not support P2P).2930The core library (`SophaxChatCore`) can be built without Xcode:3132```bash33swift build34swift test35```3637### Android3839Prerequisites: Android Studio Meerkat or later, JDK 17+.4041```bash42cd android43./gradlew assembleDebug44```4546See [`android/README.md`](../android/README.md) for details on the Android port status.4748## Protocol compatibility4950The iOS and Android apps must interoperate. Any change to the wire format must be documented in [`docs/protocol.md`](../docs/protocol.md) and must maintain backward compatibility or include a versioning mechanism.5152## Security issues5354Do **not** open a public GitHub issue for security vulnerabilities. See [`SECURITY.md`](../SECURITY.md) for responsible disclosure instructions.5556## Pull requests5758- Keep PRs focused — one feature or fix per PR.59- Include a brief description of *why*, not just *what*.60- Crypto changes require a clear explanation of the security model impact.61- All Swift code must compile with strict concurrency checking (`-strict-concurrency=complete`).