Real-time Collaborative Notes App
Overview
A modern web app for collaborative note-taking. Built from the ground up with real-time editing, offline support, and multi-user history, it's designed to feel fast, responsive, and dependable — even when multiple people are typing at once.
Why I built it
I wanted to explore the challenges of real-time collaboration, conflict resolution, and offline-first design. Instead of building a to-do app or clone project, I focused on something useful and technically demanding — and built it with a serverless, modern stack using AWS, GraphQL, and TypeScript.
What makes it interesting
Real-time editing
Enables multiple users to edit the same note simultaneously using WebSockets and operational transformation — without overwriting each other's changes.
Per-user version history
Each user can undo and redo their own edits independently, even after reconnecting or syncing with others. A single user's history stays consistent across multiple devices.
Offline support
Works fully offline as a Progressive Web App (PWA), with notes stored in IndexedDB. Supports note creation, editing, and history without an internet connection, and syncs seamlessly when back online.
Seamless note navigation
Supports infinite scroll for navigating notes, using efficient cursor-based pagination with real-time auto-refresh — ensuring smooth performance even as the note list grows.
Local-only mode
Includes a no-login, local-only mode for private note-taking. Also supports multi-account use when logged in.
Infrastructure as code
Entire backend and infrastructure is deployed using AWS CDK, built on AWS Lambda and managed services.
Real-Time Editing Demo
Three users editing the same note in real-time, with independent cursors and no conflicts.
