Inspiration
Anonymous message boxes are everywhere — but almost all of them are built to exploit the people using them. They dangle "pay to see who wrote this," bury you in subscription traps, and quietly sell your data. The one place people go to be vulnerable is the place most likely to betray them. We wanted to build the opposite: an anonymous letterbox designed around a single promise — it will never sell you out.
What it does
Nameless Letters (无名信) is a mobile-first anonymous letterbox:
- Create your own inbox and share a public link — anyone can write you an anonymous letter, no login required.
- Read and reply to letters in a calm, ritual-like experience: a wax seal you press open, paper that unfolds, notes that gently drift.
- Curate your best exchanges onto a public, shareable Wall so passersby can read them and be moved to write you one too.
- Filter and search your inbox (unread / replied / public + full-text search) once the letters pile up.
- Fully multilingual out of the box: English, 简体中文, 日本語, 한국어.
Our product principles are written into the app itself: no paid unmasking, no subscription traps, no ads, no data selling.
How we built it
- Framework: Next.js (App Router) + React + TypeScript.
- Styling & motion: Tailwind CSS, shadcn-style primitives, and Framer Motion for every ritual — spring-based wax-seal stamping, staggered line reveals, desynchronized drifting notes, and haptic feedback, all with reduced-motion fallbacks.
- Data: PostgreSQL with the Drizzle ORM (typed schema + migrations); every inbox and wall read/write goes through typed API helpers.
- i18n: react-i18next with full key parity across four locales.
- Trust & safety: tiered keyword screening, rate limiting to stop enumeration and flooding, an owner moderation queue, and a third-party takedown flow — none of which ever expose a sender's identity.
Challenges we ran into
- Motion that feels physical, not gimmicky. Making the wax seal overshoot and settle, and stopping the drifting notes from pulsing in unison (which made the screen feel dizzy), took real tuning — we landed on coprime animation periods so the motion never syncs up.
- Performance at scale. A viral wall could try to load hundreds of public letters at once, so we added true database-level pagination with accurate counts and a "load more" flow.
- Designing for trust. The hardest calls were the ones we said no to — no dark patterns, even the profitable ones. We committed that promise to both the product and a public monetization roadmap.
Accomplishments that we're proud of
- A reading experience that feels like real, physical mail — not a chat bubble.
- A genuine zero-dark-pattern stance: we can never unmask a sender, and we say so, in-product, in four languages.
- A complete trust & safety layer (screening, rate limits, moderation, takedowns) that protects both senders and recipients without breaking anonymity.
- Shipped fully localized in four languages with 100% translation-key parity.
- A polished, cohesive design system: shared button and status primitives, and a unified motion language.
What we learned
The strongest moat for a product like this isn't a clever feature — it's trust. The one thing competitors can't copy is a reputation for never betraying the people who use you. Saying no to dark patterns turned out to be a product decision as much as an ethical one.
What's next for Nameless Letters
- Ship a long-lived hosted deployment and a proper landing page.
- Legitimate, opt-in monetization (per our public roadmap) — never paid unmasking.
- Richer wall curation, inbox sorting, and lightweight community features.
- Register the 无名信 / Nameless Letters trademark ahead of a wider launch.
Built With
- bun
- drizzle-orm
- framer-motion
- next.js
- postgresql
- react
- react-i18next
- shadcn-ui
- tailwindcss
- typescript
- vercel
- zod