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
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.
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.
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.
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.
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.
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.
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.
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.
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.
HTML Encoding Doesn't Stop XSS in JavaScript Context β Why CSP Nonces Are the Missing Second Layer
HTML encoding converts < to < β 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.