Skip to main content

Search

Search problems, hooks, and pages

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.

Claude hard at work building QuickRecall

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.

Next.js 16
React 19
Tailwind v4
TypeScript
🐻
Dexie.js
nuqs
Vercel

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.