Paperflow is an AI-powered workflow for scanning, organizing, and searching paper notes.
Check it out live: https://paperflowapp.vercel.app
- Install dependencies
cd client
npm install
- Create a
.env.localfile inside theclientdirectory. You will need to make an account on Clerk to get an API key.
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=...
- Run in development mode
npm run dev
- Create a virtual environment + install dependencies
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Create a
.envfile inside theserverdirectory. You will need to create API keys for Gemini, OpenAI, Pinecone, and Supabase.
CLERK_ISSUER=
CLERK_JWKS_ENDPOINT=
CLERK_SECRET_KEY=
SQLALCHEMY_DATABASE_URL=
GOOGLE_API_KEY=
GEMINI_API_KEY=
OPENAI_API_KEY=
PINECONE_API_KEY=
PINECONE_ENVIRONMENT=
SUPABASE_URL=
SUPABASE_KEY=
SUPABASE_BUCKET=
FRONTEND_URL=http://localhost:3000
- Run server
uvicorn main:app
The frontend is built with Next.js, with a FastAPI backend for handling core logic and OpenCV for image processing. The RAG pipeline is built with OpenAI embeddings, Pinecone, and Gemini. The database is PostgreSQL, storing images in Supabase S3.

