All tools

Free and no sign-up: the tools run in your browser, on the page itself.

Data formats

JSON Formatter & Validator

Format, validate and inspect JSON in your browser, with precise error locations and a collapsible tree view.

JSON Checker

Check JSON for syntax errors and get the exact line and column of the first problem — validation only, nothing rewritten, nothing uploaded.

JSON to XML Converter

Convert JSON to clean, indented XML in your browser — with predictable element naming rules and a report of any key that had to be renamed.

JSON Editor

Edit JSON in a syntax-highlighting editor with live error markers, then format, minify and download — entirely in your browser.

JSON to YAML Converter

Convert JSON to YAML and YAML back to JSON in your browser — full YAML 1.2 parsing, comments and anchors handled, nothing uploaded.

JSON to CSV / CSV to JSON Converter

Turn JSON arrays into CSV tables and CSV files back into JSON — with a live table preview, quoting done properly, all in your browser.

JSON to TypeScript Converter

Turn a JSON sample into TypeScript interfaces — nested objects named and deduplicated, array shapes merged, optional fields detected — in your browser.

HTML Formatter

Format and beautify HTML in your browser — nested markup indented consistently, tag balance checked first with exact error locations, nothing uploaded.

JavaScript Formatter

Format and beautify JavaScript in your browser — syntax checked first with precise error locations, strings, regexes and comments left byte-identical, nothing uploaded.

SQL Formatter

Format and beautify SQL in your browser — clauses on their own lines, keywords uppercased, subqueries indented, string literals left byte-identical, nothing uploaded.

XML Formatter

Format and beautify XML in your browser — well-formedness checked first with exact error locations, dedicated XML rules (not HTML rules), nothing uploaded.

CSS Beautifier

Beautify CSS in your browser — structure checked first so a missing brace is reported, not buried; selectors, values and declaration order never touched, nothing uploaded.

XML to JSON Converter

Convert XML to JSON in your browser under fully documented mapping rules — attributes under @attributes, repeated siblings as arrays, values kept as strings, nothing uploaded.

JSON to Go

Generate Go structs with JSON tags from a JSON sample — nested shapes merged and deduplicated, keys missing from some elements marked omitempty, and every slot that had to become interface{} reported with its reason.

XML Validator

Check XML well-formedness with the exact line and column of the first error — for an unclosed tag, the line where it opened too — plus a structural summary of root, elements, comments and depth.

JSON to Java

Generate plain, dependency-free Java classes from a JSON sample — optional fields boxed so they can be null, List types inferred from every element, renamed fields keeping their JSON key in a comment.

JSON to Python

Generate Python dataclasses from a JSON sample — Optional fields with defaults, keyword-safe field names, and the dataclass field-order rule applied with every moved field reported.

YAML Formatter & Validator

Format YAML on the document itself so comments, anchors and multi-document structure survive — with strict validation that refuses duplicate keys and reports errors by line and column.

JSON to JSON Schema

Infer a JSON Schema (draft-07) from a sample — a key is required only when every object has it, mixed slots become anyOf, and nothing the sample cannot prove (formats, enums, bounds) is invented.

GraphQL Formatter

Format GraphQL operations, fragments and schema definitions into one canonical layout by parsing them for real — long argument lists break one per line, and syntax errors come back with line and column.

JSON Diff Checker

Compare two JSON documents as values, not text — every added, removed and changed leaf listed at its exact path, with key order and formatting correctly ignored.

TOML Formatter & Validator

Format and validate TOML with a full TOML 1.0 parser built for this tool — duplicate keys, dotted-key table traps and impossible dates caught with line and column, while every scalar spelling is preserved byte-for-byte.

JSON to Rust

Generate serde-ready Rust structs from a JSON sample — snake_case fields with rename attributes where the spelling had to change, Option<T> where keys come and go or turn null, and every slot that had to become serde_json::Value reported with its reason.

XML to Go

Generate Go structs for encoding/xml from an XML document — attributes as fields, repeated elements as slices, sometimes-absent elements as pointers, and every inference and mixed-content judgement listed in the open.

JSON Escape / Unescape

Escape text into a JSON string literal, or unescape one back — control characters, quotes and unicode handled exactly as the JSON grammar requires, and invalid escape sequences reported with their position instead of being quietly passed through.

JSON to C#

Generate C# classes from a JSON sample — PascalCase properties pinned to their JSON names with [JsonPropertyName], nullable value types where keys come and go or turn null, List<T> for arrays, and object for every slot the sample cannot settle, reported in the notes.

JSON to C++

Generate C++ structs from a JSON sample — nlohmann-style field mapping that keeps the JSON key as the field name wherever C++ allows it, std::optional where keys come and go or turn null, structs declared in dependency order, and includes emitted only when used.

JSON to Dart

Generate Dart classes from a JSON sample — camelCase final fields with the original JSON key kept in a comment wherever it had to change, nullable types where keys come and go or turn null, const constructors with required named parameters only where the sample proves presence, and dynamic reported wherever it had to appear.

JSON to Kotlin

Generate Kotlin data classes from a JSON sample — kotlinx.serialization style with @SerialName pins (and @Serializable plus the imports) only where a key's spelling had to change, nullable types with null defaults where keys come and go or turn null, and Any reported wherever the sample could not settle a type.

JSON to Swift

Generate Swift Codable structs from a JSON sample — camelCase properties with a CodingKeys enum pinning the wire names wherever a spelling had to change, Optionals where keys come and go or turn null, and a small JSONValue enum appended for the slots the sample cannot settle, so the output still compiles.

TypeScript Formatter

Format TypeScript by reindenting it with a TypeScript-aware lexer — never by rewriting its tokens, so name?: string, generics and enums survive exactly (the JavaScript engine next door provably mangles them; the comparison is on the page). One-line input is expanded structurally, and the output is verified token-for-token before it is shown.

XML to Java

Generate Java classes from an XML document — attributes as fields, repeated elements as List fields, sometimes-absent primitives boxed so absence reads as null, optional jakarta.xml.bind (JAXB) annotations with the Java 11 classpath warning printed up front, and every mixed-content judgement listed in the open.

JSON5 Formatter & Validator

Format and validate JSON5 with a full parser written for this tool — comments, unquoted keys, trailing commas, hex numbers and multiline strings all understood, every JSON5-only feature your file uses counted in a strictness report, and an explicit convert mode that turns it into strict JSON with NaN and Infinity reported as they become null. Your input is never auto-saved: JSON5 files are configuration, and configuration carries secrets.

YAML to Go

Generate Go structs with yaml.v3 tags from a YAML document — nested mappings as their own types, sometimes-absent keys marked omitempty, stringified non-string keys and interface{} slots all reported. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

CSS Minifier

Shrink CSS by removing only the whitespace the grammar makes redundant — strings and url() bodies pass through untouched, calc() and descendant selectors keep their load-bearing spaces, and /*! license comments survive unless you explicitly choose otherwise.

CSV to YAML

Convert CSV to a YAML sequence of mappings — header row as keys, values typed by the same inference rules as the CSV to JSON converter, leading-zero identifiers kept as quoted strings, and duplicate headers reported instead of silently overwriting a column.

HTML Validator

Check HTML structure with line-and-column errors — tag pairing and nesting, unquoted or duplicated attributes, unterminated raw text. Structural checking, stated plainly: not a full W3C validation, and a pass here is the floor, not the ceiling.

HTML Viewer

Preview pasted HTML in a sandboxed iframe — no scripts, no forms, an opaque origin with no reach into this page — plus a formatted source view that refuses to tidy markup whose nesting is broken. Scripts stay off unless you switch them on, knowingly.

XML to Python

Generate Python dataclasses from an XML document — attributes as fields, repeated elements as List, sometimes-absent elements as Optional with the dataclass field move reported, and every mixed-content and mixed-type judgement listed in the open.

XML to TypeScript

Generate TypeScript interfaces from an XML document in the same layout as this site's XML to JSON converter — attributes under @attributes, text under #text, repeated elements as arrays, mixed slots as union types instead of guesses.

YAML Validator

Check YAML syntax and structure with line-and-column errors — duplicate keys reported instead of silently overwritten, unresolved aliases caught at the alias, multi-document streams accepted and counted. Syntax and structure only, stated plainly: not schema validation. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

YAML to CSV

Convert YAML to a CSV table — a sequence of mappings becomes a headed table whose header is the union of every key, nested values written as compact JSON in their cell, RFC 4180 quoting throughout, and multi-document streams refused rather than half-converted. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

YAML to Java

Generate Java classes from a YAML document — nested mappings as their own classes, sequences as List, sometimes-absent numeric fields boxed so absence reads as null, stringified non-string keys and Object slots all reported. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

YAML to Python

Generate Python dataclasses from a YAML document — nested mappings as their own dataclasses in dependency order, sometimes-absent keys as Optional with the dataclass field move reported, stringified non-string keys and Any slots all listed. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

YAML to TypeScript

Generate TypeScript interfaces from a YAML document — nested mappings as their own interfaces, sequences of mappings merged into one element interface, sometimes-absent keys as optional properties, stringified non-string keys reported. Your input is never auto-saved: YAML is configuration, and configuration carries secrets.

CSS to SCSS

Convert CSS to SCSS without inventing structure — the same rules in consistent SCSS layout, plus one opt-in transformation: repeated colour and length literals extracted into $variables with every extraction counted and listed, and the output verified declaration-by-declaration against the input before you see it.

C# Formatter

Format C# with a lexer that actually knows C# — interpolated, verbatim and raw strings, decimal suffixes and generics pass through untouched, whitespace is the only thing that changes, and the output is verified token-for-token against your input before it is shown.

Encoding & tokens

Network & time

Text & generators

Regex Tester

Test regular expressions against your text with every match highlighted, a full match list and capture groups — plus one-click patterns for emails, URLs and dates.

Text Diff Checker

Compare two texts line by line and see exactly what was added and removed — colour-blind-safe markup with + and − signs, all in your browser.

UUID Generator

Generate random UUID v4 values in bulk — up to 100 at a time, with case and hyphen options — using your browser's cryptographic random source.

Hash Generator

Calculate MD5, SHA-1, SHA-256 and SHA-512 digests of any text as you type. Your input is hashed locally and never saved.

Color Converter

Convert colours between HEX, RGB, HSL and HSV with a live preview and one-click copy for every format — paste any notation, get all four.

Word Counter

Count words, characters with and without spaces, sentences and paragraphs as you type — plus an estimated reading time at 200 words per minute.

Password Generator

Generate strong random passwords with your browser's cryptographic random source, with length, character-set and look-alike controls — and nothing is ever stored.

Lorem Ipsum Generator

Generate classic lorem ipsum placeholder text by the paragraph, sentence or word, with the traditional opening line if you want it.

Case Converter

Convert text between UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case and kebab-case — all eight at once.

QR Code Generator

Generate QR codes in your browser with a choice of error correction levels, and download them as PNG or resolution-independent SVG — the content is never uploaded or saved.

Token Counter

Count tokens with the real cl100k_base and o200k_base tokenizers in your browser — exact counts for the GPT-4, GPT-3.5, GPT-4o and o-series models, labelled with the models each count applies to.

More tools on the way

This toolbox grows one tool at a time, and every tool ships with a full written guide explaining how the underlying format or protocol works — no empty shells. If a tool you need is missing, tell us: reader requests decide what gets built next.