Help & Documentation

How to use every tool in DevsToolHub, one by one — 52 tools across 13 categories.

Editors

1 tool

JSON Editor

Open tool

A dual-panel JSON workspace for formatting, repairing, querying, and validating JSON — with four ways to view your data and a built-in compare mode.

  1. 1Paste or type JSON into the left panel (or click Load to open a .json/.txt file).
  2. 2Switch between Code, Tree, Table, and Graph view modes using the tabs at the top of each panel.
  3. 3Use the toolbar buttons to Format, Smart-format, Compact, Repair malformed JSON, Sort keys, or Validate.
  4. 4Click "Query Left" or "Query Right" to open the JMESPath query bar, or switch it to JSON Schema mode to validate against a schema.
  5. 5Enable Compare (in the center strip) to diff the left and right panels — navigate between differences with the up/down arrows and copy values across with the left/right arrows.
  6. 6Click Share URL to copy a link that encodes both panels' contents, or open History to reload a recently formatted/validated JSON.

Keyboard shortcuts: ⌘/Ctrl+Shift+F formats both panels, ⌘/Ctrl+Shift+M compacts both, and ⌘/Ctrl+Shift+D toggles compare mode. The center strip doubles as a drag handle to resize the two panels.

Diff Tools

5 tools

JSON Diff

Open tool

Compares two JSON documents field by field and shows exactly what was added, removed, or changed, including inside nested objects and arrays.

  1. 1Paste or type your original JSON into the left textarea, or click Open to upload a .json/.txt file.
  2. 2Paste or upload the changed JSON into the right textarea.
  3. 3Click "Compare JSON" to run the comparison.
  4. 4Review the summary bar for a quick count of added, removed, and changed fields.
  5. 5Expand or collapse nodes in the diff tree to drill into nested changes — changed values show old → new inline.

If you need a side-by-side editable view instead of a read-only diff tree, use the JSON Editor's built-in Compare mode — it lets you edit both sides and copy values across while diffing.

Text Diff

Open tool

Line-by-line and inline diff viewer for plain text or source code, with syntax highlighting for common languages.

  1. 1Paste or type the original text into the "Original Text" panel, or click "Open file" to load one.
  2. 2Paste or type the updated text into the "Changed Text" panel.
  3. 3Pick a language from the row of buttons (Auto, JS, TS, Python, JSON, XML, YAML, CSS, HTML, SQL, Text) for syntax highlighting — it auto-detects from the file extension when you open a file.
  4. 4Click "Find Difference" to render the diff.

The diff viewer supports ignoring whitespace/case, collapsing unchanged context, and exporting the result as a .patch file — look for those controls inside the diff view itself.

Image Diff

Open tool

Visually compares two images side by side, as a blended overlay, or as a pixel-level difference highlight — useful for catching UI regressions or asset changes.

  1. 1Choose a view mode: Side by Side, Overlay, or Diff Highlight.
  2. 2Drop or click to upload Image 1 (original) and Image 2 (changed) into their respective drop zones.
  3. 3In Overlay mode, drag the opacity slider to blend between the two images.
  4. 4In Diff Highlight mode, wait for the comparison to render — differing pixels are shown in red on a dimmed background, with a percentage of changed pixels reported above.

If the two images are different sizes, Diff Highlight compares only the overlapping region and shows a warning — crop or resize to matching dimensions first for a fully accurate comparison.

Excel Diff

Open tool

Compares two spreadsheets (.xlsx, .xls, or .csv) sheet by sheet and cell by cell, highlighting added, removed, and changed rows.

  1. 1Upload or drag File 1 (Original) and File 2 (Changed) into the two drop zones.
  2. 2Pick a sheet to compare — sheets present in both files are shown as buttons; sheets unique to one file are labeled "(old only)" or "(new only)" and cannot be compared.
  3. 3Click Compare to generate the diff table, with Old/New columns for every field.
  4. 4Toggle "Changes only" to hide unchanged rows and focus on what differs.
  5. 5Click Export to download the diff as a new .xlsx workbook.

Rows are matched by position, not by a key column — if rows were inserted or deleted in the middle of the sheet, everything after that point will show as changed. Sort both files by a stable key column before comparing for the cleanest results.

Document Diff

Open tool

Extracts text from Word documents or plain text files and runs a line-level diff, so you can review edits between two versions of a document.

  1. 1Upload Document 1 (Original) — supports .docx, .txt, .md, and .rtf.
  2. 2Upload Document 2 (Changed) with the same file types.
  3. 3Review or edit the extracted text directly in the "Extracted text" boxes if you need to clean up the auto-extracted content.
  4. 4Click "Find Difference" to view the line-by-line diff.

PDF text extraction is not supported in-browser — for PDFs, copy the text out and paste it directly into the "Extracted text" box instead of uploading the file.

Converters

3 tools

Converter

Open tool

Converts data between JSON, YAML, XML, CSV, and TOML formats — pick a source and target format and convert in one click.

  1. 1Select the source format from the "From" row (JSON, YAML, XML, CSV, or TOML) — the input panel loads a matching sample.
  2. 2Select the target format from the "To" row; unsupported combinations are grayed out.
  3. 3Paste your own data into the input panel, replacing the sample, or click Sample to reset it.
  4. 4Click Convert (or press ⌘/Ctrl+Enter) to generate the output.
  5. 5Click Copy or Save to grab the converted output, or Swap to flip input/output and continue converting in the other direction.

Not every format pair converts directly — check the "Supported" row at the bottom of the page for the full list of valid conversions (e.g. CSV ↔ XML is supported, but some combinations route through JSON internally).

Type Generator

Open tool

Generates strongly-typed model definitions — interfaces, structs, classes, or schemas — in ten languages directly from a JSON sample.

  1. 1Paste your JSON into the input panel, or click Sample to load an example.
  2. 2Choose an output language: TypeScript, Go, Python, Rust, Java, Kotlin, C#, Swift, Zod Schema, or JSON Schema.
  3. 3Set the "Root name" for the generated top-level type (letters, numbers, and underscores only).
  4. 4Click "Generate" to produce the output.
  5. 5Click Copy or Save to export the generated code.

Each language produces idiomatic output for that ecosystem — e.g. Go gets json struct tags, Java gets Jackson @JsonProperty annotations, Kotlin gets Gson @SerializedName, and Zod gives you both a runtime schema and an inferred TypeScript type in one file.

Transforms

Open tool

One-click code transforms for common frontend chores: HTML to JSX, SVG to a React component, CSS to a JS style object, and Markdown to HTML.

  1. 1Pick a transform from the toolbar: HTML → JSX, SVG → JSX, CSS → JS, or Markdown → HTML.
  2. 2Edit the input panel or click Sample to load a starter example for that transform.
  3. 3Click Transform (or press ⌘/Ctrl+Enter) to run the conversion.
  4. 4Click Copy to grab the output.

SVG → JSX wraps the output in a full React functional component with a `props` spread, ready to drop into a component file — not just an attribute-converted SVG string. HTML → JSX also converts inline style="" attributes into JSX style={{ }} objects automatically.

Document Converter

2 tools

DOCX to PDF

Open tool

Converts Word .docx files into text-searchable PDFs entirely in your browser — no upload, no account, no server round-trip.

  1. 1Drag one or more .docx files onto the drop zone, or click it to browse (max 50 MB per file, multiple files supported).
  2. 2Watch the per-file progress indicator as each file is parsed and rendered.
  3. 3Once converted, click Preview to view the PDF in a modal, or Download to save it.
  4. 4If a file produced warnings (e.g. dropped images or tables), they appear beneath that file's entry.
  5. 5Use "Download all" to save every converted file at once, or Clear all to reset.

This tool re-renders text into a fresh PDF layout rather than preserving the original page design — complex layouts, embedded images, tables, and custom fonts may not carry over exactly. Check the yellow warnings under each converted file for what was dropped.

Image Converter

Open tool

Batch-converts images between PNG, JPG, and WebP formats in the browser, with adjustable quality for lossy formats.

  1. 1Choose the output format: PNG, JPG, or WebP.
  2. 2If converting to JPG or WebP, drag the Quality slider to set the compression level.
  3. 3Drop or select one or more images (JPG, PNG, WebP, GIF, BMP, SVG, ICO are all accepted as input).
  4. 4Click "Convert All" to process every pending file, or click "Convert" on an individual file.
  5. 5Click Save on a finished item to download it, or "Download All" to save every converted file at once.

Converting to JPG flattens transparency onto a white background since JPG has no alpha channel — use PNG or WebP output if you need to preserve transparent pixels.

API Tooling

1 tool

API Tester

Open tool

A lightweight HTTP client for testing API endpoints directly from the browser — set headers, query params, and a request body, then inspect the response.

  1. 1Choose an HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) and enter the request URL.
  2. 2Use the Params, Headers, and Body tabs to configure the request — each key/value row has a checkbox to enable/disable it without deleting it.
  3. 3Click Send (or press Enter in the URL bar) to fire the request.
  4. 4Review the response status, timing, and size in the status bar, and expand "Response Headers" to inspect them.
  5. 5JSON responses are automatically pretty-printed; click Copy to grab the response body.
  6. 6Open History to revisit and re-run a recent request.

Requests run directly from your browser, so they're subject to CORS — if a request fails with "Failed to fetch," the target server likely needs to allow cross-origin requests, not that the endpoint is down. Click Cancel (in place of Send) to abort an in-flight request.

Intelligence

1 tool

Why Layer

Open tool

Lets you annotate specific lines of code with the business or technical reasoning behind them — the "why," not the "what" — so context survives past the original author.

  1. 1Click any line in the Monaco code editor to select it, then click "Add Why" in the right panel.
  2. 2Pick an annotation type — Business Rule, Bug Workaround, Performance, Security, Architecture, or Tech Debt.
  3. 3Write the explanation in the "why" textarea (business context, constraints, incident references, etc.) and optionally set your name as author, then click "Save Why" (or press ⌘/Ctrl+Enter).
  4. 4Annotated lines get a colored highlight in the editor and an entry in the right-hand list; click any entry to jump the editor to that line.
  5. 5Use the filter bar to show only annotations of a given type, or use the pencil/trash icons on hover to edit or delete an entry.
  6. 6Click "Export .why.json" to save the annotated project as a file, "Import" to reload one, or "Share URL" to copy a link with the whole project encoded in it.

Everything is saved automatically to your browser's local storage as you type, so you won't lose annotations on refresh — but it's local to that browser. Use Export or Share URL if you need to hand the annotated project to someone else or back it up.

Encoding & Text

12 tools

Base64 Encoder / Decoder

Open tool

Converts text to and from Base64 — useful for embedding data in JSON or URLs, or decoding Base64 payloads you find in API responses, JWTs, or Basic Auth headers.

  1. 1Select the Encode or Decode tab.
  2. 2Type or paste text into the input box — or drag a file onto it to load its contents.
  3. 3Read the converted result in the output row underneath.
  4. 4Click the copy icon next to the output to copy it.
  5. 5Click the link icon to copy a shareable URL that reopens this tool with your input pre-filled.

Invalid input (for example, decoding text that isn’t valid Base64) shows "Invalid input" in the output instead of throwing an error — so a garbled result usually just means you’re on the wrong tab.

URL Encoder / Decoder

Open tool

Percent-encodes or decodes text so it’s safe to use inside a URL — handy for building query strings by hand or making sense of an encoded parameter copied from a browser address bar.

  1. 1Choose the Encode or Decode tab.
  2. 2Paste or type your text or URL into the input box.
  3. 3Read the converted result underneath.
  4. 4Copy it using the copy icon on the output row.

This uses encodeURIComponent/decodeURIComponent, so it escapes everything including `&`, `?`, and `/` — pair it with the Regex Tester if you need to encode only specific parts of a longer URL rather than the whole string.

Regex Tester

Open tool

Tests a regular expression against sample text with live match highlighting, capture-group inspection, and find-and-replace preview — for building and debugging a pattern before dropping it into code.

  1. 1Enter your pattern in the Pattern field.
  2. 2Toggle the flag buttons (g, i, m, s, u) to enable global, case-insensitive, multiline, dotall, or unicode matching.
  3. 3Paste your test string into the text box below.
  4. 4Review the highlighted matches, the match count, and any capture groups from the first match.
  5. 5Enter a replacement string (use $1, $2, … for capture groups) to preview a find-and-replace result.

Matching is capped at 100ms — if your pattern is catastrophically backtracking against the given text, the tool reports "Timed out — pattern too slow" instead of freezing the tab.

Color Picker & Converter

Open tool

Pick or type a color and instantly see it as HEX, RGB, HSL, and OKLCH, along with generated tints/shades and WCAG contrast ratios against black and white — for choosing accessible color palettes.

  1. 1Use the color swatch picker or type a hex value directly into the field.
  2. 2Copy any format (HEX, RGB, HSL, OKLCH) by clicking its row.
  3. 3Browse the row of tints and shades generated from your color and click one to make it the active color.
  4. 4Check the WCAG Contrast section for the contrast ratio and pass/fail level (AA, AA large, AAA, or Fail) against both black and white text.
  5. 5Click the link icon to copy a shareable URL with the color pre-filled.

The WCAG levels shown are the standard body-text thresholds (4.5:1 for AA, 7:1 for AAA, 3:1 for "AA large") — use them to sanity-check text-on-background color pairs before shipping.

Markdown Preview

Open tool

Renders Markdown to HTML side by side as you type, so you can preview README files, PR descriptions, or documentation before pasting them somewhere else.

  1. 1Type or paste Markdown into the left-hand editor panel.
  2. 2Watch the rendered HTML preview update live in the right-hand panel.
  3. 3Use standard Markdown syntax — headings, bold/italic, lists, code fences, blockquotes — all render as expected.

Rendered output is sanitized with DOMPurify before being displayed, so raw HTML or script tags pasted into the Markdown won’t execute — useful when previewing Markdown from an untrusted source.

Number Base Converter

Open tool

Converts a number between binary, octal, decimal, and hexadecimal — for translating values between representations while reading low-level code, bit flags, or color codes.

  1. 1Enter a number into the input field.
  2. 2Select the base your input number is written in (Binary, Octal, Decimal, or Hex).
  3. 3Read the converted values in all four bases below.
  4. 4Copy any result using the copy icon on its row.

If your input has digits invalid for the selected base (e.g. a "9" while Binary is selected), the tool reports "Invalid number for base …" instead of silently truncating it.

Text Case Converter

Open tool

Converts a string into camelCase, PascalCase, snake_case, kebab-case, UPPER_CASE, and Title Case all at once — for renaming variables, keys, or file names to match a target convention.

  1. 1Type or paste your text into the input field.
  2. 2Read all six case conversions generated below it.
  3. 3Copy any individual result using the copy icon on its row.

The conversions split words on whitespace, so input that’s already camelCase or PascalCase (no spaces) won’t be re-split into words — feed it space-separated words for accurate results.

HTML Entity Encoder / Decoder

Open tool

Escapes special characters into HTML entities, or decodes existing HTML entities back into readable text — for safely embedding user-generated content in HTML or reading entity-escaped markup.

  1. 1Select the Encode or Decode tab — switching tabs also swaps in a relevant sample.
  2. 2Type or paste your HTML or entity-encoded text into the input box.
  3. 3Read the converted result in the output panel below.
  4. 4Copy it using the copy icon.

Encode mode escapes `&`, `<`, `>`, `"`, `'`, and `/` — including the forward slash — which is more aggressive than some libraries; it’s meant for content going inside HTML attributes as well as tags.

CSV Viewer

Open tool

Parses CSV text into a proper table view, handling quoted fields with embedded commas, so you can sanity-check a CSV’s structure without opening a spreadsheet app.

  1. 1Paste CSV text into the Edit tab, or drag and drop a .csv file directly onto it.
  2. 2Switch to the Table tab to see it rendered as headers and rows.
  3. 3Check the row/column count shown below the table.
  4. 4Switch back to Edit to make changes and re-check the table.

The parser respects quoted fields, so a comma inside `"like, this"` won’t split into two columns — but it doesn’t handle escaped double-quotes (`""`) within a quoted field, worth knowing for CSV exported from Excel.

Text Tools

Open tool

Runs quick transformations on a block of text — word/character/line stats, duplicate-line removal, alphabetical sorting, and full-string reversal — for cleaning up lists or checking text size.

  1. 1Paste or drag and drop your text into the input box.
  2. 2Choose an operation: Stats, Dedup Lines, Sort Lines, or Reverse.
  3. 3For Stats, read the word, character, and line counts shown as tiles.
  4. 4For the other operations, read the transformed output and copy it with the copy icon.

"Reverse" reverses the entire string character by character (including line breaks), not the line order — use "Sort Lines" if you want to reorder lines instead.

ENV ↔ JSON Converter

Open tool

Converts between .env file syntax and JSON — for turning environment variable files into config objects (or back), while preserving quoted values and skipping comments.

  1. 1Choose the "env→json" or "json→env" tab — switching tabs loads a relevant sample.
  2. 2Paste your .env content or JSON object into the input box.
  3. 3Click "Convert".
  4. 4Copy the result using the copy icon on the output panel.

Lines starting with `#` and blank lines are treated as comments and skipped when converting env→json — but json→env doesn’t re-add any comments, so round-tripping loses them.

Lorem Ipsum Generator

Open tool

Generate placeholder text by paragraphs, sentences, or words — for mocking up layouts before real copy is ready.

  1. 1Choose a unit (Paragraphs, Sentences, or Words) and a count.
  2. 2Toggle "Start with 'Lorem ipsum dolor sit amet...'" for the classic opening, or leave it off for fully random text.
  3. 3When generating paragraphs, optionally wrap each one in <p> tags for direct HTML use.
  4. 4Click Regenerate for a fresh random pass without changing your settings.

Generators

4 tools

UUID Generator

Open tool

Generates cryptographically random UUIDs (v4) for use as unique identifiers in test data, database seeds, or API request examples.

  1. 1Click "Generate 5 UUIDs" to produce a batch of five.
  2. 2Or click "Single" to generate just one.
  3. 3Copy any individual UUID using the copy icon on its row.
  4. 4Click either button again to generate a fresh batch — the previous results are replaced.

Despite the "UUID / ULID Generator" heading on the card, this only produces standard UUIDv4 values via crypto.randomUUID() — there’s no ULID output.

QR Code Generator

Open tool

Generates a scannable QR code from any URL or text and lets you download it as a PNG — for sharing links, Wi-Fi credentials, or short text via a phone camera.

  1. 1Type or paste the URL or text you want encoded into the input field.
  2. 2Watch the QR code render automatically as you type.
  3. 3Click "Download PNG" to save the code as an image file.

There’s no size or error-correction control — the code always renders at a fixed 160px width with a small margin, so for print use you may want to regenerate at a larger size elsewhere once you’ve confirmed the content is correct.

Password Generator

Open tool

Generates random passwords with configurable length and character sets, producing five candidates at once so you can pick one that’s easy enough to read or type if needed.

  1. 1Drag the Length slider to set password length (8–64 characters).
  2. 2Toggle Uppercase, Lowercase, Numbers, and Symbols checkboxes to control which character sets are used.
  3. 3Click "Generate" to produce five candidate passwords.
  4. 4Copy any password using the copy icon on its row.

Passwords are generated using crypto.getRandomValues, the Web Crypto API’s cryptographically secure random source — not Math.random() — so they’re safe to actually use, not just for display.

Fake Data Generator

Open tool

Define a set of fields (name, email, UUID, integer ranges, dates, and more) and generate realistic mock rows as JSON or CSV — for seeding a database or a UI mockup.

  1. 1Each row defines a field name and a type (Full Name, Email, Phone, UUID, Boolean, Integer, Date, and more).
  2. 2Click "Add field" to add more columns; the trash icon removes one.
  3. 3Integer and Date fields show extra min/max or year-range controls.
  4. 4Set the row count and output format (JSON array or CSV), then click Generate.
  5. 5Click Regenerate to get a new random dataset using the same field definitions.

Pair this with JSON Schema Tools or Type Generator: generate a batch of sample data here, then infer a schema or type definition from it.

Security & Crypto

6 tools

JWT Decoder & Signer

Open tool

Decodes a JWT’s header and payload entirely client-side, and can also sign a new HMAC-based token from a JSON payload and secret — useful for inspecting tokens or generating test tokens during local development.

  1. 1On the Decode tab, paste a JWT into the input field.
  2. 2Review the decoded Header and Payload panels; an expiry banner appears above them if the payload has an `exp` claim, flagged as valid or expired.
  3. 3Use the copy icon on either panel to copy the decoded JSON.
  4. 4Switch to the Encode tab to build a token instead: choose HS256, HS384, or HS512, enter a secret key, and edit the JSON payload.
  5. 5Click "Sign JWT" to generate the signed token, then copy it from the output panel.

Only HMAC algorithms (HS256/384/512) are supported for signing — there’s no RS256/ES256 since that needs an asymmetric key pair rather than a shared secret. Decoding, however, works on any JWT regardless of algorithm, since it only base64url-decodes the header and payload without verifying the signature.

Hash Generator

Open tool

Computes SHA-1, SHA-256, SHA-384, and SHA-512 digests of any text input all at once — for checksums, verifying data integrity, or generating quick fixtures for tests.

  1. 1Type or paste the text you want to hash into the input field.
  2. 2Click "Hash".
  3. 3Read the four resulting hex digests (SHA-1, SHA-256, SHA-384, SHA-512).
  4. 4Copy any individual hash using the copy icon on its row.

There’s no MD5 option — the browser’s native Web Crypto API doesn’t implement MD5, only SHA-1/256/384/512, so it’s intentionally left out rather than shipped as a separate JS implementation.

Bcrypt Hash

Open tool

Hash passwords with bcrypt and verify a plaintext password against an existing hash — the same algorithm most backends use for stored credentials.

  1. 1Switch to the Hash tab to create a new hash, or Verify to check one.
  2. 2On Hash: type the plaintext, set the cost factor (4–14) with the slider, and click Hash.
  3. 3Higher cost is slower to compute but more resistant to brute-forcing — 10–12 is a common default.
  4. 4On Verify: enter the plaintext and the existing hash (starting with $2a$, $2b$, or $2y$), then click Verify.
  5. 5A green "Match" or red "No match" result tells you immediately whether they correspond.

Everything runs in your browser via the bcryptjs library — no plaintext or hash ever leaves your machine, which makes this safe to use with real credentials during debugging.

TOTP / 2FA Generator

Open tool

Generate live 6-digit TOTP codes (the codes authenticator apps produce) from a secret, with a QR code you can scan — useful for testing 2FA flows without your phone.

  1. 1A random Base32 secret is generated automatically when you open the tool.
  2. 2The current 6-digit code refreshes every 30 seconds; the progress bar shows time remaining.
  3. 3Scan the QR code with an authenticator app (Google Authenticator, Authy, 1Password) to follow along on your phone.
  4. 4Paste your own Base32 secret and click Use to generate codes for an existing account instead.
  5. 5Click New Secret to start over with a fresh random secret.

The generated otpauth:// URI (shown under the code) is exactly what a real 2FA setup screen embeds in its QR code — copy it if you need to test an app that accepts a raw URI instead of scanning.

RSA & HMAC

Open tool

Generate RSA-2048 key pairs in PEM format, and compute or verify HMAC message signatures with SHA-256/384/512.

  1. 1On the RSA Keys tab, click "Generate 2048-bit key pair" to create a fresh public/private PEM pair.
  2. 2Copy either key with the copy button in the corner of its box.
  3. 3On the HMAC tab, enter a message and a secret key, pick the hash algorithm, and click Generate.
  4. 4To verify a signature someone else produced, paste it into "Paste hex signature to verify" and click Verify.

Key generation and signing use the browser's native Web Crypto API, so a 2048-bit key pair generates in under a second and never touches a server.

AES Encrypt / Decrypt

Open tool

Encrypt or decrypt text with AES-256-GCM using a passphrase — a quick way to share a secret over an otherwise insecure channel.

  1. 1On Encrypt: type your plaintext and a passphrase, then click Encrypt.
  2. 2Copy the resulting base64 string — it safely bundles the salt, IV, and ciphertext together.
  3. 3On Decrypt: paste that base64 string and the same passphrase, then click Decrypt.
  4. 4A wrong passphrase or tampered ciphertext fails cleanly with an error rather than silently returning garbage.

The key is derived from your passphrase via PBKDF2 with 100,000 iterations, so short passphrases are still meaningfully slower to brute-force than a raw AES key guess — but a long, unique passphrase is still what actually keeps this secure.

Network & Web

4 tools

GraphQL Formatter

Open tool

Formats a GraphQL query or mutation onto readable, indented lines, or minifies it into a compact single line — for cleaning up queries before sharing them or shrinking them before sending over the wire.

  1. 1Paste your GraphQL query into the input box.
  2. 2Choose Format or Minify mode.
  3. 3Click the run button ("Format" or "Minify") to process it.
  4. 4Copy the result using the copy icon on the output panel.

This is a brace-based reformatter, not a schema-aware GraphQL parser — it won’t catch invalid GraphQL syntax, it just reflows whitespace around `{`, `}`, and line breaks (and strips `#` comments when minifying).

HTTP Status Codes

Open tool

A searchable reference of HTTP status codes with plain-language explanations — faster than searching for "what does 429 mean" every time.

  1. 1Type a code (e.g. "404") or a keyword (e.g. "rate limit") into the search box.
  2. 2Results are grouped and color-coded by category: Informational, Success, Redirection, Client Error, Server Error.
  3. 3Click any row to copy "CODE Phrase" to your clipboard.

Searching by concept works too — try "auth" or "cache" to jump straight to the relevant codes instead of remembering the number.

User-Agent Parser

Open tool

Parse a User-Agent string into browser, OS, device type, and rendering engine — useful when triaging a bug report that includes a raw UA string.

  1. 1The field is pre-filled with your own browser's User-Agent.
  2. 2Paste a different UA string (from a bug report or server log) to parse it instead.
  3. 3Click "My Browser" any time to reset it back to your own.
  4. 4Browser, OS, Device (Desktop/Mobile/Tablet), and Engine are shown as separate rows.

UA parsing is inherently best-effort — iPadOS 13+ often reports itself as "Macintosh," which no UA-string-only parser can distinguish from a real Mac.

cURL → Code

Open tool

Paste a curl command and get the equivalent JavaScript fetch, Axios, or Python requests code — handy when converting a command from API docs into your app.

  1. 1Paste a full curl command, including -X, -H, and -d flags, into the text area.
  2. 2The parsed method, URL, header count, and whether it has a body are shown just below.
  3. 3Switch between the fetch, Axios, and Python tabs to see the equivalent code in each.
  4. 4Copy the generated snippet with the copy button.

Pair this with the API Tester: build and confirm a request there, use its "Copy as curl" (if present) or your own curl command, then convert it here to drop straight into your codebase.

Web & SEO

4 tools

Meta & OG Tags

Open tool

Fill in a page title, description, and image, and get ready-to-paste meta, Open Graph, and Twitter Card tags — plus a live preview of the resulting social share card.

  1. 1Fill in page title, meta description, canonical URL, social image URL, site name, and (optionally) a Twitter handle.
  2. 2Watch the preview card update live to see roughly how the link will look when shared.
  3. 3Copy the generated HTML block and paste it into your page's <head>.

Set the theme color too — it's a small detail, but it controls the browser chrome color on mobile when someone visits your site.

Favicon Generator

Open tool

Upload one image and generate a full favicon set — 16, 32, 48, 180 (Apple touch icon), 192, and 512px — entirely in your browser.

  1. 1Click the upload area and choose a source image (a square PNG or JPG works best).
  2. 2Click "Generate Favicons" to render every size.
  3. 3Download each size individually with its Save link.
  4. 4Copy the generated <link> tags and paste them into your page's <head>, matching the filenames you saved.

Nothing is uploaded anywhere — the resizing happens on an in-memory canvas, so this works offline once the page is loaded.

.gitignore Generator

Open tool

Pick the stacks your project uses and get a single, deduplicated .gitignore file — no more hunting for the right template.

  1. 1Click each stack that applies to your project (Node, Python, React, VSCode, macOS, and more are all selectable at once).
  2. 2The output updates live, with duplicate lines removed and a comment header per included stack.
  3. 3Copy the result, or click Download to save it directly as .gitignore.

It's fine to select both an OS (macOS/Windows/Linux) and an editor (VSCode/IntelliJ) alongside your language stack — that's the normal, recommended combination.

Robots & Sitemap

Open tool

Build a robots.txt with Allow/Disallow rules, or generate a valid sitemap.xml from a plain list of URLs.

  1. 1On the robots.txt tab: set the User-agent per rule group, add Allow/Disallow path rules, and set your Sitemap URL.
  2. 2On the sitemap.xml tab: paste one URL per line — optionally add ", priority, changefreq" after each URL.
  3. 3Both tabs generate valid output live; copy it or click Download to save the file directly.

You can add multiple User-agent rule groups (e.g. one for "*" and a stricter one for a specific bot) with "Add rule group."

CSS & Design

3 tools

Gradient & Shadow Builder

Open tool

Build CSS linear/radial gradients and layered box-shadows visually, with a live preview, instead of hand-tuning values in your stylesheet.

  1. 1On the Gradient tab: choose Linear or Radial, adjust the angle (linear only), and set each color stop's color and position.
  2. 2Add up to 4 stops or remove down to 2 with the +/− controls.
  3. 3On the Box Shadow tab: adjust offset X/Y, blur, spread, color, and opacity; toggle inset; add up to 2 layered shadows.
  4. 4Copy the generated CSS declaration from either tab.

Stacking two shadow layers — a tight, dark one and a soft, light one — is how most modern "elevation" shadows are built; try it instead of a single heavy shadow.

Contrast Checker

Open tool

Check the WCAG contrast ratio between any two colors — not just against black or white — with a live text preview so you can actually see the result.

  1. 1Set the Foreground and Background colors with the color pickers or hex inputs.
  2. 2The contrast ratio and pass/fail badges for Normal AA, Normal AAA, Large AA, and Large AAA appear automatically.
  3. 3The preview panel renders real sample text in your chosen colors so you can judge legibility, not just the number.

Large text has a lower bar (3:1 for AA) than body text (4.5:1) — if a color pair fails for body copy, it may still be fine for a big heading.

CSS Unit & Clamp Calculator

Open tool

Convert between px, rem, and em, and generate a fluid-typography clamp() value that scales font-size smoothly between two viewport widths.

  1. 1In the converter: set your base font-size, then edit px, rem, or em — the other two update automatically.
  2. 2In the clamp generator: set min/max viewport width and min/max font size.
  3. 3Copy the generated font-size: clamp(...) declaration.

The generated value holds steady at the minimum size below your min viewport and at the maximum size above your max viewport — it only scales in between, so you don't need separate media queries for the extremes.

Data & Schema

6 tools

Unix Timestamp Converter

Open tool

Converts between Unix timestamps (seconds since epoch) and human-readable dates in both directions — useful for debugging API payloads, log entries, or database rows that store epoch time.

  1. 1Enter a Unix timestamp (in seconds) into the input field, or click "Now" to fill in the current time.
  2. 2Read the converted Local, UTC, and ISO 8601 representations below.
  3. 3Copy any of the three formats using its copy icon.
  4. 4Under "Date → Timestamp", pick a date and time with the date picker to convert it back into a Unix timestamp.
  5. 5Copy the resulting timestamp with the copy icon next to it.

The timestamp field expects seconds, not milliseconds — pasting a JavaScript `Date.now()` value (13 digits) will produce a date far in the future, since it gets multiplied by 1000 again internally.

Cron Expression Builder

Open tool

Builds and validates a five-field cron expression, translates it into plain English, and previews the next several run times — for scheduling jobs without mentally parsing cron syntax.

  1. 1Type a cron expression directly into the field, or pick one of the presets below (e.g. "Every 5 minutes", "Weekdays at 9am").
  2. 2Read the plain-English description generated above the field.
  3. 3Check the "Next runs" list to see the next 5 upcoming execution times based on your local clock.
  4. 4Copy the final expression using the copy icon on the bottom row.

Next-run times are simulated using your browser’s local clock, so they reflect your local timezone — not UTC, which is what most cron daemons on servers actually use.

SQL Formatter

Open tool

Reformats a SQL query onto multiple lines by keyword for readability, or minifies it into a single line — with keyword sets tuned per dialect (Generic, PostgreSQL, MySQL, SQLite).

  1. 1Paste your SQL query into the input box.
  2. 2Choose Format or Minify mode.
  3. 3Select a dialect (Generic, PostgreSQL, MySQL, or SQLite) to match the keyword set used.
  4. 4Click "Format SQL" or "Minify SQL" to run the transformation.
  5. 5Copy the result using the copy icon on the output panel.

This is a keyword-based line-breaker, not a full SQL parser — it won’t reindent nested subqueries or realign columns, so for deeply nested queries treat the output as a rough pass rather than a final format.

Chmod Calculator

Open tool

Builds a Unix file permission value visually — toggle read/write/execute per owner/group/other and get the matching octal (e.g. 755) and symbolic (e.g. rwxr-xr-x) notation plus a ready-to-run chmod command.

  1. 1Click the r/w/x cells in the grid to toggle permissions for Owner, Group, and Other.
  2. 2Read the resulting Octal and Symbolic notation in the boxes below the grid.
  3. 3Copy the generated `chmod <octal> filename` command with the copy icon.
  4. 4Or click one of the presets (644, 755, 600, 700, 777, 444) to jump straight to a common permission set.

Presets are labeled with their real-world use (e.g. "755" is labeled "Scripts", "600" is "Private") — a quick way to pick the right octal without doing the read/write/execute math yourself.

JSON Schema Tools

Open tool

Infer a JSON Schema (draft-07) from a sample JSON payload, or validate a JSON document against an existing schema.

  1. 1On Generate Schema: paste a representative sample JSON object or array and click Generate Schema.
  2. 2The inferred schema marks every key from your sample as required — trim the "required" array afterward if some fields are actually optional.
  3. 3On Validate: paste both a JSON Schema and a JSON document, then click Validate.
  4. 4Validation errors list the exact path and reason for each failure.

Validation is powered by Ajv, the same schema validator used by many production Node.js APIs — a passing result here means the same document would pass in a real backend.

OpenAPI Viewer

Open tool

Paste an OpenAPI/Swagger spec (JSON or YAML) and browse its endpoints, grouped by tag, with parameters, schemas, and one-click curl commands.

  1. 1Paste your spec into the text area — both JSON and YAML are accepted.
  2. 2Endpoints are grouped by tag, each shown with a color-coded method badge (GET, POST, PUT, DELETE, PATCH).
  3. 3Click any endpoint row to expand its parameters and request/response schema.
  4. 4Click "Copy as curl" on an expanded endpoint to get a ready-to-run curl command using the spec's server URL.

This is read-only exploration — to actually send a request, copy the curl command and paste it into the API Tester or your terminal.

Full Feature Walkthrough

A screen recording touching every tool documented above — captioned with the category and a real-life scenario for each one, e.g. decoding an auth token, scheduling a backup job, or checking color contrast before shipping a button.

No audio narration — on-screen captions explain what's happening and why you'd reach for that tool in practice.