Problem. Wanted real hands-on depth with real-time data, not just CRUD — built a personal messaging app to learn how sync-at-scale actually behaves in the browser.
Impact & architecture.
Next.js + TypeScript front end with a Firestore real-time backend
Firestore onSnapshot listeners push new messages instantly — no polling, no manual refresh
Tailwind CSS for a clean, responsive chat UI across devices