Privacy Policy
Last revised: November 2026 • Architecture Spec
Core Privacy Philosophy
IndiChat is designed around strict data minimization and user sovereignty. We believe your conversations, calls, and files belong solely to you. We do not sell user data, integrate third-party advertising SDKs, or harvest behavioral tracking telemetries.
Data We Process
- Account Authentication Data: Usernames and email addresses. User passwords are encrypted using the BCrypt cryptographic algorithm with a logarithmic work factor of 12. Plaintext passwords are never persisted.
- Passkey Public Credentials: When using WebAuthn / FIDO2 Passkeys, your biometric information and private keys remain strictly within your device hardware enclave. IndiChat only stores the public key credential and credential ID.
- Session & Device Metadata: When you connect, we record device type, platform, and IP address in
user_linked_devicesto allow you to inspect active sessions and remotely disconnect compromised devices from Settings. - Media & Files: Uploaded attachments are stored in object storage (MinIO / S3) using randomized UUID filenames, preventing predictable resource enumeration.
Real-Time Communications & WebSockets
IndiChat coordinates real-time messaging and WebRTC call signaling through high-throughput duplex WebSockets. Undelivered messages are held in PostgreSQL until delivery confirmation (message.delivered) is acknowledged by the recipient socket client.
Local Archives & Chat Backups
Local archive exports generated on client devices are strictly client-side operations. IndiChat does not upload or analyze exported plaintext chat archives.
Account Termination & Data Deletion
Users may request full account deletion through Settings. Deletion purges user credentials, linked device sessions, active socket tokens, and conversation memberships across the system.