Skip to content

imurtuja/PDFly

Repository files navigation

PDFly

Every PDF tool you'll ever need - free, fast, and 100% private.

A premium, open-source PDF toolkit built entirely in the browser. Merge, split, compress, convert, and manage your documents safely locally without ever sending them to a server.


Live Demo Next.js TypeScript Tailwind CSS React


Live Site   •   Features   •   Tech Stack   •   Setup Guide   •   Architecture


About the Developer

Murtuja
Murtuja
Full-Stack Developer

Hi! I'm Murtuja, a passionate developer who loves building premium, production-grade web applications. PDFly is a platform built to provide a beautiful, seamless, and-most importantly-private way to manage PDF documents.

I built this because I was tired of uploading sensitive documents to random online tools just to rotate a page or split a PDF. PDFly fixes that. It's fast, it's private, and everything happens directly via modern web APIs on your machine. My goal is to prove that utility tools can feature polished, elegant UIs while remaining highly functional and secure.


Portfolio GitHub LinkedIn


Features

PDFly brings together 12 powerful PDF tools into one seamless, browser-based ecosystem.

Organize Documents

Feature Description
Merge PDFs Combine multiple PDFs into one with an intuitive drag-and-drop reordering interface.
Split PDFs Split by custom page ranges or extract individual pages effortlessly.
Rotate Pages Rotate pages by 90°, 180°, or 270° - apply globally or selectively.
Manage Pages Visually delete unwanted pages or rearrange them on an interactive canvas.

Format Conversion

Feature Description
PDF to Image Export pages as high-quality JPG or PNG files, bundled into an instant ZIP download.
Image to PDF Stitch together multiple images (JPG, PNG, WebP) into a clean, unified document.

Optimize & Annotate

Feature Description
Compress Files Intelligently reduce PDF file sizes while maintaining sharp readability.
Watermarking Stamp custom text across all pages with precise control over rotation, position, and opacity.
Page Numbers Automatically inject formatted page numbers with customizable styling.

Security & Privacy

Feature Description
Zero Data Exposure Absolute privacy. All processing runs completely un tethered on the client side; nothing ever reaches a server.
Protect Add robust password protection to your confidential PDFs to restrict unauthorized access.
Unlock Instantly remove password encryption from PDFs you rightfully own.

Premium User Experience

Feature Description
Sleek Aesthetic A pristine dark-mode UI with smooth glassmorphism, animated elements, and responsive states.
Drag & Drop Effortless interactions powered by @dnd-kit for completely frictionless file handling.


Tech Stack

Next.js & React
Next.js & React
TypeScript
TypeScript 5
Tailwind CSS
Tailwind v4
PDF-Lib
pdf-lib

Full Dependency Breakdown

Icon Category Technology Purpose
Framework Next.js 16 App Router pages, server rendering logic, and lightning-fast delivery.
Language TypeScript Robust end-to-end type safety for rock-solid stability.
Styling Tailwind CSS v4 Rapid UI construction with a consistent, utility-first design system.
Animations Framer Motion Fluid micro-interactions and page transitions defining the premium feel.
PDF Processing pdf-lib & pdfjs In-memory document viewing and manipulation directly in the browser.
File Utils sharp & JSZip Client-side image optimizations and archiving tools.

Architecture

pdfly/
├── src/                        
│   ├── app/                    # Next.js App Router (Layouts, Pages, SEO config)
│   │   ├── tools/              # Tools landing directory
│   │   └── tool/...            # Dynamic routing for 12 independent tools 
│   │
│   ├── components/             # Reusable UI Architecture
│   │   ├── Navbar.tsx
│   │   ├── pdf/...             # PDF Preview and generic visualization primitives
│   │   └── tools/...           # Encapsulated state panels for each action (e.g. MergeControls.tsx)
│   │
│   └── lib/                    # Core business logic processing
│       ├── tools.ts            # Centralized dictionary map of endpoints to icons/descriptions
│       └── pdf/...             # The mathematical heavy lifting: atomic scripts hitting 'pdf-lib'
│
├── public/                     # Static media payloads and OS icons
├── tailwind.config.js          # Tailwind specification extensions
└── package.json                # Dependencies map

Getting Started

Prerequisites

  • Node.js v18 or later
  • npm, yarn, or pnpm

1. Clone the Repository

git clone https://github.com/imurtuja/PDFly.git
cd PDFly

2. Install Dependencies

npm install

3. Run Development Environment

Since all logic is client-driven, there are zero .env variables or API configurations to establish.

npm run dev

Open http://localhost:3000 to start processing your PDFs instantly!


Deployment

PDFly uses Next.js server logic gracefully out-of-the-box and can deploy to Vercel instantly. The stable version is currently live and performing locally at pdfly.murtuja.in


Contributing

Contributions are highly encouraged!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/cool-new-tool
  3. Commit your changes: git commit -m "feat: added OCR text extraction"
  4. Push to the branch: git push origin feature/cool-new-tool
  5. Open a Pull Request

Contact

Murtuja - Full-Stack Developer

Portfolio Email LinkedIn GitHub


License

Distributed under the MIT License.


If PDFly helped you avoid uploading a private document to a sketchy site, consider starring the repo!


Made with 🤍 by Murtuja

About

A free, fast, and 100% private PDF toolkit built with Next.js. Merge, split, compress, and more - all running locally in your browser without ever uploading your files.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors