Changelog
What changed and when. Fixes say what was actually wrong rather than only that something was corrected, because if a tool gave you a bad number last week you should be able to find out. Jump to tools and fixes or policy and disclosures.
Tools and fixes · Policy and disclosures
Tools and fixes
Calculators, pages, and behavior visitors use. Newest first.
The trust page no longer says OCR needs a server
· Fix · How we build tools
The page said optical character recognition on a scanned document cannot be done in a browser. Browser OCR exists; we have not taken a capable engine into the JavaScript budget. The sentence now says that, and still says a model too large to download needs a server.
About now matches the homepage on how a cluster ships
· Fix · About
About said a cluster ships complete rather than one tool at a time. The homepage already said a cluster ships with its anchor tool first, which is the policy the site follows. About now uses that sentence.
JSON formatter meta description names RFC citations
· Change · JSON formatter
The title already cites the RFC section for each rewrite. The meta description only mentioned parse failures. It now names RFC citations for lossy rewrites and still names line and column on parse failure. The title is unchanged.
Sibling pages no longer call the strength checker an entropy checker
· Fix · Password strength
The page headline moved to Password strength checker. Links from the password generator, passphrase generator, hash generator, and developer hub still said entropy checker. They now use the same name as the headline.
How we build tools names two pages to run the network-tab check on
· Change · How we build tools
The trust page described the offline test and did not send you to a tool. It now points at the JSON paste-safety and password-generator-safety articles, and at the two tools those articles send you to.
The lead now opens with the Facebook example the title already uses
· Change · Why UTM names split your reports
The title names Facebook and facebook. The lead used to start with the general exact-string rule. It now opens with those three spellings so the tab title, headline, and first sentence agree.
Homepage names who maintains the tools and how offline is tested
· Change · The site
The homepage explained why another tools site exists and what is coming, and did not name the maintainer or point at How we build tools from that page. It now names Aaron Wilson, links that page for the load-qualified offline test, and points at three articles that show the same rule in different jobs.
A 10 by 10 by 4 slab is worked on the page, with refusals
· Change · Concrete calculator
The calculator stated yields and overage without walking one store-bought job. It now shows 1.235 cubic yards and 56 bags of QUIKRETE 1101 at 80 lb for a 10 by 10 by 4 inch slab, names leftover because counts round up, and lists footings, circles, and ready-mix as out of scope.
Fair-pick shows a three-name round and refuses a wheel
· Change · Name picker
The picker described no-repeat rounds without a worked call sequence. It now walks Avery, Jordan, and Sam through one round, states it is not a spinning wheel, and points at the Wheel of Names alternatives article. Delete saved list is documented as the shared list used by groups and seats.
January 31 plus one month is worked, with the span explainers linked
· Change · Date calculator
Constrain overflow lived in the how-we-count box. The supporting copy now walks January 31 plus one month to February 28 or 29, notes the reverse trip is not a round trip, and links Does the end date count and What 5 to 7 business days means from both this page and days between dates.
An 85 with a 30 percent final toward a 90 is worked on the page
· Change · Final grade calculator
The algebra was published without a store-bought input set. Enter 85, 30, and 90 and the required score is 101.67 percent, the ceiling is 89.5, and the floor if you skip is 59.5. The title is one phrase, Final Grade Calculator: What Do I Need, instead of two stacked labels, and it fits the 60-character document-title cap.
Duplicate source and fragment tags have pasteable examples
· Change · UTM validator
Duplicate keys and fragment placement were described. The page now gives two URLs to paste: one with two utm_source values, and one with the tags after the hash, which a browser will not send.
URL encoder and base64 walk one string each, and headlines match the titles
· Change · Developer tools
The URL encoder now works hello world/foo?x=1 through component, form-body, and encodeURI side by side. Base64 works >>> as Pj4+ versus Pj4- and an unsigned JWT with algorithm none. The JSON formatter headline now matches its RFC title while the lead still names line and column parse failure. Password strength, GPA, UTM naming, and flooring waste headlines no longer contradict their titles.
GPA calculator title no longer implies weighted-only
· Change · GPA calculator
The title and headline said weighted GPA even though the page already computes weighted and unweighted side by side. They now name both, and the calculator links the GPA scale article for the letter-to-points table.
Cached preview copy no longer says only a debugger can refresh it
· Fix · Metadata and Open Graph generator
The page said a stored card would keep serving until someone ran that platform's debugger. Cache lifetimes and refresh options differ, and some caches expire without a debugger. The copy now says platforms may reuse cached metadata, to consult the platform's documentation or debugger where available, and that this page cannot refresh a platform cache.
The worked title now flags only the Facebook card
· Fix · Metadata and Open Graph generator
The example used a 75-character title and said X would cut it while LinkedIn and Facebook might keep it. LinkedIn and X share a 70-character budget and Facebook uses 65, so all three cards noted truncation. The example is now 66 characters: only Facebook notes it. LinkedIn, X, and Slack stay quiet. The four titles still share one two-line clamp.
Local cards show truncation, not a live platform cache
· Change · Metadata and Open Graph generator
The page said the four previews were approximate and did not fetch the destination, then stopped. It now walks a too-long title across those cards, names the fetches and cache purges it will not perform, and points at the explainer for a preview that stays wrong after the tags are right.
Inspect names Nil and Max instead of decoding them as versions
· Change · UUID generator
Nil and Max were mentioned as exceptions. The page now tells you to paste both RFC 9562 sentinels and what the inspect panel must print, and it lists version 1, 2, 3, and 5 as missing on purpose rather than only refusing version 1 in one sentence.
Chain shows every step, and a share link can be a recipe with no paste
· Change · Tool chain
Each step now prints its full output, the specification or behavior it implements, and any diagnostic. Reorder and remove buttons name the step they act on. Copy final output copies only the last panel and stays off when there is no answer. A share link with steps and no paste omits the in key, so a recipient gets the recipe and supplies their own text; typing then deleting restores the empty string, which is a different state.
Password strength checker shows both numbers and which one applies
· Change · Password strength
The page now scores a typed password two ways: how guessable it is, and what a password of the same shape would be worth if a generator had made it. A radio says which figure applies to you. Score a shape estimates length and character classes with no password typed. Crack times name the scenario and the guess rate, and they use the full search space.
URL encoder names each encode set and decodes with a pass ceiling
· Change · URL encode
Encode still shows encodeURI, encodeURIComponent and form-urlencoded, now with the set name beside each row and a one-line note that the first of those three is not a WHATWG set. Decode is one row, with both plus readings labeled, recursive decode up to 16 passes, and a notice when the input already contains a percent-escape. Per-line and LF or CRLF rewrite the input before encoding. A malformed escape or a lone surrogate clears the result instead of leaving the previous answer on screen.
JSON formatter names the error line with a caret, and Format is a mode
· Change · JSON formatter
When a document does not parse, the page names the line and the column, reprints that line, and points a caret at the character. Jump to error moves the caret there. Format, minify, and sort keys are a mode selector; the pane updates as you type. Sort keys orders top-level keys only. You can open a .json or .txt file up to 5 MB. Validate against RFC 8259 or RFC 4627. Tree view collapses containers deeper than two.
UUID generator inspects a pasted value and formats a batch without redrawing it
· Change · UUID generator
Paste a UUID to see its version, variant nibble, RFC 9562 section, and for version 7 the timestamp in UTC and local time. Uppercase, braces, hyphens, and the batch separator re-format the current batch without drawing new identifiers. Count goes to 1000. Version 1 is not offered because it embeds a MAC address.
Passphrase generator now publishes its list and prints checkable arithmetic
· Change · Passphrase generator
The wordlist is a 2,048-word subset of EFF's large list, published at /dev/wordlist-2048.txt with the rule that produced it. Word count now goes to 24. The separator is free text. Bits, the arithmetic line, and a crack-time at 100 billion guesses a second recompute as you change settings; Generate is what draws a new phrase. A trailing digit is worth 3.32 bits, not 3.3.
HMAC keys accept hex and base64, and an expected digest can be verified
· Fix · Hash generator
The HMAC key field only accepted UTF-8, so published RFC 4231 test vectors could not be entered as the RFCs write them. Key and message now each have a UTF-8, hex, or base64 encoding. An expected-value field reports Match or No match against the rendered digest. A self-test panel on the page runs the published vectors with a citation. Typing then deleting now shows the empty-string digests; Clear still returns the page to an empty output.
Print CSS blanked most pages, home cards broke the flat-panel rule, and one published contrast ratio was wrong
· Fix · The site
A school-tool print rule hid every element on body sitewide, so printing from roughly fifty non-school pages produced a blank sheet. It now applies only on pages that carry a school result pane. Homepage cluster cards dropped a hover box-shadow that violated the flat-panel rule. The accent-colors article now derives its published hex-pair ratios at build time with the same WCAG function the contrast tools use, so a mistyped ratio cannot ship again. Only /privacy and /how-we-build-tools moved their updated dates, to 2026-08-20 when the offline photograph shipped.
We published claims about other products that we cannot back up
· Fix · The site
Three places on this site said or implied that no competing tool does something. We have no way to check that from inside our own product, and at least one of those claims was wrong: chained client-side tools have existed for years elsewhere (GCHQ CyberChef among them). The tool chain description and the contrast checker description now say what our pages do and stop there. A search entry that promised building a palette from an image was removed, because the page has no image input and never did. The 14 August 2026 developer-cluster entry still contains one of these claims, in the sentence beginning "Nothing else in this category offers that". It is left as written because this log is a record of what we said at the time, and quietly rewriting it would be worse than leaving it visible next to its withdrawal band. Treat that sentence as withdrawn.
Date calculator is live
· New · Date and time tools
The date calculator adds or subtracts days, weeks, months, or years from one start date, discloses constrain overflow and years-then-months-then-days order, exposes a February 29 toggle, and reuses weekend-only business days with custom holidays.
Days between dates calculator is live
· New · Date and time tools
The days-between-dates tool counts calendar spans with exclusive default and an include-end-date toggle, shows year-month-day and total week breakdowns, optional business days with custom holidays only, and a how-we-count panel in the served HTML. The shared dates engine uses integer calendar triples rather than Date or Temporal.
Flooring waste factor article is live
· New · Home project tools
The how-much-waste-to-add article publishes Cavalieri layout ranges, states that the 2025 NWFA Installation Guidelines contain no waste percentage, and links to the flooring calculator for box arithmetic.
Mulch and flooring calculators are live
· New · Home project tools
The mulch calculator treats depth as the variable with Extension guidance cited, shows thirteen point five versus fourteen bags distinctly, and renders a two through four inch depth series. The flooring calculator sums up to ten room areas, applies Cavalieri layout waste presets, prints leftover on every result, and lists the full waste taxonomy in one table.
The home hub and concrete calculator are live
· New · Home project tools
The /home/ hub opens with the concrete calculator: slab length, width, and thickness drive cubic yards and QUIKRETE bag counts, a thickness series table lists three through six inch pours with forty, sixty, and eighty pound yields, optional overage is labeled as trade convention, and share links keep dimensions in the URL fragment only.
Time zone meeting planner opens the dates cluster
· New · Date tools
BNV-LR-24 is closed: the meeting planner moves forward under /dates/, and the typing-speed test stays deferred. The planner builds a multi-city day grid with work-hour overlap, applies daylight saving from IANA zones in the browser, and shares the plan in the URL fragment.
Final-grade, GPA, and classroom mode
· New · School tools
The final-grade calculator always shows the required score, the maximum still achievable, and the floor if the final is skipped, plus a multi-target table. The GPA calculator shows weighted and unweighted results together with editable bumps, a stated rounding rule, and an explicit F-in-weighted-course policy. Both keep grades in the browser and in the URL fragment only. Classroom list tools gain Classroom mode (hide chrome, enlarge the board, Escape to exit), group-by-size, a front-of-room seating label, duplicate notices, print on every mode, and shareable group or column settings.
Fair-pick claims, ad-free school pages, and a Wheel of Names comparison
· Fix · School tools
The name picker answer said a round reset only when the list was exhausted, which was false once editing cleared the round. School tool pages no longer reserve an advertising slot under the result. The picker now shows already-called and waiting names with a reset control, supporting copy differs per tool, and a Wheel of Names alternatives article states their real strengths before contrasting third-party load and fair-pick behavior.
Classroom tools: fair name picker, groups, and seating chart
· New · School tools
One browser-local class list drives a no-repeat name picker, balanced groups, and a printable classroom seating chart. Saving is optional with a visible delete control. Share links keep names in the fragment.
Benchvale launches with color, developer, and marketing tools
· New · The site
Three clusters go live together: the palette contrast grid and the rest of the color tools, the developer set including the tool chain, and the marketing set for campaign URLs, metadata, and slugs. School followed the same day once the classroom foundation was gated. The trust pages, the privacy policy and this changelog go up at the same time rather than being added once there was traffic to justify them. Search indexing is open; advertising is not configured yet and will land after AdSense approval.
The developer cluster, and the tools can be chained
· New · Developer tools
Withdrawn August 20, 2026. The sentence beginning "Nothing else in this category offers that" is withdrawn. GCHQ's CyberChef has chained client-side operations for years, at a much larger operation count. PRODUCT.md and BNV-LR-39 record the refutation. The rest of this entry stands.
Ten tools and an article: JSON, diffs, base64, URL encoding, UUIDs, hashes, passwords and passphrases. The one worth pointing at is the tool chain, which runs several of them in sequence on a single paste. Nothing else in this category offers that, because chaining on a hosted tool site means uploading the intermediate result at every step.
Campaign URL tools without an account
· New · Marketing tools
Builder, validator, naming-consistency checker, metadata and Open Graph, and slugs. Structural validation stays separate from naming consistency. Nothing is uploaded.
Registry and hub cards match UUID v7, HMAC, and four-platform previews
· Change · Developer hub, marketing Open Graph generator
Search terms, intents, and hub differentiators for the UUID, hash, contrast, JSON, and Open Graph tools now describe the shipped features, so local search and hub cards no longer advertise the older versions of those pages.
P1 follow-ups: clearer controls and accurate hub copy
· Change · Developer hub, JSON formatter, contrast grid, hash generator, Open Graph generator
The developer hub now names UUID v7 and hash HMAC/file modes. Jump to error stays visible with a reason when disabled. Separate contrast lists scroll the summary into view. HMAC refuses an empty key and can show the key. Open Graph previews note likely truncation per platform.
Graphics-only colors are now named in the summary
· Change · Contrast grid
A color that can reach 3:1 against some partner and never 4.5:1 against any is the usual palette mistake. The summary listed pass fractions. It now also lists those color names, so the graphic-versus-text flag is a list rather than only a mode switch. The palette generator can send the current palette to the grid in one step.
A finished URL now hands off to the validator and the naming checker
· Change · UTM builder
The builder linked to those tools as empty pages. The result now rides in the fragment, the same way developer tools chain a paste, so you do not retype a campaign URL to check it.
Why Facebook and facebook split campaign reports
· New · Marketing tools
A supporting article for the naming-consistency checker. Campaign parameters are exact strings, so Facebook and facebook become two sources. The page explains that as the data model rather than a product bug, then hands the reader to the local checker.
The control strip counted Vite as page JavaScript
· Fix · The site
On the dev server the script patch summed every resource with initiatorType script, including the Vite client, HMR, and dependency pre-bundles. That reported hundreds of KB against a 100 KB published budget. Those internals are excluded, and the patch says when the figure is a dev-server measurement rather than the budget the production build enforces.
Control+Enter runs Format and Generate
· Change · Developer tools
The cluster had no keyboard shortcuts. Format on the JSON formatter and Generate on the UUID, password, and passphrase tools now run from Control+Enter, or Command+Enter on a Mac, when focus is inside the tool. Space is left alone so it still scrolls the page.
Form fields that had no type attribute were shipping unstyled
· Fix · The site
The stylesheet only matched input[type=text] and input[type=url]. Bare inputs, password fields, and search fields fell through to the browser default: 21px tall, Arial, under the WCAG 2.5.8 24px floor. The UTM builder, Open Graph generator, password strength checker, and site search results page were the ones hit. They now use the same control styles as every other field.
Empty ad reservations and a buried tool on phones
· Fix · The site
Every tool page reserved a 280px dashed box for advertising that is not configured yet, which read as a broken layout. The slot stays out of the page until a publisher id is set. On phones the first tool control also sat around 600px down the page; the header, answer block, and a 520px tool min-height are tightened under 700px so the control is reachable sooner.
Lock buttons failed contrast on mid-tone swatches
· Fix · Palette generator
A single muted border cannot hold 3:1 against every generated color. Lock controls now use a light-and-dark dual ring so the control boundary stays visible on both dark and light swatches, and the tap target is at least 28px.
Policy and disclosures
Privacy, analytics, and disclosure notes. Newest first. These stay in the log because it is a record of what we said at the time.
Privacy describes Google Analytics 4 before any tag is installed
· Policy · Privacy
The analytics section still states that no analytics script is installed today, and still invites you to search the source for a tag. It now also names Google Analytics 4 and Google Funding Choices as what will be installed, states that GA4 is not cookieless, sets retention at 14 months, states Google signals off as a deliberate choice, lists the hosts the tag will contact, and keeps the hash-fragment tool promise central. Nothing about collection uses present tense until a later changelog entry records that the tag is live. No analytics tag ships in this change.
The privacy page stopped naming an analytics product it does not run
· Policy · The site
The analytics section said there was none installed, which was accurate, and then promised that when analytics arrived it would be a named product that is cookieless and needs no consent banner. The plan for which product to use has since changed, so that promise was one we had decided not to keep. The section now describes only what is true today, no analytics script loads on any page and no page-view is reported, and commits to describing whatever is chosen here, in the present tense, before it goes live rather than after.
An AdSense application was submitted, and the site now publishes ads.txt
· Policy · The site
No ads run and no advertising code loads. Applying requires proving we own the domain, so the site now serves an ads.txt file naming Google as an authorized seller and carries an ownership verification tag in every page source. Neither loads a script, makes a request, or shows anything to a reader, and the reserved ad area stays absent from every page until ads actually serve. If the application is approved, the privacy page is rewritten before the first ad runs.
If analytics ever arrives, it will not see your tool state
· Policy · The site
There is still no analytics on this site. The install is built and switched off, and it is written so that the part of the URL after the hash, where every tool keeps its shareable state, is stripped before anything is reported. The build now runs a check with analytics forced on, opens every page at a URL that already carries tool state, and fails if any of it leaves the page. That check was written before a vendor was installed rather than after, because afterwards the failure would be silent.
The offline claim is enforced by the build
· Policy · The site
Every build now loads each page in a real browser, types a marker into every field, clicks every button, and fails if any page makes an unexpected network request or if that marker appears in one. The claim that nothing you type leaves your browser stops depending on anyone remembering it.
Found something wrong?
Tell us. Fixes land here with the date, so you can check whether a report was acted on without waiting for a reply.
What counts as a change worth listing
Anything that could change a number you relied on, plus new tools and corrections to the method behind one. Cosmetic work does not get an entry. The rules for what gets published and how it gets corrected are in the editorial policy, and the calculation methods themselves are documented in how we build tools. The tools currently live across 6 clusters: Color tools , Developer tools , Marketing tools , School tools , Date and time tools , and Home project tools .
Last updated . Only changed when something material changed, which is why some of these dates are old.