Case study 04 · Product

Nous Deux

A private shared space for long-distance couples. Two accounts, one space, and every piece of data locked down at the database level.

Role
Product, design, build
For
Couples living apart
Stack
React 19 · TypeScript · Supabase · Vite
Status
Live, open source (MIT)

The problem

Long-distance couples juggle time zones, two timetables and a dozen apps just to share small daily moments. The data involved (where you are, what you write to each other) is as private as data gets.

The product had to feel warm. The backend had to be paranoid.

The product

The security model

The app talks to Supabase directly with a public key, on purpose. That only works if the database itself refuses everything that isn't yours.

Decisions worth telling

Quality

430test cases, 32 files
24database migrations
~14.9klines of TypeScript

CI type-checks, lints, tests and builds on every push, and deploys automatically. 87 commits between May and September 2026.

← HAONext: Diavie →