← Back to DevKit How to use DevKit File converters Dev tools

DevKit DevTools guide

Every developer tool and file converter on DevKit, explained: what it is, when to use it, how to use it here, what to watch out for — and the official docs if you want to go deeper. Everything on this page runs in your browser. Nothing is uploaded.

How to use DevKit

First time here? The whole site works the same way.

Nothing leaves your browser. Every tool on DevKit runs locally in the page — there is no server, no upload, no account and no tracking. You can paste API responses, config files and data freely; close the tab and it is gone. That is the whole privacy model, and it is why the tools are fast.

Find a tool three ways. Use the search box at the top of the main site (try csv, json or base64), pick a tab — Files for converters, Dev for developer tools — or follow the “Open in DevKit” link on any entry below, which jumps straight to that tool.

Every tool is one card. Paste or drop your input, press the button, read the result on the card. Most tools have a Copy button; file converters also have Download. If a tool shows an error, the message says what is wrong — usually a formatting problem in the input.

Share any tool. Every tab has a link (#tab-files, #tab-dev) and every tool on this page links to its own anchor (for example index.html#tool-csvjson). Send the link, not a screenshot.

Contents

22 tools — 10 file converters, 12 dev tools. Click any entry to jump to its explanation.

File converters

Change formats without uploading anything — your files never leave your browser. Open the Files tab →

CSV ↔ JSON Open in DevKit →

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

JSON ↔ YAML Open in DevKit →

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

Markdown → HTML Open in DevKit →

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

CSV → Markdown table Open in DevKit →

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

Text case converter Open in DevKit →

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

XML ↔ JSON Open in DevKit →

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

CSV → SQL INSERT Open in DevKit →

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

File SHA-256 hash Open in DevKit →

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)

Image → Base64 Open in DevKit →

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 →

JSON formatter & validator Open in DevKit →

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

Base64 Open in DevKit →

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

URL encode / decode Open in DevKit →

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

Regex tester Open in DevKit →

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

Unix timestamp Open in DevKit →

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

UUID, password & SHA-256 Open in DevKit →

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

Token estimator Open in DevKit →

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

Color converter Open in DevKit →

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

Text diff Open in DevKit →

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

Word counter Open in DevKit →

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

Sort & dedupe lines Open in DevKit →

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

JSON → TypeScript Open in DevKit →

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