Skip to content

Category

Developer Tools

Format, validate, encode and generate

JSON formatting and minifying, Base64 and URL encoding, UUID generation, timestamp conversion and a live regular-expression tester.

At a glance

16tools in this hub

16 of 16 run entirely in your browser

Free · no sign-up · no watermark

All Developer tools

Every tool in developer tools

Ordered as they appear in the library. Each opens on its own page with instructions, FAQs and related tools.

JSON Formatter & Validator

Developer

Pretty-print JSON with your chosen indent and see exactly where errors are — a JSON formatter that points at the fault.

Instant · no upload

JSON Minifier

Developer

Strip whitespace from JSON to make it as small as possible with this JSON minifier.

Instant · no upload

Base64 Encoder / Decoder

Developer

Encode text to Base64 or decode it back, with URL-safe and UTF-8 options — a Base64 encoder and decoder in one.

Instant · no upload

URL Encoder / Decoder

Developer

Percent-encode or decode URL components and full query strings with this URL encoder and decoder.

Instant · no upload

UUID Generator

Developer

Generate v4 UUIDs, plus v1, v7 and NIL values in bulk, with this UUID generator.

Instant · no upload

Unix Timestamp Converter

Developer

This Unix timestamp converter turns timestamps into readable dates and back, in any timezone.

Instant · no upload

Regex Tester

Developer

Test regular expressions against sample text with live highlighting in this regex tester.

Instant · no upload

HTML Formatter & Beautifier

Developer

Re-indent messy markup into clean, readable, properly nested HTML with this HTML formatter.

Instant · no upload

HTML Minifier

Developer

Strip whitespace and comments from HTML to shrink the file with this HTML minifier.

Instant · no upload

CSS Minifier

Developer

Compress a stylesheet by removing comments and whitespace with this CSS minifier.

Instant · no upload

JavaScript Minifier

Developer

Remove comments and whitespace from JS without renaming identifiers — a JavaScript minifier that keeps your names.

Instant · no upload

Hash Generator (MD5 & SHA)

Developer

Compute MD5, SHA-1, SHA-256, SHA-384 and SHA-512 digests of any text with this hash generator.

Instant · no upload

JWT Decoder & Inspector

Developer

Decode the header and payload of a JSON Web Token and read its claims with this JWT decoder.

Instant · no upload

Cron Expression Parser

Developer

Turn a cron schedule into plain English and its next run times with this cron expression parser.

Instant · no upload

Text Diff Checker

Developer

Compare two texts line by line and highlight additions and deletions with this text diff checker.

Instant · no upload

NanoID Generator

Developer

Create compact, URL-safe unique IDs in bulk with this NanoID generator.

Instant · no upload

About this category

What developer tools can do for you

Developer utilities are where privacy matters most, because the payload is often an API response containing tokens, customer records or internal URLs. Every tool here executes in your browser's own JavaScript runtime. There is no request body to log, no proxy to trust and no retention window to read about — close the tab and the data is gone.

Sixteen tools, and they share a property that makes this the category where running them locally matters most: the input is usually something you would not paste into a stranger's website. An API response with a bearer token in it. A production connection string. A JWT belonging to a real customer. An internal hostname.

Everything here executes in your browser's own JavaScript runtime. There is no request body for anyone to log, no proxy to place trust in, and nothing retained once you close the tab. That is not a policy statement — it is a consequence of the code being client-side, and you can confirm it with the network panel open.

JSON: format, validate, minify, inspect

JSON Formatter parses, validates and re-indents. The parse step is the part that earns its keep: JavaScript's JSON.parse reports a syntax error but describes it cryptically, and seeing the offending position turns a five-minute hunt into a five-second fix. Trailing commas, single quotes, unquoted keys and comments are all invalid JSON however natural they look inside a JavaScript object literal.

The tool also reports structure statistics — nesting depth, and how many objects, arrays, strings, numbers, booleans and nulls the document contains — which is a quick way to get the shape of an unfamiliar payload before writing code against it.

JSON Minifier strips whitespace for transmission. It can sort object keys recursively as well, which sounds cosmetic and is not: two responses holding the same data in a different key order are byte-different, and sorted keys mean a diff shows only the values that actually changed.

Encoding is not encryption

This is the commonest misunderstanding in the whole category, so it is worth stating without hedging.

Base64 Encoder / Decoder turns bytes into 64 printable ASCII characters so binary data can travel inside JSON, an HTTP header or a URL. It is reversible by anyone, instantly, with no key. If you can decode it, so can everybody else. Base64 hides nothing; it only changes the representation.

URL Encoder / Decoder percent-encodes the characters that would otherwise be read as URL structure — a space becomes %20, and reserved characters such as &, = and # are escaped so they survive as data rather than as delimiters. It can encode a whole URL while leaving its structure intact, which is the mode you want when only the query values need escaping. Decoding treats + as a space, following the form-encoding convention, and falls back to the raw text on a stray percent sign instead of throwing.

Neither protects a secret. Encryption does that, and there is deliberately no encryption tool here: a browser-side tool that asked you for a key would be worse than no tool at all.

Hashing, honestly

Hash Generator computes MD5, SHA-1, SHA-256, SHA-384 and SHA-512 digests. The SHA family comes from the browser's own audited Web Crypto implementation; MD5, which Web Crypto does not offer, is a direct implementation of RFC 1321.

A hash is one-way. It has no key and no inverse, so it is not encryption and nothing can be recovered from it. What it gives you is a fingerprint: the same input always yields the same digest, and changing one bit yields a completely different one. That makes it useful for verifying that a download arrived intact and for identifying a file without storing it.

AlgorithmDigest sizeStatus
MD5128 bitsBroken — collisions in seconds
SHA-1160 bitsBroken — practical collision since 2017
SHA-256256 bitsSound, the usual default
SHA-384384 bitsSound, a truncated SHA-512
SHA-512512 bitsSound, often fastest on 64-bit hardware

MD5 and SHA-1 are included because a great deal of existing infrastructure still publishes checksums in those formats — download mirrors, package registries, and git, which uses SHA-1 for every object identifier it creates. Both are broken for security purposes, and the tool shows a warning whenever either is selected.

Do not use any of them to store passwords. They are built to be fast, which lets an attacker test billions of guesses a second. Credentials need a slow, salted, memory-hard function — Argon2, bcrypt or scrypt.

Reading a JWT without trusting it

JWT Decoder splits a token into its three Base64URL sections and shows the header and the claims. A leading Bearer prefix is stripped for you.

It does not verify the signature, and it says so on the page rather than leaving you to assume. Verification needs the issuer's secret or public key, which your browser does not have. Everything the decoder displays is therefore untrusted input: anyone can mint a token whose payload claims to be an administrator, and it will decode beautifully. The signature is shown for inspection and never checked.

What the tool adds is the time arithmetic, because that is what most people paste a token here to find out. exp, nbf and iat are Unix timestamps, and the decoder compares them against your current clock to tell you whether the token has expired, is not valid yet, or carries no expiry at all — a common and genuinely risky configuration.

Identifiers

UUID Generator produces RFC 4122 version 4 identifiers with 122 bits of randomness, via crypto.randomUUID(). They are the safe default for database keys and request IDs precisely because they are unpredictable and need no coordination between machines.

NanoID Generator builds shorter identifiers from the real NanoID default alphabet — 64 URL-safe symbols — at a length you choose, 21 by default. Each character is drawn with rejection sampling from the cryptographic RNG, so there is no modulo bias even though 64 does not divide a 32-bit word evenly. It also shows the collision arithmetic for your chosen size and alphabet, because “how many can I generate before one repeats” is the question that should decide the length.

Both sit on crypto.getRandomValues, the same entropy source that generates TLS session keys. Math.random() is never used anywhere in this codebase: it is a fast pseudorandom generator whose internal state can be recovered from a handful of outputs.

Time

Timestamp Converter moves between Unix time and human-readable dates in both directions, inferring the unit from magnitude rather than asking — ten digits is seconds, thirteen is milliseconds. That inference prevents the single most common date bug there is. UTC and local time are always shown together, negative values are correctly treated as dates before 1970, and values outside the range JavaScript can represent are rejected with an explanation instead of rendering as nonsense.

Cron Parser explains a five-field expression in plain English and lists the next run times. Field ranges are validated — minutes 0–59, hours 0–23, day of month 1–31, months 1–12, day of week 0–7 with both 0 and 7 meaning Sunday — month and day names are accepted, and the day-of-month and day-of-week interaction follows standard cron semantics: when both fields are restricted, matching either one is enough. A schedule that fires on the wrong day is a much worse bug than one that never fires, and that rule is where most of them come from.

Formatting and shrinking markup

HTML Formatter re-indents markup by tokenising it rather than counting angle brackets, so nesting comes out right and void elements such as img and br are not given closing tags they never had. HTML Minifier collapses whitespace and removes comments — except conditional comments, which some legacy build pipelines still depend on.

CSS Minifier removes comments and whitespace that cannot matter. JavaScript Minifier is deliberately conservative: it strips comments and collapses whitespace that is provably insignificant, tells a regex literal from a division operator by looking at what precedes the /, and preserves /*! licence banners. It does not rename identifiers, reorder expressions or eliminate dead code, so the output is semantically identical to the input rather than merely usually identical. For a production bundle use a minifier with a real parser — Terser, esbuild or SWC. This one is for the case where you need a smaller snippet now and cannot afford a subtle break.

Comparing and matching

Text Diff compares two texts line by line with a longest-common-subsequence algorithm, marking additions, deletions and unchanged lines with their original line numbers. It is line-level rather than character-level, so an edited word appears as one deleted line and one added line. Very large inputs are refused rather than attempted: the LCS table is quadratic in the two lengths, and past roughly four million cells it would freeze the tab.

Regex Tester runs a pattern against sample text live, with flags, match highlighting and the captured groups for each match. Because it executes locally, testing against real log lines or real customer records carries no risk of them going anywhere.

Why all of this still runs on your machine

Format, minify, hash, decode, generate: none of it needs a server, and all of it is faster without a network round trip. If you want proof rather than a promise, open the network panel, clear it, and use any tool in this category — you will see no request carrying your input.

Questions

Developer tools, answered

The things people ask before choosing a tool, rather than while using one.

Can I decode Base64 to get back a hidden password?

If a password was Base64-encoded, then yes — and that is exactly the problem. Base64 is an encoding, not encryption: it maps bytes onto 64 printable characters with no key, so anyone can reverse it in one step. Seeing credentials protected only by Base64 means they are not protected at all. Real protection needs encryption with a key, or better, a hashed value that was never meant to be reversible in the first place.

Does the JWT Decoder verify that a token is genuine?

No, and it will not pretend to. Verifying a signature requires the issuer's secret or public key, which your browser does not possess. The decoder splits the token, shows the header and claims, and works out whether exp, nbf and iat place it inside its validity window relative to your clock. Every claim it displays is untrusted input until your own server validates the signature. Anyone can craft a token that reads “role: admin” here.

Is it safe to paste an API response containing real customer data?

Yes, because the data never leaves your machine. Formatting, minifying, hashing and decoding all run inside your browser's JavaScript runtime — there is no upload, no proxy and nothing written to a server, so there is no retention period and no third party to trust. You can verify this yourself: open the browser's network panel, clear it, and use any tool here.

Will the JavaScript minifier break my code?

It is built not to, by doing less. It removes comments and collapses whitespace that is provably insignificant, distinguishing a regex literal from a division operator by what precedes the slash, and it keeps /*! licence banners. It never renames identifiers, reorders expressions or deletes code it thinks is unreachable — the transformations that make aggressive minifiers dangerous. For production bundles still use Terser, esbuild or SWC, which parse properly and achieve much better ratios.

Why are MD5 and SHA-1 still offered if they are broken?

Because a great deal of software still publishes digests in those formats and you frequently need to reproduce one. Download mirrors list MD5 checksums, package registries still ship them, and git identifies every object by its SHA-1 hash. Both algorithms are fine for detecting accidental corruption and useless against a deliberate attacker — collisions can be generated on purpose — so the tool warns whenever either is selected.

What is the difference between a UUID and a NanoID?

A UUID v4 is 128 bits written as 36 fixed-format characters, standardised by RFC 4122 and understood by databases and libraries everywhere. A NanoID is a compact random string of whatever length you pick, 21 characters by default, drawn from a URL-safe alphabet — shorter, friendlier in a URL, and equally collision-resistant at the default size. Choose UUIDs where a standard is expected and NanoIDs where length matters. Both come from your browser's cryptographic random source here.

Keep browsing

Other categories