Live demo: quicktoolbox.onrender.com
Free, browser-based image, PDF, and dev tools — no signup, no upload limits beyond fair use. The image/PDF operations are also available as a standalone CLI for local batch processing.
| Operation | Description |
|---|---|
compress |
Convert PNG/JPG → WebP or AVIF |
resize |
Resize with fit modes (inside, cover/crop, contain, fill) |
rotate |
Rotate by angle or auto-orient via EXIF |
grayscale |
Convert to black & white |
watermark |
Overlay text with configurable position and opacity |
strip-metadata |
Remove EXIF/GPS/ICC data |
blur |
Generate base64 blur placeholders for next/image |
report |
Analyze image sizes, dimensions and WebP savings estimate |
| Operation | Description |
|---|---|
pdf-merge |
Merge multiple PDFs into one |
pdf-split |
Split a PDF into one file per page (ZIP) |
pdf-extract |
Extract specific pages into a new PDF |
img-to-pdf |
Convert one or more images into a PDF |
pdf-to-img |
Render PDF pages as PNG images (ZIP) |
| Tool | Description |
|---|---|
| JSON Formatter | Format and validate JSON, entirely client-side |
| Base64 Encode/Decode | Encode/decode text to/from Base64 |
| UUID Generator | Generate one or many v4 UUIDs |
| Timestamp Converter | Unix timestamp ↔ human-readable date |
| Color Converter | Convert between HEX/RGB/HSL with a live swatch |
| Regex Tester | Test a regex against sample text, matches highlighted |
| Markdown Preview | Live Markdown → HTML preview, side by side |
| URL Encoder/Decoder | Percent-encode/decode URL components |
| Word Counter | Live word, character, and line counts |
| Tool | Description |
|---|---|
| CPF Generator | Random CPF with a valid check digit — test data, not a real document |
| CNPJ Generator | Random CNPJ with a valid check digit — test data, not a real document |
| CPF/CNPJ Validator | Checks whether a CPF/CNPJ's check digit is valid |
| Credit Card Generator | Luhn-valid test card number (Visa/Mastercard/Amex) — no real account behind it |
| Password Generator | Configurable length and character sets |
| Hash Generator | MD5, SHA-1, SHA-256, SHA-384, or SHA-512 of any text |
| Lorem Ipsum | Placeholder text generator |
| Tool | Description |
|---|---|
| Unit Converter | Length, weight, temperature |
| Number Base Converter | Binary/octal/decimal/hex |
| Case Converter | camelCase/PascalCase/snake_case/kebab-case |
| Slugify | Text → URL-safe slug |
All Dev Tools, Generators, and Converters run 100% in the browser — no file or text is ever sent to the server.
npm installnpm start
# → http://localhost:3001Every tool lives at its own URL under /tools/<slug>/, generated at boot from
templates/ + src/catalog/tools.mjs. Image/PDF tools upload a file and download
the result; Dev Tools process everything client-side.
node index.mjs <command> <dir> [options]node index.mjs compress ./public/images
node index.mjs compress ./public/images --format=avif --quality=75
node index.mjs compress ./public/images --update-content=./src/content --delete-originals| Option | Default | Description |
|---|---|---|
--format=webp|avif |
webp |
Output format |
--quality=N |
82 |
Quality (1–100) |
--width=N |
1920 |
Max width (preserves ratio) |
--update-content=<dir> |
— | Update .png→.webp paths in .ts files |
--delete-originals |
— | Delete originals after converting |
node index.mjs blur ./public/images
node index.mjs blur ./public/images --output=blur-map.jsonGenerates a blur-map.json for use with next/image:
import blurMap from "@/blur-map.json";
<Image
src="/images/banner.webp"
blurDataURL={blurMap["/images/banner.webp"]}
placeholder="blur"
/>node index.mjs report ./public/imagesLists all images with size, dimensions, and estimated WebP savings. Warns on files above 500KB.
- sharp — image processing
- pdf-lib — PDF manipulation
- pdfjs-dist + @napi-rs/canvas — PDF rendering to image (ships prebuilt native bindings, no system packages like poppler/imagemagick needed)
- Express + Multer — web server
- JSZip — ZIP output for multi-file results
src/
├── core/ # Pure functions (buffer → buffer) for image/PDF ops, shared by CLI and web
├── cli/ # Directory adapters for CLI usage
├── web/ # Express routes (upload endpoints for image/PDF ops)
├── tools/ # Pure logic for client-side dev tools (input → output, no I/O)
└── catalog/ # tools.mjs — single source of truth for nav, home page, sitemap
templates/
├── partials/ # layout/header/footer shared by every generated page
└── tools/ # per-tool content (H1, intro copy, form markup, inline script)
public/
├── shared/ # shared CSS + upload-widget.mjs, served as-is
└── tools/ # generated at boot by scripts/build-pages.mjs — not committed
scripts/
└── build-pages.mjs # generates public/index.html + public/tools/<slug>/
index.mjs # CLI entry point
server.mjs # Web entry point