File converters
Change formats without uploading anything — your files never leave your browser. Open the Files tab →
What it is. Converts a CSV spreadsheet (rows and columns) into a JSON array of objects, and back. The first CSV row becomes the field names.
When to use it. Feeding a spreadsheet export into a script or API; turning an API's JSON response into a spreadsheet you can open in Excel or Sheets.
How to use it. Drop a .csv or .json file on the drop zone, or paste the text into the box. Press CSV → JSON or JSON → CSV, then Copy or Download the result.
Gotchas. The first row must be the header row. Values containing commas must be wrapped in double quotes (the parser handles quoted fields, including quotes escaped as ""). For JSON → CSV, the input must be an array of objects with the same keys; missing values come out as empty strings.
Learn more: RFC 4180 — the CSV format · json.org — JSON, the data format
What it is. Converts JSON to YAML and back. YAML is the human-friendly format used by most config files.
When to use it. Editing CI configs, Kubernetes manifests, docker-compose files or any YAML config; turning an API response into something you can read and edit by hand.
How to use it. Paste JSON or YAML into the box, press JSON → YAML or YAML → JSON, then Copy.
Gotchas. YAML is whitespace-sensitive — indentation must be spaces, never tabs. Duplicate keys are an error. Very deeply nested structures convert fine but get hard to read; that is a property of YAML, not the tool.
Learn more: YAML 1.2 specification
What it is. Turns Markdown into HTML, with a live rendered preview underneath so you can see the result before you copy it.
When to use it. Writing READMEs, blog posts, documentation or emails that need HTML; checking how Markdown will render.
How to use it. Paste Markdown into the box, press Convert & preview. The HTML appears in the output box and the rendered version appears in the preview below it. Press Copy HTML to take the code.
Gotchas. The converter covers the common subset — headings, lists, bold, italic, code and links. It does not support tables, footnotes or embedded HTML, and it will not sanitise the output, so do not paste untrusted Markdown into a page that other people will view.
Learn more: CommonMark spec — the Markdown standard
What it is. Turns CSV rows into a Markdown table (| col | col | with a separator row), ready to paste into a README, GitHub issue or docs page.
When to use it. Sharing a small table of data in a Markdown document; turning a spreadsheet export into documentation.
How to use it. Paste CSV with a header row, press Convert, then Copy.
Gotchas. A | character inside a cell breaks the table — keep cell text free of pipes. Numbers are not aligned; Markdown tables are left-aligned by default.
Learn more: GitHub Flavored Markdown — tables
Image converter, resize & compress Open in DevKit →
What it is. Converts an image between PNG, JPEG and WebP, resizes it to a maximum width, and sets the output quality — then downloads the result.
When to use it. Shrinking a screenshot for a README, converting a PNG to WebP for a faster website, making a large photo email-friendly.
How to use it. Drop an image on the zone (or click to choose one), pick the output format, set a max width in pixels and a quality from 0 to 1, then press Convert & download.
Gotchas. JPEG has no transparency — transparent areas of a PNG become solid (usually white) when converted to JPEG. Quality only affects JPEG and WebP, not PNG. Resizing keeps the aspect ratio; the height is scaled to match.
Learn more: MDN — image file types and formats
What it is. Rewrites text in UPPER CASE, lower case, Title Case, snake_case or kebab-case.
When to use it. Renaming variables and identifiers, normalising headings, converting a phrase into a CSS class name or a database column name.
How to use it. Paste text, press the case you want (UPPER, lower, Title Case, snake_case, kebab-case), then Copy.
Gotchas. snake_case and kebab-case split on spaces and on case boundaries (myVariable → my_variable). Punctuation is left as-is, so clean it first if you need a strict identifier.
Learn more: Wikipedia — naming conventions in programming
What it is. Converts XML documents to JSON and back.
When to use it. Reading a response from an older XML API as JSON; converting config or data between the two formats.
How to use it. Paste XML or JSON into the box, press XML → JSON or JSON → XML.
Gotchas. XML attributes become keys prefixed with @ (for example @id). Repeated elements become JSON arrays. XML comments and processing instructions are dropped in conversion — the output keeps the data, not the document's annotations.
Learn more: MDN — XML introduction
What it is. Turns CSV rows into SQL INSERT INTO statements for a table you name.
When to use it. Loading a spreadsheet into a database, seeding a table with test data, moving data between systems.
How to use it. Set the table name (it defaults to users), paste CSV with a header row, press Convert, then Copy the statements.
Gotchas. Numbers are inserted bare, text is single-quoted (quotes inside text are doubled, the SQL way). The first row must be the header. Dialects differ — check the output against your database before running it on real data, and never run generated SQL you have not read.
Learn more: PostgreSQL docs — INSERT
What it is. Computes the SHA-256 fingerprint of any file — a 64-character hex string that uniquely identifies the file's exact bytes.
When to use it. Verifying a download against a published checksum; proving a file has not changed; fingerprinting a build artifact.
How to use it. Drop a file on the zone (or click to choose one). The hash appears below. Compare it character for character with the checksum you were given.
Gotchas. The hash covers the file's exact bytes — re-saving, re-encoding or even re-zipping changes it. Compare the whole string, not just the first few characters. A matching hash proves the bytes are identical; it says nothing about whether the file is safe to run.
Learn more: FIPS 180-4 — Secure Hash Standard (SHA-256)
What it is. Turns an image into a Base64 data URI (data:image/png;base64,...) that you can paste directly into HTML or CSS.
When to use it. Embedding a small icon or logo in a single self-contained HTML file or stylesheet, without a separate image file or server.
How to use it. Drop an image on the zone (or click to choose one), then press Copy data URI and paste it where the image goes.
Gotchas. Base64 makes the data about 33% bigger than the original file, so this only makes sense for small images. A large photo embedded this way bloats the page and slows it down — link to the file instead.
Learn more: RFC 4648 — Base64 encoding · MDN — data URLs
Dev tools
JSON, encoders, diffs and text tools for daily dev work. Open the Dev tab →
What it is. Pretty-prints JSON so you can read it, or minifies it to a single line. If the JSON is invalid, it tells you why instead of failing silently.
When to use it. Reading an API response, finding a missing comma in a config file, shrinking JSON before pasting it somewhere size matters.
How to use it. Paste JSON into the box, press Format or Minify, then Copy.
Gotchas. JSON is strict: keys and strings need double quotes (single quotes are invalid), and trailing commas are not allowed. If the formatter reports an error, fix the first error it names — later errors are usually knock-on effects.
Learn more: json.org — JSON, the data format
What it is. Encodes text into Base64 and decodes Base64 back into text.
When to use it. Putting binary-ish data into a header or a JSON field, decoding the payload of a token, moving text through a channel that only accepts plain ASCII.
How to use it. Paste text, press Encode or Decode, then Copy.
Gotchas. Base64 is an encoding, not encryption — anyone can decode it, so never put a password or secret in Base64 and call it protected. The tool handles UTF-8 text, including non-English characters.
Learn more: RFC 4648 — Base64 encoding
What it is. Percent-encodes text so it is safe inside a URL, and decodes percent-encoded text back to readable form.
When to use it. Putting a search term or a value with spaces, & or = into a link; reading a messy URL you were handed.
How to use it. Paste the text or URL, press Encode or Decode, then Copy.
Gotchas. A space becomes %20. An & or = inside a query value must be encoded, or the server will read it as a separator and split your value in two.
Learn more: WHATWG URL Standard
What it is. Tests a JavaScript regular expression against sample text and shows the matches.
When to use it. Building a pattern to validate an email or phone number, extracting pieces from a log line, checking a pattern before putting it in code.
How to use it. Enter the pattern (for example \d{3}-\d{4}), add flags if you need them (for example gi for global, case-insensitive), paste the test text, press Test.
Gotchas. This uses JavaScript regex syntax — other languages differ in small ways (lookbehind, named groups, flag letters). An unescaped special character like . or + changes what the pattern means; escape it with a backslash when you want the literal character.
Learn more: MDN — regular expressions
What it is. Converts a Unix timestamp — seconds since 1 January 1970, UTC — into a readable date and time, and gives you the current timestamp with one click.
When to use it. Reading a timestamp out of a log file or database row; checking when an event actually happened; getting “now” in seconds for code.
How to use it. Paste the seconds value and press Convert, or press Now to fill in the current timestamp.
Gotchas. Unix time counts seconds. Some systems use milliseconds (13 digits instead of 10) — divide by 1,000 first, or you will land in the year 50,000. The converted time is shown in your browser's local timezone as well as UTC.
Learn more: Wikipedia — Unix time
What it is. Three small generators in one card: random UUIDs, random passwords, and SHA-256 hashes of text you type.
When to use it. Needing a unique id for a record or request, a strong throwaway password, or a fingerprint of a string to compare later.
How to use it. Press New UUID or New password for a fresh value; or type text in the hash box and press Hash. Copy the output from the box below.
Gotchas. The password is random — store it in a password manager, because there is no way to recover it. A hash is one-way: it cannot be reversed to get the original text back, which is the point. For hashing a file rather than typed text, use the File SHA-256 hash converter instead.
Learn more: RFC 9562 — UUIDs
What it is. Estimates how many LLM tokens a piece of text is — roughly characters ÷ 4 and words ÷ 0.75 — plus the character and word counts.
When to use it. Roughly sizing a prompt before sending it to an API, sanity-checking whether a document fits in a model's context window, estimating cost.
How to use it. Paste text, press Estimate. The output shows characters, words and the estimated token count.
Gotchas. This is an estimate, not an exact count — real tokenization depends on the model, and code, non-English text and unusual punctuation all tokenize differently. For exact counts, use the model's own tokenizer; for cost, use the LLM cost calculator on DevKit.
Learn more: tiktoken — OpenAI's tokenizer
What it is. Converts a color between hex (#38bdf8), rgb() and hsl() notations.
When to use it. Moving a color from a design tool into CSS, matching a brand color across formats, converting a value for a colleague.
How to use it. Paste a color — #38bdf8, rgb(56, 189, 248) or hsl(199, 92%, 56%) — and press Convert.
Gotchas. Hex values need 6 digits (3-digit shorthand like #38f is not accepted here — write it out in full). Alpha/transparency channels are not covered; convert the opaque color and add the alpha yourself.
Learn more: MDN — <color> values
What it is. Compares two texts, line by line, and shows which lines are only in the first, only in the second, or in both.
When to use it. Checking what changed between two versions of a config file, a document or a code snippet; spotting an accidental edit.
How to use it. Paste the original text in the first box and the changed text in the second, press Compare.
Gotchas. The comparison is line-based: a changed word makes the whole line show as different. Whitespace-only changes (a trailing space, a different indent) count as differences, so a noisy result often means invisible whitespace changed.
Learn more: Wikipedia — diff
What it is. Counts words, characters (with and without spaces), lines, and the estimated reading time of a piece of text.
When to use it. Checking an essay, post or document against a length limit; estimating how long something takes to read.
How to use it. Paste text, press Count.
Gotchas. Reading time assumes about 200 words per minute — dense or technical text takes longer in practice. Words are split on whitespace, so hyphenated words count as one and numbers count as words.
Learn more: Wikipedia — word count
What it is. Sorts a list of lines A–Z or Z–A, or removes duplicate lines.
When to use it. Cleaning up a list of emails, ids or names; deduping a list before pasting it somewhere.
How to use it. Paste one item per line, press Sort A–Z, Sort Z–A or Remove duplicates.
Gotchas. Sorting is alphabetical and locale-aware, so numbers sort as text (10 before 2) unless you zero-pad them. “Remove duplicates” keeps the first occurrence of each line and drops the rest, in order.
Learn more: MDN — Array.prototype.sort
What it is. Generates TypeScript interfaces from a JSON sample — paste an API response, get the types.
When to use it. Typing an API response quickly, scaffolding types for a new endpoint, documenting a JSON shape.
How to use it. Paste JSON, press Generate types, then Copy.
Gotchas. Types are inferred from a single sample: a field that is null or missing in your sample will be typed as null or left out entirely, and a field that is sometimes a string and sometimes a number will only show the type it had in the sample. Review the generated types before shipping them — they are a starting point, not a contract.
Learn more: TypeScript handbook — object types