Zero-Knowledge Encrypted Notes App
Build an encrypted notes app whose server stores only ciphertext: encryption happens on the client, keys never leave the device,...
Build a browser whiteboard where multiple users draw, add shapes and sticky notes, and see each other’s updates in near real time — with rooms, undo/redo, and persistence.

A browser-based whiteboard where multiple people can draw, place shapes and sticky notes, and watch each other’s changes appear in near real time. A shared board is a room; anyone with access to the room sees the same canvas, and the system keeps everyone’s edits consistent — even when two people edit at the same moment. The project is a serious study in real-time systems: shared state, synchronization, conflict handling, and persistence, all inside a scope a student or small team can actually finish.
>Honest about real time. “Near real time” means updates travel over WebSockets as fast as the network allows — not zero latency, and not infinite scale. The architecture described here targets a few dozen concurrent editors per room, which is the realistic envelope for this build.
Remote collaboration lost the whiteboard. Video calls share screens, but drawing together — sketching an architecture, mapping a customer journey, annotating a diagram — is awkward in document editors built for text. Commercial whiteboards solve it but are heavyweight, closed, and often per-seat priced. What’s missing for a learning project is a whiteboard whose synchronization design is understandable: one room, a shared canvas, edits that propagate and converge without anyone losing work.
The board is a list of objects (strokes, rectangles, text, sticky notes), each with an id, type, geometry, style, and version. Users don’t share screenshots — they share operations on this object list. The canvas is just a rendering of the current document state.
When a user draws, the client sends a small operation — add stroke, move object, update text — to the server over a WebSocket. The server appends it to the room’s log and broadcasts to other members, who apply it locally. Sending operations (a few dozen bytes) rather than whole-canvas snapshots (kilobytes-to-megabytes) is what keeps updates fast and cheap. This is the core design choice, and it is different from synchronizing complete state: operations scale with edit count, snapshots scale with board size.
Two users editing the same object at the same time can conflict. The pragmatic approach for this project: server-authoritative ordering — the server assigns each operation a monotonic sequence number, and every client applies operations in that order. Last-write-wins (with a timestamp/version comparison) resolves same-object conflicts, while different objects never conflict at all. A full CRDT (conflict-free replicated data type) or OT (operational transform) layer is a real enhancement path, but server-ordering + LWW is a legitimate, honest first architecture that handles the overwhelming majority of real whiteboard edits.
Undo is not “clear the canvas and replay” — it is an inverse operation. Each object edit can be undone by reverting to its previous version; each object creation by removal. Undo history is per-user and, for simplicity, shared-board undo is bounded to the last edit each user made (documented limitation).
The server persists the room’s operation log (or a compacted document snapshot) to PostgreSQL. On join, a client loads the snapshot plus any operations after it — a clean “snapshot + log” pattern.
Multi-room management, presence cursors, rich object types, CRDT convergence, and user accounts are natural second-phase additions.
The site’s collaboration thread already has the real-time collaborative markdown editor — and this Idea is deliberately its canvas counterpart, not its clone. The editor synchronizes text documents; this whiteboard synchronizes graphical objects. The differences are real: a canvas object model with geometry and styles, operations that are drawing edits rather than text edits, rendering (not parsing) as the client’s core job, and conflict handling that is mostly object-level. The two share real-time infrastructure ideas (server ordering, operation logs), which makes them a natural pair to cross-link — and the whiteboard is the one that teaches the visual half of real-time collaboration. The real-time IoT dashboard shows the same streaming mindset applied to telemetry, and the interactive data structures visualizer demonstrates canvas-based rendering this project can learn from.
| Tool type | Approach | Limitation |
|———–|———-|————|
| Commercial whiteboards | Managed real-time collaboration | Closed data model, per-seat cost, hard to learn from |
| Screen-share drawing | Draw over a shared screen | Latency-bound, no shared document state |
| Document editors with drawings | Diagrams inside docs | Not a live shared canvas; heavy tooling |
| Standalone drawing apps | Local only | No collaboration at all |
This project’s differentiators: an open, understandable operation-based sync model, a scope a student can finish, server-authoritative ordering with honest limits, and a documented CRDT upgrade path.
Browse more Web ideas · Startup Ideas
Build an encrypted notes app whose server stores only ciphertext: encryption happens on the client, keys never leave the device,...
Build a personal portfolio tracker that records holdings and transactions, tracks cost basis and gains, and runs a configurable tax-loss...
Build a cross-platform app that scans and decodes QR codes, validates and previews payloads before acting, and organizes scan history...
Looking for something more accessible? Try these:
Published on September 7, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.
Published on September 7, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.