Developer Tools

Speed up your development workflow with 17 free utilities for encoding, formatting, generating, and testing common data formats. From prettifying JSON and decoding JWTs to generating UUID v4s, bcrypt hashes, and regex patterns β€” each tool handles a specific daily task without needing a script or a Stack Overflow detour. Everything runs in your browser; no data is 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.

URL Encoder / Decoder

Encode special characters for safe use in URLs, or decode percent-encoded URL strings instantly.

HTML Entities

Encode HTML special characters into entities, or decode HTML entities back to plain text for safe output.

Number Base Converter

Convert numbers between binary, octal, decimal, and hexadecimal bases with full step-by-step output.

Formatting & Parsing
JSON Formatter

Validate, format, and minify JSON. Prettify messy JSON with syntax highlighting and error detection.

JSON Unescape & Cleaner

Remove backslashes and clean up escaped JSON. Handles stringified, double-escaped, and HTML-entity-encoded JSON.

JSON Diff

Compare two JSON documents side by side and highlight added, removed, and changed values. Structural comparison in your browser.

JWT Decoder

Decode and inspect JWT tokens. View header, payload, and signature claims without a secret key.

Regex Tester

Write and test regular expressions with live match highlighting, group capture, and flag support.

Timestamp Converter

Convert Unix timestamps to human-readable dates and vice versa. Supports UTC and local timezones.

Cron Explainer

Paste any cron expression and get a plain-English explanation of when it runs, plus the next execution times.

Color Converter

Convert colours between HEX, RGB, RGBA, HSL, HSLA, and HSV formats with a live colour preview.

Security & Generation
Password Generator

Generate strong, secure random passwords with customisable length, character sets, and complexity rules.

UUID Generator

Generate cryptographically random UUID v4 identifiers. Generate one or bulk UUIDs for your projects.

Hash Generator

Generate MD5, SHA-1, SHA-256, SHA-512 hashes for any text. Compare hashes for file integrity checks.

Bcrypt Generator

Hash passwords using bcrypt with configurable cost factors. Verify bcrypt hashes against plain-text passwords.

Random String Generator

Generate random strings of any length using letters, numbers, symbols, or custom character sets.

Free Online Developer Tools

Our developer tools collection helps programmers work faster: encode/decode Base64, URLs, and HTML entities; format and validate JSON; decode JWTs; test regex; convert timestamps; convert number bases; generate passwords, UUIDs, hashes, and random strings; explain cron expressions; and convert colours β€” all free, in-browser, with no login required.

From the Blog

View all articles
HTML Entities β€” Encode & Decode Special Characters Correctly

HTML Entities β€” Encode & Decode Special Characters Correctly

Learn what HTML entities are, which characters always need encoding, how to use <, &,  , and special symbols correctly β€” with a free HTML entities encoder/decoder tool.

Jun 6, 2026
URL Encoding Context: Why a URL Inside Another URL, in HTML, and in a Shell Command All Need Different Treatment

URL Encoding Context: Why a URL Inside Another URL, in HTML, and in a Shell Command All Need Different Treatment

A URL that works in a browser can fail in curl, JSON, or as a query parameter β€” because each context has different rules about which characters need encoding. Here's why "just URL-encode it" is underspecified without knowing the context, the encoding-within-encoding problem (a URL as a value inside another URL), why & needs HTML entity encoding in href attributes but not JSON, and the + vs %20 space ambiguity.

Jun 22, 2026
Cron and Daylight Saving Time: Why Your 2:30 AM Job Didn't Run β€” or Ran Twice

Cron and Daylight Saving Time: Why Your 2:30 AM Job Didn't Run β€” or Ran Twice

A cron job scheduled for 2:30 AM doesn't run on "spring forward" night, because 2:30 AM doesn't exist that night β€” and the same job might run twice on "fall back" night, because 2:30 AM happens twice. Here's why this is exactly the time window many maintenance jobs use, why UTC eliminates the problem entirely for most automated jobs, and why "9 AM local time" scheduling that survives DST requires timezone-aware libraries, not static cron expressions.

Jun 14, 2026
Password Generator β€” Create Strong, Random Passwords Instantly

Password Generator β€” Create Strong, Random Passwords Instantly

Learn what makes a password truly strong, why human-invented passwords fail, and how to use a free password generator to create cryptographically random credentials for every account.

Jun 6, 2026
JSON Parsing in Python, JavaScript, Go, and Ruby: Edge Cases That Cause Real Bugs

JSON Parsing in Python, JavaScript, Go, and Ruby: Edge Cases That Cause Real Bugs

Python's None vs JSON null, JavaScript's integer precision limit at 2^53, Go's strict struct tags, and Ruby's symbolize_names security concern are real production pitfalls. Here's the JSON parsing edge cases in each major language and how they cause bugs at API boundaries.

Jun 10, 2026
JWT Token Refresh Strategies: Access Tokens, Refresh Rotation, and When Sessions Beat JWTs

JWT Token Refresh Strategies: Access Tokens, Refresh Rotation, and When Sessions Beat JWTs

Short-lived access tokens require a refresh mechanism β€” and how you implement that mechanism determines your app's security and user experience. Here's refresh token rotation, silent refresh in SPAs, theft detection via refresh token families, and the cases where server-side sessions are simpler and safer.

Jun 13, 2026
SMS and TOTP Can Both Be Phished in Real Time β€” Here's Which MFA Methods Are Actually Phishing-Resistant

SMS and TOTP Can Both Be Phished in Real Time β€” Here's Which MFA Methods Are Actually Phishing-Resistant

SMS OTP and TOTP are both vulnerable to real-time phishing (AiTM attacks relay codes before they expire) β€” hardware keys and passkeys are phishing-resistant because their response is cryptographically bound to the exact URL. Here's the MFA security spectrum from SMS to passkeys, the MFA fatigue (push bombing) attack that compromised Uber in 2022, why number matching prevents rubber-stamping push notifications, and why security questions aren't a genuine second factor.

Jul 10, 2026
Why JSON Doesn't Allow Comments β€” and the JSON5/JSONC Variants That Do (and Why They Break Standard Parsers)

Why JSON Doesn't Allow Comments β€” and the JSON5/JSONC Variants That Do (and Why They Break Standard Parsers)

JSON5 and JSONC add comments and trailing commas to JSON β€” and if you've ever tried to add a // comment to a tsconfig.json and wondered why VS Code allows it but JSON.parse() doesn't, you've encountered the JSON variant ecosystem. Here's why JSON has no comments by design, the three overlapping "JSON with comments" specifications, why standard parsers reject JSONC content, and the preprocessing approaches for handling these variants in automation.

Jun 23, 2026
bcrypt Work Factors Double With Each Increment β€” Here's How to Choose the Right One and Upgrade Existing Hashes

bcrypt Work Factors Double With Each Increment β€” Here's How to Choose the Right One and Upgrade Existing Hashes

bcrypt's work factor doubles hashing time for every increment β€” work factor 10 is ~100ms, work factor 12 is ~400ms, work factor 14 is ~1.6 seconds. This exponential relationship is the design feature, not a side effect: when hardware gets faster, incrementing the work factor by 1 restores the original time cost. Here's how to choose the right factor, the opportunistic re-hash strategy for upgrading existing hashes without forcing logout, and how to read the work factor from a stored bcrypt hash string.

Jun 22, 2026
HTML Encoding Doesn't Stop XSS in JavaScript Context β€” Why CSP Nonces Are the Missing Second Layer

HTML Encoding Doesn't Stop XSS in JavaScript Context β€” Why CSP Nonces Are the Missing Second Layer

HTML encoding converts < to &lt; β€” but it can't protect against XSS in JavaScript contexts, where the browser parses script blocks before HTML encoding applies. Content Security Policy blocks injected scripts at the browser level, using nonces (random per-request values) or hashes to allow only legitimate inline scripts. Here's why both layers are required, how CSP nonces work, and what violation reports reveal about attacker probing.

Jul 8, 2026