Turn dense scientific papers into clear, jargon-free summaries with follow-up chat.
- TL;DR — 2-3 sentence summary
- Explain Like I'm Five — detailed, accessible explanation
- Paper Sections — every section summarized individually
- Chat — ask follow-up questions with full paper context
- PDF Upload — drag & drop or browse
- URL Import — paste arXiv, PubMed, or any open-access URL
- Dark Mode
- Node.js 18+
- An OpenAI API key
git clone <your-repo>
cd paper-reader
npm installCreate a .env file or set these environment variables:
# Required
OPENAI_API_KEY=sk-your-api-key-here
# Optional — defaults to gpt-4o
OPENAI_MODEL=gpt-4onpm run devOpens on http://localhost:5000.
npm run build
OPENAI_API_KEY=sk-... node dist/index.cjsOr with a .env file:
npm run build
node -r dotenv/config dist/index.cjs- Frontend: React, Tailwind CSS, shadcn/ui, wouter
- Backend: Express, SQLite (better-sqlite3), Drizzle ORM
- AI: OpenAI API (gpt-4o by default, configurable via
OPENAI_MODEL) - PDF Parsing: pdf-parse v2
FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY dist/ ./dist/
EXPOSE 5000
ENV NODE_ENV=production
CMD ["node", "dist/index.cjs"]docker build -t paperpeek .
docker run -p 5000:5000 -e OPENAI_API_KEY=sk-... paperpeek