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.

Notes app real-time users collaborative editing demo

Screenshots

  • Notes three users editing at the same time
  • Notes drag and drop