Live match highlighting, numbered and named groups, replacement preview.
All seven, one page
Toolbox
Rows open in place and mount only when you open them. Under every tool sits a short note on how to use it, what it assumes and where it breaks. Read the edge cases before you trust a result with something that matters.
Or press Ctrl K and type a name to jump to a row.
Validate with line and column errors, then format or minify.
Base64, Base64URL and percent-encoding, both directions, UTF-8 safe.
Hash text or a file with Web Crypto. Compare against a known digest.
Unix time to ISO 8601 and back, in seconds through nanoseconds.
Random v4 or time-ordered v7 identifiers, up to 100 at a time.
WCAG 2 contrast ratio with pass or fail for every level.
At a glance
| Tool | You give it | You get | Built on |
|---|---|---|---|
| Regex tester | A pattern, flags and a test string | Highlighted matches, groups, a replacement preview | The browser’s own RegExp |
| JSON formatter | JSON text | Formatted or minified output, or an error with line and column | A small strict scanner written for ntug |
| Base64 / URL encoder | Text or an encoded string | The other direction, as UTF-8 | TextEncoder, btoa, encodeURIComponent |
| SHA-256 hasher | Text or a file | A digest in hex or Base64 | crypto.subtle.digest, with a plain-JS fallback |
| Epoch converter | A number or a date string | The matching date or number, plus local time | Date and Intl |
| UUID maker | A version and a count | Identifiers, formatted the way you need | crypto.randomUUID, getRandomValues |
| Contrast checker | Two hex colours | A ratio and a pass or fail for each WCAG level | The WCAG 2 relative luminance formula |
Rules every tool follows
- Local only. Inputs are read by the page and nowhere else. There is nothing to upload to.
- Nothing is saved. Reload and your fields are empty again. The only thing ntug remembers is which tools you opened last, so it can list them first.
- Text means UTF-8. Where bytes matter, ntug encodes your text as UTF-8 first and says so.
- Bad input gets a sentence. Empty, malformed or out-of-range input produces a plain explanation, never a blank or a stack trace.
- Keyboard first. Every control is reachable with Tab, and Ctrl Enter copies the main output of whichever tool has focus.