Add drawings and notes to any PDF.
Works with mouse, touch, or stylus - completely free and private.
A modern, open-source PDF annotation tool that runs entirely in your browser
Transform any PDF into an interactive canvas. Draw, annotate, and collaborate without uploading your documents to external servers.
Try it now ā | Report Issues | Contribute
⨠Features
š PDF Search & Discovery
- Web-wide PDF search powered by Brave Search API
- Direct PDF opening from search results
- Smart filtering for PDF documents only
- Pagination through search results
- Real-time search with instant results
- Setup guide: See docs/SEARCH_FEATURE.md for configuration
šØ Drawing & Annotation
- Freehand drawing with customizable pencil and highlighter tools
- Shape tools including rectangles, circles, arrows, and stars
- Text annotations with inline editing
- Sticky notes for quick comments
- Smart eraser that removes intersecting elements
š± Universal Access
- Works on any device - desktop, tablet, or phone
- Touch-optimized with Apple Pencil support
- Mobile-friendly interface that works seamlessly on smartphones and tablets
- No installation required - runs in your browser
- Offline capable after first visit (PWA)
āæ Accessibility First
- WCAG AAA compliant - exceeds accessibility standards with 7.06:1 contrast ratios
- Keyboard navigation - full functionality without a mouse
- Screen reader friendly - semantic HTML and proper ARIA labels
- High contrast mode support for visually impaired users
- Scalable interface - works with browser zoom up to 200%
- Color blind friendly - doesn't rely solely on color for information
- Focus indicators - clear visual focus states for all interactive elements
š Privacy First
- 100% client-side - your PDFs never leave your device
- No account required - start annotating immediately
- Local auto-save - your work is preserved automatically
- Instant loading from URLs (including Dropbox links)
- High-DPI rendering for crisp display on all screens
- Infinite canvas - pan and zoom without limits
- Full undo/redo with keyboard shortcuts
š Quick Start
Option 1: Use Online
Visit leed.my and start annotating immediately.
Option 2: Load from URL
Share annotated PDFs by adding /pdf/
to any URL:
https://leed.my/pdf/https://example.com/document.pdf
Option 3: Run Locally
git clone https://github.com/rudi-q/leed_pdf_viewer.git
cd leed_pdf_viewer
pnpm install
pnpm build && pnpm preview
# Or just use the shorthand:
pnpm prev
Open http://localhost:4173
in your browser.
š ļø Tech Stack
- Framework: SvelteKit + TypeScript
- PDF Rendering: PDF.js
- Drawing Engine: HTML5 Canvas
- Styling: Tailwind CSS
- Build: Vite
- PWA: @vite-pwa/sveltekit
š Usage
Basic Controls
- Upload: Drag & drop a PDF or click the folder icon
- Draw: Select the pencil tool and start drawing
- Navigate: Use arrow keys or toolbar buttons
- Zoom: Ctrl + scroll wheel or toolbar buttons
- Pan: Ctrl + drag (or just drag outside PDF area)
Keyboard Shortcuts
Action |
Shortcut |
Tools |
1-9 (pencil, eraser, text, etc.) |
Navigation |
ā/ā for pages, W/H for fit |
Zoom |
Ctrl +/- , Ctrl 0 to reset |
Actions |
Ctrl Z/Y for undo/redo |
Upload |
U to choose file |
Help |
? or F1 |
šÆ Perfect For
- Students reviewing lecture slides and textbooks
- Professionals annotating contracts and reports
- Researchers marking up papers and documentation
- Teams collaborating on design mockups
- Anyone who needs to mark up PDFs quickly
š§ Development
Prerequisites
- Node.js 18+
- npm/pnpm/yarn
Setup
# Install dependencies
pnpm install
# Build for production
pnpm build
# Preview production build
pnpm preview
# Or use the shorthand:
pnpm prev
Building the Tauri Desktop App
# 1. Install dependencies
pnpm install
# 2. Install Rust (if you don't have it)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 3. Build your native app
pnpm tauri build
Project Structure
src/
āāā lib/
ā āāā components/ # Svelte components
ā āāā stores/ # State management
ā āāā utils/ # PDF and drawing utilities
āāā routes/ # SvelteKit routes
āāā app.html # App template
š¤ Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/awesome-feature
- Commit your changes:
git commit -m 'Add awesome feature'
- Push to the branch:
git push origin feature/awesome-feature
- Open a Pull Request
Development Guidelines
- Follow the existing code style (ESLint + Prettier configured)
- Test your changes across different devices/browsers
- Update documentation for new features
- Keep commits atomic and well-described
We'd love to hear from you! Join our community discussions:
- š Wall of Love - Share your feedback about what you loved about LeedPDF and why
- š Q&A - Ask any questions you may have
- š³ļø Polls - Poll on ideas
- š” Ideas - Share new ideas
- š Show and Tell - Show us how you're using LeedPDF
You can also use GitHub Issues for bug reports.
š± Support the Project
Love LeedPDF? Help us keep it free and open source!
š Sponsor on GitHub
Your sponsorship helps us:
- ⨠Add new features and improvements
- š§ Fix bugs and maintain code quality
- š Create better documentation and tutorials
- š Keep the project free for everyone
- š Improve performance and accessibility
Every contribution, big or small, makes a difference!
š License
LeedPDF is flexibly licensed to give you options:
š Web App - AGPL-3.0 (Free & Open Source)
⨠Try LeedPDF Web App - Always free, no account required
Perfect for:
- ā
Personal projects and learning
- ā
Educational and research use
- ā
Full PDF annotation features
- ā
Privacy-focused (local processing)
- ā
Contributing back to the community
š„ļø Desktop App - PAID
š» Download Desktop App for Windows - One-time purchase
- šÆ Windows: Pay-what-you-want
- ā
Native desktop experience
- ā
Better performance
- ā
Offline sync capabilities
- ā
Lifetime updates
- š Governed by End User License Agreement
Mac desktop app coming soon!
š¼ Commercial License for developers (Paid)
Required for:
- š¢ Commercial products and services
- š¢ Proprietary software integration
- š¢ SaaS applications and hosted services
- š¢ Client work and consulting projects
- š¢ Removing AGPL-3.0 obligations
š³ Developer Commercial Licensing Options
š Get Commercial License
Available options:
- Individual License - Solo developers and small companies
- Team License - Growing teams and agencies (up to 10 developers)
- Enterprise License - Large organizations with custom terms
For Enterprise licensing and custom requirements, contact [email protected]
š¤ What You Get With Commercial License:
- ā
Remove AGPL-3.0 copyleft requirements
- ā
Use in proprietary/commercial applications
- ā
No source code disclosure obligations
- ā
Distribute without open-sourcing your app
- ā
Remove attribution requirements
- ā
Email support for integration questions
- ā
Perpetual license (no expiration)
ā Need Help Choosing?
- Personal project for web? ā Use AGPL-3.0 (free)
- Building a commercial product? ā Individual License ($99)
- Team of developers? ā Team License ($399)
- Large company/custom terms? ā Enterprise License ($1,299+)
Questions about licensing? Contact us: [email protected]
By using LeedPDF, you agree to comply with the terms of your chosen license. The AGPL-3.0 license requires that any network-accessible modifications be open-sourced.
š Acknowledgments
- PDF.js - Mozilla's excellent PDF rendering engine
- SvelteKit - The framework that makes this possible
- Brave Search API - Powering our web-wide PDF search functionality
- Vite - Lightning-fast build tool
- Tauri - For building lightweight desktop apps
- Tailwind CSS - Utility-first CSS framework
Built with ā¤ļø for the open web
Privacy-focused ⢠Lightweight ⢠No tracking ⢠No accounts ⢠No servers