Developer Tools

Speed up your daily workflow with 18 free developer utilities for encoding, formatting, parsing, generating, and testing common data formats.

From prettifying JSON and decoding JWTs to generating UUIDs, bcrypt hashes, and regex patterns — everything runs entirely in your browser. No scripts, no installs, no data sent to any server.

Encoding & Decoding
Base64 Encoder / Decoder
Encode any text or file to Base64 and decode Base64 strings back to plain text or binary. Supports URL-safe variant.
Use Base64
URL Encoder / Decoder
Encode special characters for safe use in URLs, or decode percent-encoded URL strings back to plain text instantly.
Use URL Encoder
HTML Entities
Encode HTML special characters into entities (&, <, >) or decode them back to plain text for safe output.
Use HTML Entities
Number Base Converter
Convert numbers between binary, octal, decimal, and hexadecimal bases with full step-by-step conversion output.
Use Base Converter
Formatting & Parsing
JSON Formatter
Validate, format, and minify JSON. Prettify messy JSON with syntax highlighting and detailed error detection.
Use JSON Formatter
JSON Unescape & Cleaner
Remove backslashes and clean escaped JSON. Handles stringified, double-escaped, and HTML-entity-encoded JSON.
Use JSON Unescape
JSON Diff
Compare two JSON documents side by side. Highlights added, removed, and changed values with structural diff.
Use JSON Diff
JWT Decoder
Decode and inspect JWT tokens. View header, payload, and signature claims without needing the secret key.
Use JWT Decoder
Regex Tester
Write and test regular expressions with live match highlighting, group capture display, and full flag support.
Use Regex Tester
Timestamp Converter
Convert Unix timestamps to human-readable dates and back. Supports UTC and local timezones.
Use Timestamp Converter
Cron Explainer
Paste any cron expression and get a plain-English description of when it runs, plus the next execution times.
Use Cron Explainer
Color Converter
Convert colours between HEX, RGB, RGBA, HSL, HSLA, and HSV formats with a live colour preview swatch.
Use Color Converter
REST API Checker
Send HTTP requests (GET, POST, PUT, DELETE) with custom headers and body. Inspect response status, headers, and body.
Use REST API Checker
Security & Generation
Password Generator
Generate strong, cryptographically random passwords with customisable length, character sets, and complexity rules.
Use Password Generator
UUID Generator
Generate cryptographically random UUID v4 identifiers. Bulk-generate UUIDs and copy them with one click.
Use UUID Generator
Hash Generator
Generate MD5, SHA-1, SHA-256, and SHA-512 hashes for any input text. Useful for integrity checks and fingerprinting.
Use Hash Generator
Bcrypt Generator
Hash passwords using bcrypt with configurable cost factors. Verify any bcrypt hash against a plain-text password.
Use Bcrypt Generator
Random String Generator
Generate random strings of any length using letters, numbers, symbols, or a fully custom character set.
Use Random String

Free Online Developer Tools

Our developer tools collection helps programmers work faster: encode/decode Base64, URLs, and HTML entities; format and validate JSON; diff JSON documents; decode JWTs; test regular expressions; convert Unix timestamps and number bases; explain cron schedules; convert colours; check REST APIs; and generate passwords, UUIDs, hashes, bcrypt hashes, and random strings — all free, in-browser, no login required.

From the Blog

In-depth technical articles and guides.

View all →
Why JSON.parse() Fails for Large Files — Streaming Parsers, JSON Lines, and When to Use Each
Standard JSON.parse() requires the complete document before returning anything — which fails for large files that exceed memory and real-time streaming APIs that never "finish." Here's how streaming JSON parsers work (event-driven, token-by-token), JSON Lines as a simpler alternative that works with standard parsers, the specific use cases where streaming is necessary vs over-engineering, and when high-volume data transfer argues for protobuf instead of JSON entirely.
Reading a bcrypt Hash: What $2b$12$ Means and Where the Salt Is
A bcrypt hash is four fields packed into one string. Learn to read the version prefix, cost, embedded salt and digest — and why the salt is stored in plain sight.
JSON Formatter — Pretty Print, Minify & Validate JSON Instantly
Learn how a JSON formatter works, what common JSON syntax errors look like, the difference between JSON and JavaScript objects, and how to format and validate JSON instantly with a free tool.
Number Base Converter — Binary, Octal, Decimal & Hex Explained
Learn how binary, octal, decimal, and hexadecimal number systems work, when each is used in programming, and how to convert between them instantly with a free number base converter.
Bcrypt's 72-Byte Limit: Why Two Different Passwords Can Hash to the Same Value
Bcrypt silently truncates input at 72 bytes — meaning two passwords sharing the same first 72 bytes but differing afterward produce the identical hash. Here's why 72 specifically, how multi-byte Unicode characters (emoji especially) reach this limit far sooner than "72 characters" suggests, why pre-hashing with SHA-256 is a common mitigation, and why this isn't actually a meaningful security concern for typical passwords.
Why HSL's "50% Lightness" Lies — oklch, Perceptual Color Spaces, and Why They Matter for Design Systems
HSL's "50% lightness" produces visually different brightness across hues — yellow at HSL(60,100%,50%) looks far brighter than blue at HSL(240,100%,50%). oklch solves this with perceptual uniformity: equal L values produce equal apparent lightness regardless of hue. Here's how oklch works in CSS (now supported in all modern browsers), why it's the best tool for dark mode palettes, and how wide-gamut P3 colors fit in.
Bcrypt Generator — Hash & Verify Passwords the Right Way
Learn how bcrypt works, why slowness is the feature, what the cost factor means, how to use bcrypt for user authentication, and why MD5 and SHA-256 should never be used for passwords — with a free bcrypt generator.
JWT vs Opaque Session Tokens: Why This Tool Can Decode Some Tokens and Not Others
Some APIs return a token that decodes into readable claims; others return an opaque string that reveals nothing. The difference isn't a quality signal — it's the fundamental architectural choice between stateless JWTs (the token contains the session data) and stateful opaque tokens (the token is a lookup key into a server-side session store). Here's why instant revocation pushes some systems toward the "extra database lookup" approach, and what it means when a token you paste into this tool decodes to nothing.
Regex Can't Parse Nested Structures — When to Switch to Parser Combinators and Why
Regular expressions cannot formally match arbitrarily nested structures like balanced parentheses or nested JSON — this is a mathematical limitation, not an engine deficiency. Here's the five specific signals that indicate you've outgrown regex, how parser combinators recursively compose small parsing functions, and why "regex JSON extractors" only work for simple flat cases.
Named Capture Groups, Lookahead, and Lookbehind: Modern Regex Features That Make Patterns Readable
Named capture groups turn regex matches from numbered tuples into readable dictionaries. Lookahead and lookbehind assertions match positions without consuming characters. Here's the modern regex feature set — named groups, non-capturing groups, all four assertion types — with practical patterns for log parsing and URL extraction.