skip to content
projects

readora

05.2025

A citation-style RAG chat app for PDFs, with a separate vector namespace per file.

The Readora landing page, showing the upload entry point and the retrieval pipeline it runs
The entry point, and the pipeline it describes.

A RAG chat app where a user uploads a PDF and asks grounded, citation-style questions about it. The demo takes one file per browser and keeps the conversation in local storage rather than on the server.

architecture

An uploaded PDF is parsed and chunked into 1000-character windows with 200 characters of overlap, embedded with gemini-embedding-001, and indexed into Pinecone under a namespace of its own, so retrieval for one document never reaches another chunks. A query pulls the top-K matches as grounded context and the answer streams back from gemini-2.5-flash. Files live on Vercel Blob with metadata in Neon Postgres through Drizzle ORM.

how i built it

  • Indexed each uploaded file into its own Pinecone namespace, so retrieval for one document never reaches another chunks.
  • Chunked into 1000-character windows with 200 characters of overlap before embedding.
  • Streamed answers from gemini-2.5-flash rather than waiting on the full response.
  • Split storage: PDFs on Vercel Blob, metadata in Neon Postgres through Drizzle ORM.
  • Added a no-signup demo lane that takes one file per browser and keeps the conversation in local storage.

stack

next.js 15gemini 2.5 flashpineconevercel blobclerkdrizzle ormneon postgresbun