Case study · Own product
Chatt World
A group chat where every message arrives in each reader's language, so people who don't share a language can talk in the same group.
- Role
- Product, design and full stack development
- Launched
- September 2026
- Platform
- Web app, installable as a PWA
- Stack
- Fastify, WebSockets, PostgreSQL, React, Zustand
01 · The problem
Groups split by language
Mixed-language groups usually fall back to one shared language, or people copy messages into a translator and paste the answer back.
I wanted each person to write naturally in their own language and read everyone else in theirs, inside a chat that feels as complete as the apps they already use.
02 · What I built
A complete chat, translated for every reader
Conversation
- Translation on arrival or on demand, using the author's language as a hint
- Replies, mentions, edits, deletes and pinned messages
- Reactions and five types of polls
- Link previews protected against SSRF
Presence and alerts
- Online status and typing indicators
- Read receipts per message, also in private chats
- Notification bell and Web Push as an installable PWA
Community
- News feed with comments and likes
- Friends and contacts with online status
- Themes and chat backgrounds saved to the account
Global by design
- Interface in each user's language
- Right-to-left scripts supported
- Public landing page and SEO in English
03 · Architecture
How it fits together
-
Frontend
React PWA
Zustand state, service worker and Web Push
-
Edge
Cloudflare and Nginx
Turnstile on sign-in and a strict content security policy
-
API and realtime
Fastify and WebSockets
Messages, presence, translation and revocable sessions
-
Data and media
PostgreSQL
Plus a separate processor that resizes photos and videos
04 · Engineering highlights
Built to be trusted
Security
Server-side sessions that users can revoke, single-use links to change a password, bot protection on sign-in and a strict content security policy.
Load testing
Load tests with k6 surfaced six failures under concurrency, and I fixed each of them.
Media pipeline
Photos and videos are resized by a separate processor, with thumbnails shown in the conversation.