About these tools

Small utilities, each doing one thing properly, built as plain static pages with no frameworks, no dependencies and no build step — and every calculation done on your own device.

What this is

This is a collection of self-contained browser tools: a JSON formatter and validator, a cron expression generator, an aspect ratio calculator, a Unix timestamp converter, a date-difference and countdown calculator, a WCAG contrast checker, and a regex cookbook with a live tester.

The first five were originally published on separate domains and have been consolidated onto one, served as paths under a single origin. Each tool keeps its own design, its own accent colour and its own supporting pages — they are siblings, not a suite, and none of them depends on any other. This page and the hub simply sit above them.

Each tool also carries real reference material alongside the calculator itself: how the underlying formula or syntax actually works, worked examples, the mistakes people reliably make, and honest notes on what the tool cannot tell you. The aim is that you can arrive for a number and leave understanding why it is that number.

Why it exists

Every one of these tools was written because the existing options were frustrating to use. Search for a cron expression explainer or a contrast checker and you will typically land on a page where the tool itself is the smallest thing on it: a megabyte or two of framework, a wait before anything is usable, an account prompt, and then about fifteen lines of arithmetic — frequently done on a server, with whatever you typed sent off so that the answer can be sent back. The calculation is the small part. Everything else is overhead.

The premise here is that a utility of this size should be effectively instantaneous, should work the first time without any interaction beyond typing your input, and should be able to divide two numbers without your input ever leaving the page. That is not a hard technical problem — it is a question of what you are willing to put on the page.

There is a second, more selfish reason. Sites built this way are close to maintenance-free. There is no dependency tree to patch, no framework major version to migrate, no build that stops working when a toolchain moves on. A page written this way still works in five years without anyone touching it.

How they are built

The technical rules are deliberately strict, and they are the same for every tool here:

  • Vanilla HTML, CSS and JavaScript. No framework, no bundler, no build step, no package manager, no node_modules. What is written is what is served. If something looks like it needs a library, the thirty lines get written by hand instead.
  • Nothing a tool needs comes from anywhere else. Every tool ships its own HTML, CSS and JavaScript from this one origin — no CDN framework, no web font to download, no remote images of its own, no API to call. Fonts come from the system font stack; icons and favicons are inline SVG or data: URIs.
  • All computation client-side. There is no backend and no API. The cron parser, the luminance maths, the timezone handling and the date arithmetic all run in your browser, on your device — and what you type into them is never uploaded.
  • Static assets only. Nothing is rendered on demand, so there is no server-side state, no session and nothing to log in to.
  • Accessible and responsive by default. Semantic HTML, real labels, visible focus indicators, keyboard operability, and colour pairs checked against WCAG contrast thresholds in both light and dark mode. It would be a poor look to fail that on a site that hosts a contrast checker.

The practical consequence of all this is that once a page has loaded, the tool on it is genuinely self-sufficient. Lose your connection and it keeps working. Save it to disk and open it as a local file and it still works. That is not a feature that was added; it is what is left over when you do not add anything else.

The one deliberate exception to “nothing is stored” is the timestamp converter, which remembers your chosen timezone and your seconds-versus-milliseconds preference in your browser’s local storage so you do not have to set them on every visit. That data stays on your device. The privacy page covers this in full.

Who these are for

Mostly for developers, sysadmins, designers and anyone else who hits one of these questions in the middle of doing something else and wants an answer without a detour:

  • Someone writing a crontab entry who wants to be certain it fires when they think it does, before it silently does not.
  • A video editor or front-end developer working out what height goes with a given width at a given ratio, or which standard resolution is closest.
  • Anyone staring at a ten-digit number in a log file and wanting to know what time it represents in their own timezone.
  • People planning around a date, or wanting a live countdown that does not go stale the moment the event passes.
  • Designers and accessibility reviewers who need an exact contrast ratio and a defensible pass or fail, not an opinion.

No account is needed, nothing is behind a paywall, and there is no upsell — because there is nothing to upsell.

Being straight about a few things

This is an independent project, not a product. There is no company behind it, no support contract and no service-level promise. The tools carry no certification and no formal endorsement from any standards body — the contrast checker implements the published WCAG formula, but implementing a specification is not the same as being accredited against it.

The tools are tested and believed correct, and each one explains its own method so you can check the reasoning rather than take it on trust. They are still offered as-is: for anything with real consequences, verify the result before relying on it. If you find something wrong, get in touch — a concrete bug report with an input that reproduces it is genuinely useful.

There are currently no ads and no analytics anywhere on these pages. That may change: advertising or analytics could be added later to cover hosting costs. If it happens, the privacy policy will be updated to describe exactly what was added before it goes live, and the core commitment stays put — what you type into these tools is processed in your browser and is not sent anywhere.