# Your Everyday Tools A lightweight, self-hosted web app that bundles 100 everyday utilities into a single interface. Built with Python + Flask, zero JavaScript frameworks, and minimal CSS — no bloat, just tools. ![Python](https://img.shields.io/badge/Python-3.10+-blue) ![Flask](https://img.shields.io/badge/Flask-3.x-green) See [CHANGELOG.md](CHANGELOG.md) for release history and recent fixes. **Mirrors** (pick whichever you prefer — same code, same branch): - Codeberg: https://codeberg.org/listyantidewi/your-everyday-tools - Bitbucket: https://bitbucket.org/your-everyday-tools/your-every-tools --- ## Screenshots ![Home Page](images/image1.png) ![Tool Page](images/image2.png) ![Tool Page](images/image3.png) ![Tool Page](images/image4.png) --- ## Features ### Document Conversion | Tool | Description | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Files to PDF** | Convert images (JPG, PNG, BMP, TIFF, WebP), Word documents (.docx, .doc, .odt), and text files to PDF. Word files prefer LibreOffice for full-fidelity layout; lower-fidelity `.docx` fallback must be explicitly allowed. | | **PDF to Word** | Convert PDF documents to `.docx`. Five modes: **Exact visual copy** (non-editable page images, best appearance), **Layout** (editable, lossy), **Smart structure**, **Flowing text**, and **Marker** (optional ML structure engine). Page range supported on all modes. | | **PDF to Images** | Export each PDF page as PNG or JPG (configurable DPI) | | **PDF to Text** | Extract all text content from a PDF | | **PDF to Excel** | Extract tables from a PDF into an `.xlsx` workbook — one sheet per table, per page, or all combined. Uses optional `pdfplumber` first when available, with PyMuPDF as the built-in local fallback. | | **HTML to PDF** | Convert HTML content to a PDF document. Uses LibreOffice for full CSS / table / image support when available; lower-fidelity PyMuPDF fallback must be explicitly allowed. | | **Markdown to PDF** | Paste or upload Markdown (.md) and download a formatted PDF. Choose page size and base font size. Uses PyMuPDF's `Story` API for proper multi-page pagination. | | **Markdown to Word** | Convert Markdown to a `.docx` document with correct heading, list, quote, and code styles | | **PDF to PowerPoint** | Convert PDFs to `.pptx` using editable LibreOffice mode when available, or image-per-slide mode for non-editable visual preservation. Choose slide size, page range, and DPI in image mode. | | **PowerPoint to PDF** | Convert `.pptx` / `.ppt` / `.odp` presentations to PDF through the hardened LibreOffice wrapper (isolated profile, safer timeout, robust output detection). | | **OCR PDF** | Make scanned PDFs searchable (image + hidden text layer) or extract text — 14 languages supported | | **CAD to PDF/Image** | Convert DXF drawings to PDF or PNG (DWG via optional ODA File Converter) | ### Spreadsheet | Tool | Description | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Excel to CSV / JSON** | Export sheets from `.xlsx` / `.xls` to CSV or JSON (array-of-objects or array-of-arrays). Single sheet or all sheets as ZIP. | | **CSV / JSON to Excel** | Build an `.xlsx` workbook from one or more CSV or JSON files — one sheet per file, optional bold/shaded header row | | **Excel to PDF** | Convert workbooks to PDF with LibreOffice for high-fidelity print/layout preservation. The older ReportLab table renderer remains as an explicit basic fallback. | | **Merge Workbooks** | Combine multiple Excel files into a single workbook, optionally prefixing each sheet with its source filename | | **Split Sheets** | Export each sheet of a workbook as its own `.xlsx` (bundled as a ZIP if more than one) | | **Excel Info & Preview** | List sheet names, row/column counts, and preview the first N rows of every sheet | | **CSV Toolkit** | Filter, sort, and de-duplicate CSV rows. Auto-detects delimiter. Filter operators: `=`, `!=`, `contains`, `startswith`, `endswith`, `>`, `>=`, `<`, `<=`, `empty`, `notempty`. Full-row or by-column dedupe. | ### PDF Tools | Tool | Description | | ------------------ | ------------------------------------------------------------------------------------------------------- | | **Merge PDFs** | Combine multiple PDF files into one document | | **Split PDF** | Split a PDF into individual pages or custom page ranges | | **Compress PDF** | Reduce PDF file size (low / medium / high compression) | | **Rotate PDF** | Rotate all or specific pages (90, 180, 270 degrees) | | **Resize PDF** | Scale pages by percentage or fit to standard paper sizes (A3–A5, Letter, Legal) | | **Page Numbers** | Add page numbers with configurable position, font size, and start number | | **Extract Images** | Extract all embedded images from a PDF | | **Protect PDF** | Encrypt a PDF with user and owner passwords (AES-256) | | **Unlock PDF** | Remove password protection from a PDF | | **Sign PDF** | Stamp a signature image (PNG/JPG) onto selected pages with position, width, margin, and opacity control | | **Redact PDF** | Permanently black-out sensitive text by literal match or regex (emails, card numbers, IDs, etc.). Underlying text is removed from the content stream so it can't be recovered with copy-paste. | | **Fill PDF Form** | Upload a PDF that has AcroForm fields (tax forms, contracts, gov applications), fill text/checkbox/radio/dropdown fields in your browser, and download the filled PDF. Two-step flow: detect fields → fill → download. | ### Image Tools | Tool | Description | | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | **Resize Image** | Resize by percentage or exact pixel dimensions (with aspect ratio lock) | | **Compress Image** | Reduce file size with Auto, Photo/JPEG, Lossless PNG, and WebP modes. Applies EXIF orientation and preserves transparency/profile data where possible. | | **Convert Format** | Convert between PNG, JPG, WebP, BMP, and TIFF | | **Remove Background** | Automatically remove image backgrounds using AI | | **Crop Image** | Crop by aspect ratio (1:1, 4:3, 16:9, etc.) or custom coordinates | | **Rotate / Flip** | Rotate 90/180/270 degrees, flip horizontal or vertical | | **Add Watermark** | Add text watermark with configurable position, opacity, size, and tiled mode | | **EXIF Viewer** | View or strip image metadata (EXIF data) for privacy | | **Favicon Generator** | Create .ico favicons from any image with multiple size options | | **Image to Text (OCR)** | Extract text from images using optical character recognition | | **Animated WebP/GIF** | Convert between animated GIF and animated WebP (preserves per-frame timing) | | **Color Palette** | Extract a dominant color palette (2–16 colors) from an image via quantization or grid sampling. Includes swatch preview with hex codes. | | **SVG to PNG** | Rasterize SVG vectors to PNG in the browser first for better SVG fidelity, with the existing local server renderer as fallback. | | **SVG Optimizer** | Strip comments, editor metadata (Inkscape/Sketch/Adobe namespaces), and round decimals to shrink SVG files | | **HEIC Converter** | Convert iPhone `.heic` / `.heif` photos to JPG, PNG, or WebP (single or bulk → ZIP). Once installed, all other image tools also accept HEIC inputs. | | **Merge Images** | Combine multiple images into one — balanced grid by default, plus horizontal or vertical layouts. Images are scaled (aspect ratio preserved) so rows line up flush with no gaps. Output size is bounded by a configurable max width so merging large photos stays fast. Supports spacing, background color, and PNG/JPG/WebP output. Images merge in upload order. | ### Text & Data (client-side, no upload needed) | Tool | Description | | -------------------- | ---------------------------------------------------------------------------------- | | **JSON Formatter** | Format, validate, and minify JSON | | **CSV / JSON** | Convert between CSV and JSON in both directions | | **Base64** | Encode and decode Base64 strings | | **URL Encode** | Encode and decode URL components | | **Word Counter** | Count words, characters, sentences, paragraphs, and estimate reading time | | **Markdown Preview** | Live Markdown-to-HTML preview | | **Case Converter** | Convert between UPPER, lower, Title, camelCase, snake_case, kebab-case, PascalCase | | **Text Diff** | Compare two texts side by side with highlighted additions and deletions | | **Regex Tester** | Test regular expressions with live match highlighting and group extraction | | **Slug Generator** | Create URL-friendly slugs from any text | | **JSON / YAML** | Convert between JSON and YAML formats | | **Lorem Ipsum** | Generate placeholder text by paragraphs, sentences, or words | | **Line Tools** | Sort A→Z / Z→A / numerically, dedupe (keep order or alphabetic), shuffle, reverse, trim, drop empty, number lines, count words/chars | | **Extract Patterns** | Pull emails, URLs, phone numbers, IPv4/IPv6 addresses, hashtags, @mentions, or numbers out of any text — with dedupe and sorting | ### Calculators (client-side) | Tool | Description | | ------------------------- | ------------------------------------------------------------------------------- | | **Calculator** | Basic + scientific calculator with keyboard support | | **Unit Converter** | Length, weight, temperature, area, volume, speed, data, and time | | **Color Converter** | Convert between HEX, RGB, and HSL with live preview and color picker | | **Percentage Calc** | Four common percentage calculations in one page | | **Date Calculator** | Date difference, add/subtract days, day-of-week lookup | | **Timestamp Converter** | Convert between Unix timestamps and human-readable dates (local, UTC, ISO 8601) | | **Number Base Converter** | Convert between decimal, binary, octal, and hexadecimal | | **Pomodoro Timer** | Focus timer with configurable work/break intervals and session tracking | ### QR & Barcodes | Tool | Description | | -------------------- | ------------------------------------------------------------------------------------------------- | | **Generate QR** | Create QR codes from text/URLs with custom size, border, and color | | **Read QR** | Decode QR codes from uploaded images | | **Generate Barcode** | Create 1D barcodes — Code128, Code39, EAN-13/8, UPC-A, ISBN-10/13, ISSN, JAN, PZN — as PNG or SVG | | **WiFi QR Code** | Generate a scan-to-join WiFi QR (WPA / WEP / open). Special characters in SSID/password are properly escaped. Print and stick on a wall. | ### Security | Tool | Description | | ---------------------- | --------------------------------------------------------------------------------------------------------------- | | **Password Generator** | Generate strong random passwords with configurable length, character types, and entropy display | | **Hash Generator** | Generate MD5, SHA-1, SHA-256, and SHA-512 hashes from text | | **File Hash** | Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file (streamed, no size cap beyond upload limit) | | **Encrypt File** | AES-256-CBC encrypt any file with a passphrase. PBKDF2-HMAC-SHA256 (600,000 iterations) for key derivation. Output is byte-identical to `openssl enc -aes-256-cbc -pbkdf2 -iter 600000`. | | **Decrypt File** | Decrypt files produced by Encrypt File or by the matching `openssl` command. Wrong passphrase returns a clean error rather than corrupted output. | ### Developer Utilities | Tool | Description | | --------------------- | ---------------------------------------------------------------------------------------------------------------------- | | **UUID Generator** | Generate v4 UUIDs — single or bulk (up to 1000), with uppercase, brace, and no-dash formatting | | **JWT Decoder** | Decode JSON Web Tokens client-side to inspect header, payload, and claims (decode only — does not verify signatures) | | **User-Agent Parser** | Parse browser, OS, device, and engine from any User-Agent string | | **SQL Formatter** | Pretty-print SQL with configurable keyword casing (UPPER / lower / Capitalize) and indentation — powered by `sqlparse` | | **XML Formatter** | Format, validate, and minify XML using the browser's native DOMParser | | **HTML Formatter** | Beautify or minify HTML source (void tags, inline tags, and `