Why I built this
A single source of truth for my interview prep
During my job search I kept scattering notes across docs, bookmarks, and old repos β and burning time hunting them down right before interviews. I wanted one place I could open and instantly recall what I needed: concepts, patterns, and working code.
So I built QuickRecall to solve my own problem β and used it as an excuse to get hands-on with the things I'd been curious about but hadn't had the chance to ship at work. Every feature here is something I wanted to learn by actually building it, not just reading about it.

Under the Hood
QuickRecall is more than a notes app β it's a playground for browser APIs and RSC-first React engineering techniques. Here's what powers it.
Installable & Offline-First
Install QuickRecall like a native app, then download sections for offline study β pick what you need or grab everything, with live per-section progress. It even detects what is already saved and refreshes after a new release.
built with: PWA Β· Serwist service worker + Cache Storage API
MongoDB Design System
The entire UI follows MongoDBβs LeafyGreen design system β its colors, typography, and components β for a clean, consistent, accessible interface. Real LeafyGreen components are used where they fit, with shadcn/ui + Tailwind for everything else.
built with: @leafygreen-ui + shadcn/ui + Tailwind
Cache-Once PDF Guides
Interview tip-sheet PDFs open in a browser-style tabbed reader right inside the app. Each one streams once from blob storage, then is served from cache forever β available offline and easy on bandwidth.
built with: EmbedPDF (PDFium/WASM) + Cache Storage API + Vercel Blob
Speak Out Loud
Rehearse interview answers aloud and watch your words transcribe live on screen.
built with: Web Speech API
Stay-Focused Alerts
Tab away or alt-tab and escalating desktop nudges pull you back on track.
built with: Web Notifications + Page Visibility API
Offline-First Job Tracker
Job applications live in an in-browser database that persists across reloads and syncs live across open tabs.
built with: Dexie + IndexedDB
Smart Code Display
Lightweight, lazy-loaded syntax highlighting for inline snippets β kept out of the first-load bundle.
built with: @leafygreen-ui/code
Fuzzy Search
Type into the header search to jump to any problem, custom hook, or page β typo-tolerant, ranked, and keyboard-navigable.
built with: fuse.js
Shareable Filters
Difficulty, category, and search live in the URL β every filtered view is bookmarkable.
built with: nuqs
Distraction-Free Fullscreen
One click expands the whole app to full screen for heads-down study sessions.
built with: Fullscreen API
Get in touch
Want a problem added?
QuickRecall grows with what people want to practise. If there's a machine-coding problem you'd like to see here β or any feedback β send it over. The button opens the contact form on my portfolio.