Privacy-first PDF tools that run entirely on your device.
No account. No uploads. No tracking. No ads.
A community project by intabtools, made by students, for everyone.
InTab PDF provides private, local PDF tools and viewing across Web, Desktop (Electron), and Android (Capacitor).
- Merge PDF: Combine multiple PDFs into a single document with drag-and-drop ordering.
- Rotate PDF: Rotate all or selected pages in 90-degree increments.
- Remove Pages: Delete individual pages or page ranges with live validation.
- Split PDF: Extract page ranges or split documents into multiple PDFs.
- Images to PDF: Convert JPG, PNG, and WebP images to PDF with reordering, A4/Fit sizing, and preview lightbox.
- Compress PDF: Optimize PDF size by setting target file size (KB/MB) or presets.
Coming soon in upcoming updates: Text to PDF, Reorder pages, Protect, Unlock, Sign, PDF to images, and Extract text.
- Web: Generated PDFs and opened files open directly in a new browser tab using native browser PDF capabilities, avoiding redundant embedded reader overhead.
- Desktop (Electron) and Mobile (Android): Built-in in-app PDF viewer featuring asynchronous fulltext search with match navigation, fit-to-width, zoom (25% to 400%), page thumbnail rail, document close action, and distraction-free reading mode.
Most online PDF tools ask you to upload your files to a server. We do not think that is right, so InTab PDF works differently.
- Everything runs on your device.
- No backend, no account, no tracking, no ads.
- Open source and community driven.
We are a group of students, so the code must be easy for everyone to read and change. We follow four simple goals.
- Simple. The plain way is the best way. No clever tricks.
- Modular. One tool, one folder. Tools do not depend on each other.
- Explainable. You should be able to say what a file does in one or two sentences.
- Maintainable. Small PRs, tests for PDF logic, and docs that match the code.
| Platform | Technology | Deployment / Packaging | Status |
|---|---|---|---|
| Web | Vite + React + TypeScript | Static site on Cloudflare Pages (dist/) |
Fully functional client-side tools with native tab PDF viewing |
| Desktop | Electron | NSIS/ZIP (Windows), AppImage/DEB/RPM (Linux) | Fully functional with embedded PDF viewer and offline tools |
| Android | Capacitor | Android APK | Fully functional mobile app with embedded viewer and offline tools |
You need Node.js (v18+ or v20+ LTS).
git clone https://github.com/intabtools/intabpdf.git
cd intabpdf
npm install
npm run dev# Run unit and integration tests
npm test
# Check code formatting and linting
npm run lint
# Build web application for production
npm run build
# Preview production web build locally
npm run preview
# Build desktop application for Electron
npm run build:desktop- Read contributing.md. It is short.
- Look for issues labelled
good first issue. - Ask questions anytime. Nobody expects you to know everything.
You do not need to read everything. Start with the first two files and come back to the others when you need them.
| File | What it covers |
|---|---|
| contributing.md | How to help, step by step |
| architecture.md | How we plan to arrange the code |
| folder-guide.md | What each folder is for |
| adding-a-tool.md | Build a new tool step by step |
| privacy.md | Our privacy promise and rules |
| commit-conventions.md | How to write commit messages |
| code-quality.md | Friendly tips for clean code |
| dependencies.md | Adding libraries safely |
| platforms.md | Web, desktop and Android plans |
| maintainer-guide.md | For people who review PRs and make releases |
| decisions.md | Why we made some key choices |
| api-reference.md | Technical reference for types, interfaces, worker protocols |
Found a security or privacy problem? Please tell us privately. See SECURITY.md.
See LICENSE.