A privacy-first, client-side PDF editor that runs entirely in your browser. Merge, split, rotate, convert, and enhance PDFs without uploading to any server.
PDFMatrix is a powerful, free, browser-based PDF toolkit that runs entirely in your browserโno servers, no uploads, no limits. Built with modern web technologies for students, professionals, and anyone who values privacy and control over their documents.
- ๐ 100% Privacy - All processing happens locally in your browser. Your files never leave your device.
- โก Lightning Fast - No server uploads or downloads. Process files instantly.
- ๐ฐ Completely Free - No subscriptions, no hidden costs, no feature locks.
- ๐ซ No Limits - Process unlimited files of any size.
- ๐ด Works Offline - Progressive Web App with full offline support
- ๐ฑ Installable - Add to home screen on mobile/desktop as a native app
- ๐จ Modern UI - Beautiful Matrix-themed dark interface with smooth animations.
PDFMatrix is a fully offline-capable Progressive Web App with advanced features:
- โ Works Completely Offline - All features available without internet connection
- โ Installable - Add to home screen on mobile/desktop as a native app
- โ Fast Loading - Smart caching with Workbox for instant startup
- โ Auto-Updates - Seamless background updates when online
- โ Cross-Platform - Works on any device with a modern browser
- โ App-Like Experience - Standalone window, no browser UI
- โ Persistent Storage - Cached assets for offline use
- Visit https://pdfmatrix.dharshankumar.com
- Look for the install icon (โ) in the address bar
- Click "Install PDFMatrix"
- The app will open in its own window
iOS (Safari):
- Open the website in Safari
- Tap the Share button (โกโ)
- Scroll down and tap "Add to Home Screen"
- Tap "Add" to confirm
- Find PDFMatrix on your home screen
Android (Chrome):
- Open the website in Chrome
- Tap the menu icon (โฎ)
- Tap "Install app" or "Add to Home Screen"
- Tap "Install" to confirm
- Find PDFMatrix in your app drawer
- Strategy: Auto-update with prompt
- Caching: Workbox-powered intelligent caching
- Offline Fallback: Full functionality without network
- Cache Management: Automatic cleanup of outdated caches
- CacheFirst - Fonts, images (long-term assets)
- StaleWhileRevalidate - JS/CSS (balance between speed and freshness)
- NetworkFirst - HTML pages (always try network first)
- Runtime Caching - Dynamic content caching
// Precaching
- All HTML, CSS, JS, and assets
- App icons and favicons
- Fonts and images
// Runtime Caching
- Google Fonts (1 year cache)
- Images (30 days cache)
- Static resources (7 days cache)Combine multiple PDF files into a single document with drag-and-drop reordering.
- Merge 2 or more PDFs
- Drag-and-drop file ordering
- Preview all files before merging
- Visual progress tracking
Extract specific pages or split PDFs into multiple documents.
- Split by Pages - Extract specific page numbers (e.g., 1,3,5-10)
- Split by Ranges - Divide into custom page ranges
- Extract Single Pages - Get individual pages as separate PDFs
- Split Every N Pages - Automatically divide into equal parts
- Visual page selection with live preview
Reduce PDF file size while maintaining acceptable quality.
- Multiple compression levels (Low, Medium, High)
- Real-time size preview
- Quality vs. size balance controls
- Automatic image optimization
Rotate PDF pages individually or in bulk.
- Quick actions: 90ยฐ, 180ยฐ, 270ยฐ rotation
- Rotate all pages at once
- Individual page rotation
- Live rotation preview
- Clockwise/Counter-clockwise controls
Rearrange, duplicate, or delete PDF pages with visual drag-and-drop.
- Drag-and-drop page reordering
- Visual page thumbnails with preview
- Duplicate pages - Create copies of any page
- Delete pages - Remove unwanted pages
- Reverse order - Flip entire document
- Select all - Bulk operations
- Interactive page grid view
Change PDF page dimensions and scale content.
- Standard sizes: A4, A3, A5, Letter, Legal
- Fit modes:
- Fit to page (maintain aspect ratio)
- Fill page (crop if needed)
- Stretch to fill
- Custom dimensions - Set exact width/height
- Content scaling options
- Margin controls
Automatically add customizable page numbers to your PDF.
- Positioning: Top/Bottom, Left/Center/Right (9 positions)
- Number formats:
- Simple numbers (1, 2, 3)
- Page X of Y format
- Custom prefix/suffix
- Customization:
- Font size (8-24pt)
- Text color picker
- Margin controls (horizontal/vertical)
- Starting number
- Skip first/last page options
- Real-time preview
Protect documents with text or image watermarks.
- Text Watermarks:
- Custom text input
- Font size control (12-72pt)
- Color picker
- Opacity adjustment (0-100%)
- Rotation angle (-180ยฐ to +180ยฐ)
- Image Watermarks:
- Upload custom images (PNG, JPEG)
- Size control (50-500px)
- Opacity adjustment
- Rotation control
- Positioning: 9-point positioning grid + custom coordinates
- Apply to all pages or specific pages
Export PDF pages as high-quality image files.
- Image formats: PNG, JPEG
- Quality control: 50-100% (for JPEG)
- Resolution: 72-216 DPI (1x, 2x, 3x scaling)
- Page selection:
- Convert all pages
- Custom page selection (e.g., 1,3,5-10)
- Download options:
- Individual images
- All as ZIP archive
- Batch download
- Preview all converted images
Create PDF documents from image collections.
- Supported formats: PNG, JPEG, GIF, WebP, BMP
- Multi-image upload - Select multiple files at once
- Page size options: A4, A3, A5, Letter, Legal, Custom
- Image fitting modes:
- Fit (maintain aspect ratio)
- Fill (crop to fill page)
- Stretch (fill without maintaining aspect ratio)
- Drag-and-drop reordering - Arrange images before conversion
- Individual controls: Move up/down, remove images
- Margin controls - Adjust spacing around images
- Visual image preview grid
- React 19 - Modern UI library with latest features
- TypeScript 5.7 - Type-safe development
- Vite 6.2 - Lightning-fast build tool and dev server
- vite-plugin-pwa 0.20.5 - PWA plugin for Vite
- Workbox 7.3.0 - Service worker generation and caching strategies
- Service Worker - Auto-generated with intelligent caching
- Web App Manifest - Installability and app configuration
- Tailwind CSS 3.4 - Utility-first CSS framework
- Custom Matrix Theme - Dark mode with green accent colors
- Responsive Design - Mobile-first approach
- Smooth Animations - Enhanced user experience
- pdf-lib 1.17.1 - Core PDF manipulation (merge, split, modify)
- pdfjs-dist 5.4.394 - PDF rendering and page preview
- JSZip 3.10.1 - Create ZIP archives for batch downloads
- node-forge 1.3.1 - Cryptographic operations (for future password protection)
- tesseract.js 6.0.1 - OCR capabilities (for future features)
- ESLint - Code quality and consistency
- PostCSS & Autoprefixer - CSS processing
- TypeScript ESLint - TypeScript linting rules
- Node.js 18+ and npm/yarn/pnpm
# Clone the repository
git clone https://github.com/dharshan-kumarj/PDFMatrix.git
cd PDFMatrix
# Navigate to frontend directory
cd frontend
# Install all dependencies (including PWA packages)
npm install vite-plugin-pwa@^0.20.5 workbox-window@^7.3.0# Start development server
npm run dev # Runs at http://localhost:5173
# Build for production (includes service worker generation)
npm run build
# Preview production build with PWA features
npm run preview
# Run linter
npm run lintPDFMatrix/
โโโ frontend/
โ โโโ public/ # Static assets
โ โ โโโ favicon.svg
โ โ โโโ site.webmanifest # PWA manifest
โ โ โโโ web-app-manifest-*.png # App icons
โ โ โโโ robots.txt
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โ โโโ PdfMerger.tsx
โ โ โ โโโ PdfSplitter.tsx
โ โ โ โโโ PdfCompressor.tsx
โ โ โ โโโ PdfRotation.tsx
โ โ โ โโโ PdfResize.tsx
โ โ โ โโโ PdfPageNumbers.tsx
โ โ โ โโโ PdfPasswordProtection.tsx
โ โ โ โโโ PdfWatermark.tsx
โ โ โ โโโ PdfReorder.tsx
โ โ โ โโโ PdfToImages.tsx
โ โ โ โโโ ImagesToPdf.tsx
โ โ โโโ App.tsx # Main app component
โ โ โโโ main.tsx # Entry + SW registration
โ โ โโโ index.css # Global styles
โ โโโ vite.config.ts # Vite + PWA config
โ โโโ package.json # Dependencies
โ โโโ tsconfig.json # TypeScript config
โโโ backend/ # Future backend (optional)
โโโ LICENSE
โโโ README.md
VitePWA({
registerType: 'autoUpdate', // Auto-update SW
includeAssets: ['favicon.svg', 'robots.txt'],
manifest: {
name: 'PDFMatrix - Free PDF Tools',
short_name: 'PDFMatrix',
theme_color: '#10b981',
background_color: '#000000',
display: 'standalone', // App-like experience
icons: [...]
},
workbox: {
globPatterns: ['**/*.{js,css,html,png,svg}'],
runtimeCaching: [
// Google Fonts - CacheFirst (1 year)
// Images - CacheFirst (30 days)
// JS/CSS - StaleWhileRevalidate (7 days)
],
cleanupOutdatedCaches: true,
skipWaiting: true,
clientsClaim: true
}
})// src/main.tsx
import { registerSW } from 'virtual:pwa-register'
registerSW({
onNeedRefresh() {
// Prompt user to reload for updates
},
onOfflineReady() {
// App ready to work offline
}
})cd frontend
npm run buildOutput (dist/ folder):
- โ Optimized static assets
- โ
Service worker (
sw.js) - โ Web app manifest
- โ Pre-cached resources
- โ All app icons
Compatible with any static file host:
# Vercel
vercel deploy
# Netlify
netlify deploy --prod
# GitHub Pages
# Push dist/ folder to gh-pages branch
# Cloudflare Pages
# Connect repo and set build output to 'dist'
# AWS S3 + CloudFront
aws s3 sync dist/ s3://your-bucket --deleteNo environment variables required! Everything runs 100% client-side.
All PDF processing happens in your browser using WebAssembly and JavaScript. No files are uploaded to any server, ensuring complete privacy and security.
Since processing is client-side, you're only limited by your device's memoryโnot arbitrary server limits.
Intuitive file management with visual feedback for reordering, merging, and organizing pages.
See changes immediately with live page thumbnails and previews before downloading.
Works seamlessly on desktop, tablet, and mobile devices with an adaptive interface.
Eye-friendly dark interface with green accent colors inspired by The Matrix aesthetic.
- Sidebar Menu - Easy access to all 10 PDF tools
- Mobile-Responsive - Collapsible sidebar for mobile devices
- Tool Descriptions - Clear descriptions for each feature
- Active Tool Highlighting - Visual feedback for current selection
Each tool features:
- Clean, centered layouts
- Step-by-step instructions
- Visual progress indicators
- Error handling with user-friendly messages
- Success confirmations
- Helpful tips and usage guidelines
- Zero Server Communication - All operations are local
- No Data Collection - We don't track, store, or transmit any data
- No Account Required - Use all features without signing up
- Open Source - Code is transparent and auditable
- Browser-Only Storage - Files exist only in your browser session
PDFMatrix works in all modern browsers with PWA support:
- โ Chrome/Edge 90+ (Full PWA support with installation)
- โ Firefox 88+ (Service worker support, limited install)
- โ Safari 14+ (Service worker and manifest support)
- โ Opera 76+ (Full PWA support)
- โ Chrome/Samsung Internet (Android) - Full PWA
- โ Safari (iOS 14+) - Add to Home Screen
- โ Edge Mobile - Full PWA support
- JavaScript enabled
- WebAssembly support
- Service Worker API
- Cache API
- IndexedDB (for future features)
- Web App Manifest support
- ๐ฏ Performance: 95+
- ๐ฏ PWA: 100 (Perfect PWA score)
- ๐ฏ Accessibility: 95+
- ๐ฏ SEO: 100
- ๐ฏ Best Practices: 100
- First Contentful Paint: < 1.0s
- Time to Interactive: < 2.0s
- Speed Index: < 1.5s
- Offline Ready: 100% functionality
- Bundle Size: < 500KB (gzipped)
- Service Worker: < 50KB
- โ Served over HTTPS
- โ Responsive on all devices
- โ All app URLs load while offline
- โ Metadata for Add to Home Screen
- โ Fast load time
- โ Works cross-browser
- โ Page transitions feel snappy
- โ Each page has a URL
- โ 10 Core PDF Tools
- โ Progressive Web App (PWA)
- โ Full Offline Support
- โ Service Worker with Workbox
- โ Installable on all platforms
- โ Auto-updates
- ๐ PDF Password Protection - Add encryption to PDFs (In Progress)
- ๐ PDF Form Filling - Fill and edit PDF forms
- โ๏ธ Text Editing - Edit text directly in PDFs
- ๐ Enhanced OCR - Extract text from scanned PDFs
- ๐ Batch Processing - Process multiple PDFs at once
- ๐ฏ PDF Annotations - Add comments and highlights
- ๐ PDF Bookmarks - Create and manage document bookmarks
- ๐ Multi-language Support - Internationalization
- ๐จ Theme Customization - Multiple color schemes
- ๐พ Local Storage - Save recent files (with permission)
- ๐ฑ Push Notifications - Update notifications
- ๐ Background Sync - Process files in background
# Clone repository
git clone https://github.com/dharshan-kumarj/PDFMatrix.git
cd PDFMatrix/frontend
# Install PWA dependencies (run this single command)
npm install vite-plugin-pwa@^0.20.5 workbox-window@^7.3.0
# Start development
npm run dev
# Build for production (generates service worker)
npm run build
# Preview production build with PWA features
npm run previewAfter building, check for these files in dist/:
- โ
sw.js- Service worker - โ
manifest.webmanifest- PWA manifest - โ
workbox-*.js- Workbox runtime
- Build the app:
npm run build - Preview:
npm run preview - Open DevTools โ Application โ Service Workers
- Check "Offline" checkbox
- Reload page - app should work offline!
MIT License - Free to use, modify, and distribute.
See LICENSE file for details.
Contributions are welcome! This project is actively maintained.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- ๐ Bug fixes
- โจ New features
- ๐ Documentation improvements
- ๐จ UI/UX enhancements
- ๐ Translations (future)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Feature Requests: Open an issue with the
enhancementlabel
Dharshan Kumar J
- GitHub: @dharshan-kumarj
- pdf-lib - Excellent PDF manipulation library
- PDF.js - Mozilla's PDF rendering engine
- Workbox - Google's PWA toolkit and service worker library
- vite-plugin-pwa - Seamless PWA integration for Vite
- React - Amazing UI framework
- Tailwind CSS - Utility-first CSS framework
- Vite - Next-generation build tool
- 10 PDF Tools - Comprehensive feature set
- 100% Client-Side - Complete privacy guarantee
- 100% PWA Score - Perfect Progressive Web App
- 0 Server Dependencies - Fully offline capable
- Modern Tech Stack - Latest React, TypeScript, Vite
- Lighthouse Score - 95+ across all metrics
Built with โค๏ธ and โ by Dharshan Kumar J
โญ Star this repo if you find it useful! โญ