Skip to content
I Hate Online Tools
← All tools

Developer

JSON, regex, hashes, JWT, YAML/XML, minify, cron, colours, gitignore, SQL, SVG tidy, and a CORS-bound API client—developer utilities that stay in the tab.

Runs in your browser · Nothing uploaded

About Developer

Developer paste sites love accounts. This category is the jobs you do with configs, tokens, and snippets: format JSON, test a regex, hash a file, decode a JWT, convert YAML or XML, minify HTML/CSS/JS, explain cron, check contrast, assemble a gitignore, pretty-print SQL, tidy an SVG, or hit a public API from the browser.

The API tester is honest about CORS: browser fetch can only read APIs that allow it. Citation-style network honesty applies here too—no pretend “works with every API from a static site.”

Gitignore templates are baked at build time so the tool still works with wifi off after load. Image Base64 still lives under Convert; Base64 text here is for strings.

Tools in this category

.gitignore generator

Gitignore generator combines baked official templates and custom patterns into a downloadable .gitignore.

Email validator

Email validator checks format and common domain typos for one address or a list. Not deliverability.

SQL formatter

SQL formatter pretty-prints with sql-formatter in the browser and a dialect picker.

SVG optimizer

SVG optimizer strips fluff locally and downloads a smaller SVG. Related to SVG convert under Convert.

REST / API client

REST / API client sends fetch from your browser, shows the response, stores history locally, and documents CORS limits.

JSON formatter

JSON formatter pretty-prints, minifies, and validates. When the input is invalid, you get a line and column, not a generic failure. It won't fetch a URL for you. Paste the document.

JSON ↔ CSV

JSON ↔ CSV turns an array of objects into CSV and back. Nested objects become a mess; flatten first if you care about columns.

Regex tester

Regex tester highlights matches and capture groups live. A worker timeout stops a catastrophic pattern from freezing the UI thread.

URL encode / decode

URL encode / decode percent-encodes or decodes a component, including Unicode. Use it for query values, not for inventing a whole URL layout.

Base64 text

Base64 text encodes or decodes strings, not files. For an actual image, use Image to Base64 under Convert.

Hash generator

Hash generator computes SHA-256 and SHA-1 via Web Crypto, plus optional WordPress phpass for offline DB password hashes.

Number base converter

Number base converter syncs binary, octal, decimal, hex, ASCII bytes, and arbitrary bases 2–36 with BigInt.

Unix timestamp converter

Unix timestamp converter does seconds/ms auto-detect, timezone display, batch paste, and relative time — all in the tab.

UUID generator

UUID generator mints version-4 UUIDs via crypto.randomUUID. Random IDs, not sequential database keys.

JWT decoder

JWT decoder splits a token and pretty-prints the header and payload. It does not verify signatures or fetch JWKS.

File hash

File hash computes SHA-256 and SHA-1 of a dropped file via Web Crypto. Bytes stay on your machine.

YAML ↔ JSON

YAML ↔ JSON converts configs both ways with js-yaml locally. Exotic YAML tags may not round-trip.

XML ↔ JSON

XML ↔ JSON uses DOMParser in the tab. Namespaces and mixed content can be lossy on a round trip.

Minify / beautify

Minify / beautify pretty-prints or shrinks HTML, CSS, and JavaScript here. Not TypeScript; broken syntax returns an error.

Cron parser

Cron parser turns a five- or six-field expression into plain English. Explain-only; it won't compute next run times.

Color converter

Color converter translates HEX, RGB, HSL, and CMYK with a live swatch. CMYK is math from RGB, not a press ICC profile.

Contrast checker

Contrast checker reports the WCAG ratio for two colors and AA/AAA pass or fail. Opaque sRGB only.

Chmod calculator

chmod calculator toggles rwx bits and shows octal and symbolic modes side by side. Three-digit modes only, no ACLs.

Subnet / CIDR calculator

Subnet calculator gives the network address, mask, broadcast, and usable hosts for an IPv4 CIDR. IPv4 only.

robots.txt generator

robots.txt generator writes allow/disallow rules and an optional sitemap line. It is a text file you host; it cannot enforce access control.

sitemap.xml generator

Sitemap generator turns a list of URLs into a basic sitemap.xml. It does not discover pages or submit anything to search engines.

PWA manifest generator

Manifest generator writes a PWA manifest.json skeleton with name, colours, display mode, and icon placeholders. It does not resize icons.

llms.txt generator

llms.txt generator drafts an llms.txt listing key pages. It is an optional convention, not a ranking promise.

JSON to TypeScript

JSON to TypeScript infers interfaces from one JSON sample. The types are a best-effort starting point, not a validator.

curl to fetch

curl to fetch converts common curl flags into a fetch() call. It does not run the request and does not support every curl flag.

Keyboard tester

Keyboard tester lights up keys as you press them and shows key, code, and modifier values. The OS may swallow some combinations before the browser sees them.

Gamepad tester

Gamepad tester shows button and axis values from a connected controller. Press a button first so the browser reports the device.

HTTP status codes

HTTP status codes is a searchable reference with short meanings and the common unofficial codes marked. It is a reminder, not the RFC.

Keep screen awake

Keep awake asks the browser for a screen wake lock while the tab is visible. It keeps the screen on, not the whole system, and needs Wake Lock support.

Meta tags generator

Meta tags generator turns a short form into title, description, Open Graph, and Twitter card tags. It does not check that your image URL loads.

Mermaid diagram viewer

Mermaid viewer renders diagram text as you type and exports SVG. Syntax follows the Mermaid version bundled with the site.

Common questions

Does the API client proxy through your server?

No. Requests go from your browser to the URL you enter. CORS is enforced by the browser.

Does the JSON formatter send my payload to a linter API?

No. Parse and pretty-print run in the tab. If the JSON is a production config or a customer export, that's why this page exists instead of a pastebin.

Are gitignore templates live from GitHub?

No. They are baked into static JSON when the site builds.

Does email validation prove an inbox exists?

No. Format and typo hints only.

Why these tools don't upload your files

There is no server to upload to. Each page is a static file, and the work happens in your browser. Your file is read from disk into memory, processed, and handed back as a download. Once the page has loaded you can disconnect from the network and it keeps working. The longer explanation

Install the app