Y
Let's talk
All projects

Consumer web app · privacy

Honest Mailbox

A private space for couples: say how you feel, check in daily, play together and repair after conflict.

Case studyConsumer web app
Next.js 16React 19TypeScriptFirebase AuthFirestoreFramer Motion
Problem
Couples need a place to say difficult things gently, and that place holds some of the most private data people have.
Who it's for
Couples, including long-distance ones, who want a daily habit of checking in and a calmer way through conflict.
Design decisions
A warm, playful identity with a mailbox mascot, a sticker set and bold editorial type, so serious conversations feel safe rather than clinical. Its own design system keeps the components consistent.
Technical decisions
Next.js client components on Firebase Auth (Google sign-in) and Cloud Firestore, with no custom server. Security headers (CSP, HSTS and more) are set in the Next config and tested; Dependabot and npm audit run in CI.
The hard problem
Keeping a two-person space truly private. Every document names its two members and the rules check that on every read and write; invite codes are single-use and expire. Chat is end-to-end encrypted with keys derived on each device, plus a passphrase-wrapped backup so a new device can recover. The limits (no forward secrecy, metadata visible) are written down plainly.
Result
Live with games, question decks, daily check-ins and encrypted chat. Unit tests cover date and streak logic, and the security rules are tested against the Firestore emulator.
How it's built
  • Auth & data

    Firebase Auth + Firestore rules

  • Security

    E2EE chat, CSP, tested rules

  • Tests

    Unit + emulator rule tests

Next project

Strata