Papyrus is a lightweight and secure PDF management tool that helps you seamlessly add or remove passwords from PDF files. Built with a blazing-fast frontend using React + Vite and a high-performance FastAPI backend, Papyrus ensures privacy and ease of use — right from your browser.
- 🔐 Add Password: Secure your PDF files with a password in just one click.
- 🔓 Remove Password: Strip password protection from encrypted PDF files.
- ⚡ Fast & Lightweight: Optimized for speed with Vite + React and FastAPI.
- 🛡️ No File Storage: All files are processed in memory — nothing is stored on disk.
- 🎯 User-Friendly UI: Simple drag-and-drop interface for quick interaction.
Ensure you have the following installed:
- Node.js: v22 or later
- Python: v3.11 or later
- Poetry: for managing Python dependencies
- Docker (optional, for containerized setup)
# Navigate to backend folder
cd backend
# Install dependencies
poetry install
# Start FastAPI server
poetry run uvicorn app.main:app --reload --port 5000
Server will be available at: http://localhost:5000/docs
# Navigate to frontend folder
cd frontend
# Install dependencies
npm install
# Start development server
npm run dev
Frontend runs at: http://localhost:3000
docker-compose up --build
This starts both the FastAPI backend and React frontend.
papyrus/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── utils/ # Common utility functions
│ │ ├── models/ # Models
│ │ ├── config/ # Settings, config
│ │ ├── services/ # PDF encryption/decryption logic
│ │ ├── middleware/ # Middleware
│ │ └── main.py # App entry point
│ ├── tests/ # Backend unit tests
│ ├── pyproject.toml # Poetry config
│ └── Dockerfile # Backend Docker setup
│
├── frontend/ # React + Vite frontend
│ ├── src/ # Main app code
│ ├── public/ # Static assets
│ ├── vite.config.ts # Vite configuration
│ └── Dockerfile # Frontend Docker setup
│
├── compose.yml # Multi-service Docker config
└── README.md # You're here!
Swagger docs are auto-generated and available at:
http://localhost:5000/docs
This project is licensed under the MIT License.
- Powered by FastAPI and React
- PDF operations handled by PyPDF2
- UI inspired by minimal productivity apps like CleanShot and Arc Browser.
Built with 💙 by Tejas.