This build was created as part of the ente.io hackathon and should be treated as an experimental preview.
enteGram is a privacy-first, end‑to‑end encrypted social journal for tight-knit communities. The client never shares plaintext secrets; instead it exchanges encrypted vaults, wall keys, and post payloads with the Go backend.
- Account bootstrap – Registration derives a login key from the user’s password + nonce, uploads encrypted private keys/root vault keys, and seeds wall keys (including bios) that are shared later.
- Cross-device login – A username/password pair can recreate the login key on any device, fetch Argon2 parameters, download encrypted blobs, and rebuild the local vault without ever transmitting the password to the server.
- Follow graph with approvals – Followers send requests, publishers approve by encrypting wall keys with the follower’s public key, and recipients keep a local cache of decrypted wall keys per wall.
- Secure posting pipeline – Posts reference presigned S3 uploads (hard limit 2 MB each). Captions are encrypted with a post key that is itself encrypted with the wall key, so only authorized followers can decrypt content.
- Engagement signals – Authenticated viewers can like posts; responses include per-post like counts and whether the current viewer has liked the item.
- Community & discovery – A paginated community API exposes high-level user profiles while respecting bio visibility (followers only) and promoting search-driven discovery.
More narrative details live in README.product.md. Implementation specifics, setup steps, and environment variables are documented in README.dev.md.