Skip to content

Arkaikus/pdf-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PDF Tools MVP

A privacy-focused, frontend-only PDF manipulation tool built with React and Bun. Process your PDFs entirely in your browser - no data ever leaves your device.

πŸŽ‰ MVP COMPLETE! All 3 core features + Task Queue system are fully functional and ready to use!

✨ Features

πŸŽ‰ MVP COMPLETE - All Core Features Ready!

Task Queue System

  • Track all PDF processing tasks
  • 5-character unique task IDs
  • Download results multiple times
  • 24-hour result persistence
  • Visual status tracking
  • Error debugging
  • Task statistics dashboard

PDF Tools βœ…

  • JPG to PDF - Convert images to PDF with customizable settings

    • Multiple images support
    • Drag & drop reordering
    • Page size selection (A4, Letter, Legal)
    • Orientation control (Portrait/Landscape)
    • Adjustable margins
    • Fit to page & aspect ratio options
  • Merge PDF - Combine multiple PDFs into one

    • Upload multiple PDF files
    • Drag & drop to reorder
    • Select specific page ranges per file
    • Visual page count display
    • Automatic merge and download
  • Organize PDF - Manipulate PDF pages visually

    • Upload single PDF
    • Visual page thumbnails
    • Drag & drop to reorder pages
    • Rotate pages (left/right)
    • Delete pages (with restore)
    • Save organized PDF

Coming Soon (Phase 4) πŸ”œ

  • Split PDF - Extract pages or split into multiple files
  • Compress PDF - Reduce file size
  • PDF to JPG - Convert PDF pages to images
  • Add Watermark - Text or image watermarks
  • Password Protection - Encrypt/decrypt PDFs
  • Batch Operations - Process multiple files at once

πŸ›‘οΈ Privacy First

  • 100% Client-Side Processing - All PDF operations happen in your browser
  • No Data Upload - Your files never touch a server
  • Offline Capable - Works without an internet connection
  • No Tracking - No analytics or data collection
  • Open Source - Full transparency in what we do

πŸš€ Quick Start

Local Development

# Install dependencies (includes all PDF libraries)
bun install

# Setup PDF.js worker (required)
bun run setup:worker

# Start development server
bun dev

# Access at http://localhost:3333

Using Docker (Recommended)

# Build and start
docker-compose up -d

# Access at http://localhost:3000

Build for Production

bun run build
bun start

πŸ“‹ Available Commands

# Development
make install       # Install dependencies
make dev           # Start dev server
make build         # Production build

# Docker
make docker-build  # Build Docker image
make docker-up     # Start containers
make docker-down   # Stop containers
make docker-logs   # View logs

# Maintenance
make clean         # Clean build artifacts
make clean-all     # Clean everything

πŸ—οΈ Tech Stack

  • Frontend: React 19
  • Runtime: Bun
  • Styling: Tailwind CSS v4
  • PDF Library: pdf-lib, pdfjs-dist
  • Storage: IndexedDB + LocalStorage
  • Container: Docker + Nginx

πŸ“ Project Structure

src/
β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”œβ”€β”€ common/        # Shared components
β”‚   └── pdf/           # PDF-specific components
β”œβ”€β”€ features/          # Feature modules
β”‚   β”œβ”€β”€ jpg-to-pdf/
β”‚   β”œβ”€β”€ merge-pdf/
β”‚   └── organize-pdf/
β”œβ”€β”€ hooks/             # Custom React hooks
β”œβ”€β”€ utils/             # Helper functions
β”‚   β”œβ”€β”€ pdf/          # PDF utilities
β”‚   └── storage/      # Storage helpers
└── types/             # TypeScript types

🐳 Docker Details

The project includes:

  • Multi-stage Dockerfile - Optimized production build
  • Nginx configuration - Fast static file serving
  • Docker Compose - Easy orchestration
  • Development mode - Hot-reload in container

Production Container

docker compose up -d pdf-tools

Accessible at http://localhost:3000

Development Container

docker compose --profile dev up pdf-tools-dev

Accessible at http://localhost:3001

πŸ“š Documentation

Document Description
docs/USER_GUIDE.md πŸ“– Complete guide to using all features (JPG to PDF, Merge PDF, Organize PDF, Task Queue)
docs/INSTALL.md πŸš€ Installation and setup instructions for local and Docker deployments
docs/TODO.md βœ… Project roadmap with completed MVP features and future plans
docs/ARCHITECTURE.md πŸ—οΈ Technical architecture, design decisions, and system structure
docs/TROUBLESHOOTING.md πŸ”§ Common issues, solutions, and debugging guide
CONTRIBUTING.md 🀝 Contributing guidelines and development workflow
CHANGELOG.md πŸ“ Version history and recent updates

πŸ“ Roadmap

See docs/TODO.md for the complete development roadmap.

Phase 1: Foundation βœ… COMPLETE

  • βœ… Setup infrastructure
  • βœ… Core UI components
  • βœ… Docker configuration
  • βœ… Tailwind CSS integration
  • βœ… IndexedDB & LocalStorage

Phase 2: Core Features βœ… COMPLETE

  • βœ… JPG to PDF converter
  • βœ… Merge PDF tool
  • βœ… Organize PDF tool
  • βœ… Task Queue system

Phase 3: MVP Complete βœ… DELIVERED

  • βœ… All 3 PDF tools functional
  • βœ… Task queue with persistence
  • βœ… Drag & drop interfaces
  • βœ… Privacy-first architecture
  • βœ… Production-ready Docker setup

Phase 4: Future Enhancements πŸš€

  • Split, Compress, Watermark
  • PDF to Image conversion
  • Password protection
  • Batch operations

🀝 Contributing

Contributions are welcome! Please read the TODO.md for development guidelines and feature roadmap.

πŸ“„ License

MIT License - feel free to use this project for personal or commercial purposes.

πŸ”’ Security

All processing happens client-side. No files are uploaded to any server. The application uses:

  • IndexedDB for temporary file storage (auto-cleanup after 24h)
  • LocalStorage for user preferences only
  • Content Security Policy headers
  • No external API calls

🌐 Browser Support

  • Chrome/Edge 90+
  • Firefox 88+
  • Safari 14+
  • Opera 76+

Requires modern browser with support for:

  • Web Workers
  • IndexedDB
  • File System Access API (optional)

Built with ❀️ using Bun and React

About

free privacy focused pdf tools

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors