all projects
iNoteBook preview

iNoteBook

web

Secure cloud-based notebook application with JWT authentication, encrypted note storage, and real-time CRUD operations. Built with a RESTful API backend handling 1000+ concurrent requests and a responsive Material UI frontend.

React.jsNode.jsExpress.jsMongoDB
A cloud notes app that respects you enough to keep your notes private.

The problem

Most free notes apps either sync your data to a third-party graph or store it unencrypted. I wanted a self-hostable notebook with proper auth, encrypted-at-rest notes, and a clean REST API that I could trust as my actual daily driver.

The approach

Stood up a typed Express API with JWT-based auth and per-user note partitioning. Notes are stored in MongoDB with the body encrypted client-side before transit, so the DB never sees plaintext. The React + Material UI frontend handles optimistic CRUD with rollback on failure, giving the UI a snappy feel even on shaky connections.

Tech decisions

JWT + middleware-guarded routes
Stateless auth that scales horizontally; no session store to maintain
MongoDB
Note documents map naturally to a document store; faster iteration than schema migrations against Postgres for this shape
Optimistic UI with Redux
Edits feel instant; rollback on server reject keeps the data correct
Material UI
Built-in accessibility primitives; lets me focus on flow, not button styles

Outcomes

  • REST API tested under 1000+ concurrent requests with no dropped writes
  • Encrypted note bodies — plaintext never lands in the DB
  • Responsive layout works from mobile up to ultrawide
  • Per-user note isolation enforced at every read/write path

What I learned

Optimistic UI is a force multiplier on perceived speed but only if you handle rollback gracefully — silent failure is worse than a spinner. Encrypting at the client edge is cheap to add early and very expensive to retrofit.