Transform complex research papers into plain English summaries.
Paper Plain is an AI-powered academic paper simplification tool that makes research accessible to everyone. Whether you're a student, researcher, or curious learner, Paper Plain helps you quickly understand academic papers without getting lost in technical jargon.
Paper Plain takes academic research papers (from ArXiv or uploaded PDFs) and uses advanced AI to generate clear, concise summaries. Instead of struggling through dense academic prose, you get:
- Plain English explanations of the research problem, methodology, and conclusions
- Key term definitions for the most important technical concepts
- Smart Q&A to ask follow-up questions about the paper
- Personal library to save and organize papers by project or tags
- Notes and annotations to track your thoughts alongside each paper
Perfect for literature reviews, staying current in your field, or exploring new research areas without a steep learning curve.
- 🔗 ArXiv Integration - Paste any ArXiv URL for instant summarization
- 📄 PDF Upload - Upload any research paper PDF
- 🤖 AI-Powered Summaries - Powered by Groq API with Llama 3.3 70B
- 💬 Interactive Q&A - Ask questions about the paper and get AI answers
- 💾 Save & Organize - Build your personal library with projects and tags
- 📝 Note-Taking - Add your own notes to each paper
- 📋 BibTeX Export - Easy citation management
- 🔐 User Authentication - Sign in with email/password or Google OAuth
- Node.js (v18 or higher)
- PostgreSQL database (free tier available via Supabase)
- Groq API key (get one at Groq Console)
-
Clone the repository
git clone https://github.com/abhaymundhara/PaperPlain.git cd PaperPlain -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:# Required GROQ_API_KEY=your_groq_api_key DATABASE_URL=your_postgres_connection_string BETTER_AUTH_SECRET=your_random_secret_key BETTER_AUTH_URL=http://localhost:3000 # Optional - for Google OAuth GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret # Optional - for PDF uploads on Vercel SUPABASE_URL=your_supabase_project_url SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_key SUPABASE_STORAGE_BUCKET=paperplain-pdfs # Optional - Academic APIs (higher rate limits) SEMANTIC_SCHOLAR_API_KEY=your_api_key NCBI_API_KEY=your_ncbi_api_key CONTACT_EMAIL=your@email.com
Generate a secret key:
npm run auth:secret
-
Set up the database
Run the Better Auth migration to create required tables:
npm run auth:migrate:yes
Run the PaperPlain migration to add new tables:
npm run migrate
-
Run the application
npm run dev
Open http://localhost:3000 in your browser.
- Backend: Node.js + Express
- Frontend: Vanilla JavaScript (no framework dependencies)
- Database: PostgreSQL (Supabase recommended)
- Authentication: Better Auth with email/password and Google OAuth
- AI: Groq API with Llama 3.3 70B for summarization
- Paper Source: ArXiv API + PDF parsing + Crossref + PubMed + Semantic Scholar
- Storage: Supabase Storage for PDF uploads (optional)
- DOI Import: Simplify papers by DOI (e.g.,
10.1038/nature12373) - PubMed Support: Import biomedical papers by PMID
- Semantic Scholar: Search and discover papers beyond ArXiv
- Multiple Summary Styles: simple, detailed, technical, tldr
- Streaming Responses: Real-time summary generation
- Critical Analysis: Get strengths/weaknesses assessment
- Smart Suggestions: AI-generated follow-up questions
- Reading Lists: Create custom collections of papers
- Enhanced Search: Filter by author, project, tags, date range
- Citation Tracking: See citation counts and related papers
- BibTeX: For LaTeX/JabRef
- RIS: For Zotero/Mendeley/EndNote
- Markdown: For Notion/Obsidian
- JSON: Raw data export
- CSV: Spreadsheet format
- Sign in to your account (or continue without authentication for basic features)
- Paste a paper identifier:
- ArXiv URL (e.g.,
https://arxiv.org/abs/2301.00234) - DOI (e.g.,
10.1038/nature12373) - PMID (e.g.,
23456789) - Or upload a PDF
- ArXiv URL (e.g.,
- Choose a summary style (simple, detailed, technical, or tldr)
- Click "Simplify" to generate a plain English summary
- Read the summary with problem, methodology, conclusion, and key terms
- Ask questions using the Q&A panel
- Save papers to your library with projects and tags
- Create reading lists to organize papers by topic
- Export citations in your preferred format
POST /api/simplify- Simplify an ArXiv paperPOST /api/simplify/doi- Simplify a paper by DOIPOST /api/simplify/pubmed- Simplify a PubMed paper by PMIDPOST /api/simplify/pdf- Upload and simplify a PDFPOST /api/simplify/stream- Streaming summary generation
GET /api/semanticscholar/search?q=...- Search papersGET /api/semanticscholar/paper/:id- Get paper metadataGET /api/semanticscholar/paper/:id/citations- Get citationsGET /api/semanticscholar/paper/:id/related- Get related papers
POST /api/auth/signup- Create a new accountPOST /api/auth/signin- Sign in with email/passwordPOST /api/auth/signout- Sign outGET /api/auth/me- Get current user session- Better Auth routes at
/api/better-auth/*(includes Google OAuth)
GET /api/papers- List saved papers (with filters)GET /api/papers/:id- Get a specific paperGET /api/papers/:id/citations- Get paper citationsGET /api/papers/:id/export?format=...- Export paperPOST /api/papers/import- Save an ArXiv paperPOST /api/papers/manual- Save a custom paperPOST /api/papers/export- Bulk export papersPATCH /api/papers/:id- Update paper (notes, tags, project)DELETE /api/papers/:id- Delete a paper
GET /api/lists- Get user's reading listsPOST /api/lists- Create a reading listGET /api/lists/:id- Get list with papersPUT /api/lists/:id- Update a listDELETE /api/lists/:id- Delete a listPOST /api/lists/:id/papers- Add paper to listDELETE /api/lists/:id/papers/:paperId- Remove from list
POST /api/qa/live- Ask a question about the current paperPOST /api/qa/saved/:id- Ask a question about a saved paperPOST /api/analyze/critical- Critical analysis of a paperPOST /api/analyze/suggestions- Get follow-up question suggestions
GET /api/preferences- Get user preferencesPUT /api/preferences- Update preferences
| Parameter | Type | Description |
|---|---|---|
| q | string | Text search |
| author | string | Filter by author |
| project | string | Filter by project |
| tags | string | Filter by tags (comma-separated) |
| from_date | string | Filter from date (ISO format) |
| to_date | string | Filter to date (ISO format) |
| sort_by | string | Sort field (title, created_at, citation_count, year) |
| sort_order | string | Sort direction (asc, desc) |
| page | number | Page number |
| limit | number | Results per page (max 100) |
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License.
- Powered by Groq for fast AI inference
- Built with Better Auth for authentication
- Paper data from ArXiv
Note: This is an open-source project built to make academic research more accessible. For questions or support, please open an issue on GitHub.