
Afterthought is a web app for journaling and reflection built around two modes of thinking. The first is a freeform sticky-note canvas where notes are draggable, snapped to a grid, and rendered in markdown. They get a deterministic color, size, and rotation derived from a hash of its ID. The second is a structured markdown journal with mood tracking across six states, comma-separated tagging, and URL-driven filtering and sorting that buckets entries into human-readable time groups (Today, Yesterday, and long-date). Both modes persist to Firebase Realtime Database under per-user paths and update live.
Stack: React 19, Vite, Firebase (Realtime Database + Auth), React Router v7, Sass, react-draggable, react-markdown, Cypress