NotePal
Turn any source into AI study notes, quizzes & flashcards

Role
Architect & Engineer
Year
2026
Status
Live
Overview
NotePal turns any learning source into ready-to-study artifacts. Upload audio, a PDF, a YouTube link, or paste text; the backend extracts the content, classifies it, and uses an LLM to generate a clean study note eagerly, with mind maps, quizzes, and flashcards built lazily on demand and cached. Heavy extraction work (PDF parsing, YouTube downloading, long-audio transcription) is pushed onto serverless Lambdas and an SQS-fed Fargate worker so the API stays light and cheap to run. A v2 RAG layer chunks embeddings into Pinecone so students can chat with their own notes and get grounded, source-aware answers. Alongside the web app, a React Native mobile app brings the full study flow to Android and iOS, with subscriptions handled through RevenueCat.
Highlights
Cut AWS cost by offloading PDF/YouTube/long-audio work to Lambda + a single Fargate worker instead of an always-on heavy server
Chunked embeddings into Pinecone for noticeably better RAG-chat answers than whole-document vectors
One backend serves both a Next.js web app and a React Native mobile app
Cross-platform subscriptions via RevenueCat (mobile) alongside Stripe (web)
Eager note generation + cached lazy artifacts keeps LLM token spend bounded
Firebase token verification at the edge; service-to-service callbacks secured with a shared secret
Capabilities
Multi-Source Ingestion
One pipeline accepts audio, PDF, YouTube, and raw text. Each source type routes to the right extractor before generation, with presigned R2 uploads for large files.
Async Generation Pipeline
Golden rule: generation is always async. Sources are enqueued to SQS; an extract → classify → generate worker produces the note eagerly and increments usage only on success.
Study Artifacts
From a single note the app lazily builds mind maps, quizzes, and flashcards via the LLM — cached on first build and never regenerated, keeping token spend predictable.
Serverless Extraction
PDF parsing (PyMuPDF + OCR fallback) and YouTube transcript/audio pulls (yt-dlp) run in dedicated Lambdas, so resource-heavy work never burdens the always-on worker.
Long-Audio Whisper Chunking
Audio over the 25MB Whisper limit is split into ~10-min mono segments with ffmpeg, language-pinned on the first chunk, transcribed in order, and concatenated.
RAG Chat Over Your Notes
A v2 retrieval layer chunks embeddings into Pinecone so students can chat with their own material and get grounded, citation-aware answers instead of generic LLM output.
Cross-Platform Mobile App
A React Native app brings the full capture-and-study flow to Android and iOS — record or upload a source on the go, browse generated notes, and run quizzes and flashcards from your phone.
Unified Billing (Stripe + RevenueCat)
Web-first Stripe subscriptions for the browser; in-app purchases on mobile run through RevenueCat. Plan state is mutated only by signature-verified webhooks — the client is never trusted for upgrades.
Mobile app
Available now on the App Store and Google Play.
