37 developer & SEO tools that run in your browser
Format, convert, generate and analyse — instantly. No accounts, no uploads, no rate limits. Your data never leaves your device.
Developer tools
23 toolsFormatters, converters, encoders and generators. Everything runs in your browser — nothing is uploaded.
JSON Formatter & Validator
Pretty-print, minify and validate JSON with precise error positions.
JSON to CSV Converter
Convert JSON arrays to CSV and back, with nested keys flattened.
YAML to JSON Converter
Convert between YAML and JSON in either direction.
XML Formatter
Indent and tidy XML, or collapse it to one line.
Base64 Encoder & Decoder
Encode text to Base64 or decode it back, with full Unicode support.
URL Encoder & Decoder
Percent-encode and decode URLs, full strings or single components.
JWT Decoder
Inspect a JSON Web Token's header, payload and expiry.
UUID Generator
Generate cryptographically random v4 UUIDs in bulk.
Regex Tester
Test regular expressions with live match highlighting and groups.
Cron Expression Generator
Build a cron schedule and read it back in plain English.
Unix Timestamp Converter
Convert epoch timestamps to dates and back, in any timezone.
SQL Formatter
Format SQL queries for readability across several dialects.
HTML Formatter
Indent messy HTML, or minify it for production.
CSS & JS Minifier
Strip comments and whitespace from CSS and JavaScript.
Markdown to HTML Converter
Convert Markdown to HTML and back, with a live preview.
.env File Generator
Build a .env file and generate a safe .env.example alongside it.
Color Converter
Convert between HEX, RGB, HSL and check contrast ratios.
Hash Generator
Generate SHA-1, SHA-256, SHA-384 and SHA-512 hashes.
QR Code Generator
Create a customisable QR code and download it as PNG or SVG.
Password Generator
Generate strong random passwords and passphrases.
Diff Checker
Compare two texts side by side with line-level highlighting.
Lorem Ipsum Generator
Generate placeholder paragraphs, sentences or words.
Text Case Converter
Convert text between camelCase, snake_case, kebab-case and more.
SEO & content tools
10 toolsWrite better metadata, audit your copy and build tagged links, without leaving the page.
Meta Tag Generator & SERP Preview
Write titles and descriptions with a live Google preview.
Open Graph Tag Generator
Build OG and Twitter Card tags with a social preview.
Schema Markup Generator
Generate JSON-LD structured data for common page types.
Robots.txt Generator
Build a robots.txt with per-crawler rules and sitemap entries.
UTM Link Builder
Build tagged campaign URLs with consistent parameters.
Keyword Density Checker
Analyse term frequency and spot over-optimisation.
Readability Checker
Score your writing and highlight hard sentences inline.
Word & Character Counter
Count words, characters, sentences and reading time live.
Hashtag Generator
Turn keywords into formatted hashtags for each platform.
URL Slug Generator
Turn titles into clean, URL-safe slugs.
Bulk & image tools
4 toolsBatch-process files locally. Drop in twenty images and download the results as a zip.
Bulk Image Compressor
Compress and resize many images at once, entirely offline.
Bulk Image Converter
Convert images between PNG, JPEG, WebP and AVIF in batches.
Favicon Generator
Turn one image into every favicon size, plus the HTML.
Bulk QR Code Generator
Generate hundreds of QR codes from a list and download as a zip.
From the blog
All articles →Working notes on search, performance and developer tooling.
How Long It Actually Takes to Crack a Password
The answer depends far more on which hashing algorithm protects the password than on how many symbols it contains. Here is the actual math, worked through for both.
JSON vs JavaScript Objects: Where the Differences Actually Bite
JSON looks like a JavaScript object literal, so people assume they behave identically. Undefined, dates, key order and duplicate keys all say otherwise.
Are QR Codes Safe? What "Quishing" Actually Looks Like
A QR code is just a wrapper around a URL, with no way to preview the destination before you scan. That single gap is the entire attack, and it has a name now.