Skip to content

πŸ›‘οΈ Free, privacy-first online tools - Image converter, PDF merger, JSON formatter & 60+ utilities. 100% browser-based, no file uploads. Open source toolkit for developers & everyone.

License

Notifications You must be signed in to change notification settings

varundeva/privacy-first

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ Privacy-First Toolbox

Your Data. Your Device. No Compromises.

A free, open-source collection of browser-based tools that process your files entirely on your device. No uploads. No servers. No tracking. Just powerful utilities that respect your privacy.

GitHub Stars License Issues Pull Requests

Privacy First Tools - Free and Private - Free online tools for images, PDFs & more - 100% private | Product Hunt


🌟 Vision

To build a world where privacy is the default, not a premium feature.

We envision a future where every person has access to powerful, free tools that work entirely on their own devices - no data handed over to corporations, no hidden trackers, no compromises. Privacy-First Toolbox is our contribution to that future.


🎯 Mission

Empower users with free, privacy-respecting online tools that process files entirely in the browser.

Every day, millions of people upload sensitive documents to online converters without realizing their files might be stored, analyzed, or sold. We're here to change that. Our mission is to prove that powerful tools don't need your data.


πŸ’‘ What We Believe In

Value Description
πŸ”’ Privacy First Your files never leave your device. All processing happens in your browser.
⚑ Fast & Efficient Modern Web Workers ensure smooth, non-blocking processing.
❀️ Free Forever No subscriptions, no hidden fees. Completely free to use.
πŸ”“ Open Source Full transparency. Audit, contribute, and improve our codebase.
🌍 Community Driven Built by developers, for everyone. Your contributions shape the future.

πŸ› οΈ Available Tool Categories

Privacy-First Toolbox offers 60+ tools across 7 categories:

Category Description Examples
πŸ“Έ Image Tools Convert, compress, and manipulate images JPG↔PNG, WebP conversion, Image resize
πŸ“„ PDF Tools Split, merge, and convert PDF files PDF merge, split, compress, rotate
πŸ“ Text Tools Text formatting, conversion, and analysis Case converter, word counter, diff tool
πŸ“… Date & Time Timestamp, formatting, and duration tools Unix timestamp, timezone converter
πŸ“Š JSON Tools Format, validate, and convert JSON data JSON formatter, JSON↔YAML, JSON↔CSV
πŸ” Crypto & Security Hash generators, encryption, and encoding MD5, SHA256, Base64, bcrypt
🌐 Web Tools Formatters, generators, and utilities Color converter, CSS formatter, HTML encoder

πŸ—οΈ Tech Stack

Technology Purpose
Next.js 16 React framework with server components
React 19 UI components and reactivity
TypeScript Type-safe development
Tailwind CSS Utility-first styling
Radix UI Accessible UI primitives
shadcn/ui Beautiful, reusable components
Web Workers Off-main-thread processing
pdf-lib Client-side PDF manipulation

πŸš€ Getting Started

Prerequisites

  • Node.js >= 18.x
  • pnpm (recommended) or npm

Installation

# Clone the repository
git clone https://github.com/varundeva/privacy-first.git
cd privacy-first

# Install dependencies
pnpm install

# Start development server
pnpm dev

Open http://localhost:3000 in your browser.

Build for Production

pnpm build
pnpm start

🀝 Contributing

We're building a community! Every contribution, big or small, helps make privacy-first tools accessible to everyone.

Ways to Contribute

Type Description
πŸ› Bug Reports Found a bug? Open an issue
πŸ’‘ Feature Requests Have an idea? Start a discussion
πŸ”§ Code Contributions Submit a PR to add features or fix bugs
πŸ“– Documentation Help improve docs and guides
🌐 Translations Help make tools accessible in more languages
🎨 Design Improve UI/UX with design suggestions

How to Contribute Code

  1. Fork the repository
  2. Clone your fork locally
  3. Create a branch for your feature/fix:
    git checkout -b feature/amazing-feature
  4. Make your changes following our coding standards
  5. Test your changes locally
  6. Commit with a descriptive message:
    git commit -m "feat: add amazing feature"
  7. Push to your fork:
    git push origin feature/amazing-feature
  8. Open a Pull Request with a clear description

Adding a New Tool

Want to add a new tool? Check out our detailed Architecture Guide which covers:

  1. Defining your tool in the registry (lib/tools-config.ts)
  2. Creating the tool component
  3. Registering in the client router
  4. Adding worker logic (if needed)

Quick Overview:

// 1. Add to lib/tools-config.ts
{
  id: 'your-tool-id',
  name: 'Your Tool Name',
  slug: 'your-tool-slug',
  category: 'image', // or 'pdf', 'text', 'json', 'crypto', 'web', 'date'
  // ... see existing tools for full structure
}

// 2. Create component in components/tools/[category]/YourTool.tsx
// 3. Register in app/tools/[category]/[slug]/client.tsx

Commit Message Convention

We follow Conventional Commits:

Prefix Description
feat: New feature
fix: Bug fix
docs: Documentation changes
style: Formatting, no code change
refactor: Code refactoring
test: Adding tests
chore: Build/tooling changes

πŸ“ Project Structure

privacy-first/
β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”œβ”€β”€ tools/              # Tool pages (dynamic routing)
β”‚   β”œβ”€β”€ about/              # About page
β”‚   β”œβ”€β”€ contact/            # Contact page
β”‚   └── ...
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ tools/              # Tool-specific components
β”‚   β”‚   β”œβ”€β”€ image/          # Image tools
β”‚   β”‚   β”œβ”€β”€ pdf/            # PDF tools
β”‚   β”‚   β”œβ”€β”€ text/           # Text tools
β”‚   β”‚   β”œβ”€β”€ json/           # JSON tools
β”‚   β”‚   β”œβ”€β”€ crypto/         # Crypto tools
β”‚   β”‚   β”œβ”€β”€ web/            # Web tools
β”‚   β”‚   β”œβ”€β”€ date/           # Date/Time tools
β”‚   β”‚   └── shared/         # Shared tool components
β”‚   β”œβ”€β”€ ui/                 # shadcn/ui components
β”‚   └── layout/             # Layout components
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ workers/            # Web Workers for processing
β”‚   β”œβ”€β”€ tools-config.ts     # Tool registry & SEO metadata
β”‚   └── utils.ts            # Utility functions
β”œβ”€β”€ public/                 # Static assets
└── styles/                 # Global styles

πŸ”’ How Privacy Works

Zero Server Upload

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         YOUR BROWSER                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚   Main Thread    β”‚          β”‚      Web Worker Thread       β”‚ β”‚
β”‚  β”‚                  β”‚          β”‚                              β”‚ β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  ────►   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ β”‚
β”‚  β”‚  β”‚  Tool UI   β”‚  β”‚  File    β”‚  β”‚   Processing Logic     β”‚  β”‚ β”‚
β”‚  β”‚  β”‚ Component  β”‚  β”‚  Data    β”‚  β”‚                        β”‚  β”‚ β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚ β”‚
β”‚  β”‚        β”‚         β”‚          β”‚            β”‚                 β”‚ β”‚
β”‚  β”‚        β–Ό         β”‚  ◄────   β”‚            β–Ό                 β”‚ β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ Result   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚ β”‚
β”‚  β”‚  β”‚  Download  β”‚  β”‚          β”‚  β”‚  OffscreenCanvas API   β”‚  β”‚ β”‚
β”‚  β”‚  β”‚   Result   β”‚  β”‚          β”‚  β”‚  (stays in browser)    β”‚  β”‚ β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚ β”‚
β”‚  β”‚                  β”‚          β”‚                              β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                  β”‚
β”‚                    NO DATA EVER LEAVES THIS BOX                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Browser APIs We Use

  • Web Workers – Off-main-thread processing
  • OffscreenCanvas – Image manipulation in workers
  • File API – Local file handling
  • Blob/ArrayBuffer – Binary data processing
  • URL.createObjectURL – Preview generation

πŸ—ΊοΈ Roadmap

We're constantly improving! Here's what's coming:

πŸ”œ Short Term

  • Batch processing for multiple files
  • More image format support (TIFF, HEIC)
  • Audio/Video tools category
  • PWA support for offline usage

🎯 Medium Term

  • Browser extension
  • API for developers
  • Internationalization (i18n)
  • Mobile app (React Native)

🌟 Long Term

  • AI-powered tools (running locally via WebML)
  • Plugin system for community tools
  • Desktop app (Electron/Tauri)

πŸ™ Credits & Acknowledgements

Privacy-First Toolbox is built on the shoulders of giants. We're grateful to:

  • Next.js & React teams
  • Tailwind CSS & Radix UI maintainers
  • pdf-lib for amazing PDF processing
  • All open-source contributors who make this possible

See our full Credits Page for a complete list.


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2024 Varun Deva

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...

πŸ’¬ Community

Join our growing community of privacy advocates and developers!


🌟 Star History

If you find Privacy-First Toolbox useful, please consider giving us a ⭐ on GitHub!

Your support helps us reach more people and motivates continued development.


Made with ❀️ for privacy by the open-source community

⭐ Star us on GitHub β€’ πŸ› Report Bug β€’ οΏ½ Request Feature