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.
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.
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.
| 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. |
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 |
| 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 |
- Node.js >= 18.x
- pnpm (recommended) or npm
# Clone the repository
git clone https://github.com/varundeva/privacy-first.git
cd privacy-first
# Install dependencies
pnpm install
# Start development server
pnpm devOpen http://localhost:3000 in your browser.
pnpm build
pnpm startWe're building a community! Every contribution, big or small, helps make privacy-first tools accessible to everyone.
| 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 |
- Fork the repository
- Clone your fork locally
- Create a branch for your feature/fix:
git checkout -b feature/amazing-feature
- Make your changes following our coding standards
- Test your changes locally
- Commit with a descriptive message:
git commit -m "feat: add amazing feature" - Push to your fork:
git push origin feature/amazing-feature
- Open a Pull Request with a clear description
Want to add a new tool? Check out our detailed Architecture Guide which covers:
- Defining your tool in the registry (
lib/tools-config.ts) - Creating the tool component
- Registering in the client router
- 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.tsxWe 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 |
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
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- 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
We're constantly improving! Here's what's coming:
- Batch processing for multiple files
- More image format support (TIFF, HEIC)
- Audio/Video tools category
- PWA support for offline usage
- Browser extension
- API for developers
- Internationalization (i18n)
- Mobile app (React Native)
- AI-powered tools (running locally via WebML)
- Plugin system for community tools
- Desktop app (Electron/Tauri)
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.
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...
Join our growing community of privacy advocates and developers!
- π GitHub Discussions
- π Issue Tracker
- β Star us on GitHub
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