📡 Get notified of new toolsRSS feed, no sign-up, no email harvesting.
Subscribe via RSS-
The most-used 200 tools get the palette inside the card Design
The shell went gold; the cards did not. Half the catalogue had the old cyan written into its own styles, so a BMI calculator opened on a gold page and painted itself green, blue and pink. This change takes the 50 most-used cards — BMI, mortgage, loan, compound interest, percentages, BMR, age, body fat, calories, currency, word count and the rest of the top sixty, minus the ones where colour is the tool.
Only colour literals were rewritten: every other byte of every card is identical, so structure, ids, handlers and layout cannot have moved. Cards with three or more sibling colours keep them distinguishable by rotating through the same four golds the accent picker offers; cards that paint a data ramp — BMI bands, risk scales — keep it, and their legend labels keep matching the stops they name. Contrast checkers, colour pickers and the light/physics toys were skipped entirely, because recolouring them would break what they do. Tests: 50/50 cards pass, zero console errors, and the card CSS still cannot restyle the host shell.
The rollout runs in batches, most-used first — a card nobody opens can wait behind the ones everybody does. 200 of 1,424 are done (the first fifty, then the next hundred and fifty, which also finished the top fifty where a bright
#ffcc00had survived the first pass). The periodic table's category tiles and the anatomy explorer's body-system chips are exempt with the data ramps: there the hue is the key. -
One palette — black, gold and #555555 — and the page starts moving Design
The site now uses three values. Gold is split by job: bright
#ffd700is what you press, deep#d4af37is what you read.#555555is structure — every hairline, divider and socket; it is 2.71:1 on the page, so it never carries a letter and text climbs a grey ramp instead (body#d6d6d6, secondary#a3a3a3, muted#8a8a8a).Everything off-palette is gone from the chrome: six picker hues became four golds (bright, antique, champagne, bronze), six coloured page themes became three blacks (midnight, graphite, void), the cyan mark is now gold, and the error/success/pumpkin hues were folded into the palette. State is weight and shape now — a warning is a rule and a ⚠, a pass is a filled dot — so nothing means something by colour alone.
Motion. The interface assembles itself. The mark comes into focus, the wordmark is ruled in from the left, the promise rises behind a mask, the hero's scale runs one pass of ticks and stops, the command deck's corners close around the search field, and each category tile and shelf card arrives on its own 34 ms stagger with the section marker drawing its rule ahead of it. Hovering a tile draws a gold line along its bottom edge and lifts the icon a pixel; footer links rule themselves in; the sticky bar's gold rule draws the first time the bar appears. Nothing loops, nothing animates during scroll except compositor-only properties, and every effect is absent under reduced motion.
Cost:
home.cssis 18,094 B gzip against a ceiling raised on purpose to 18,800 B, paid for by cutting about 2 KB of prose from the same file first. No new request, no new font, no JavaScript for the motion. -
A darker, sharper home page — and the same page weight Design
Black, not dark grey. The page sits on a true-black canvas with a faint drafted grid, and every surface is a hairline rather than a shadow: 6 px corners, four corner ticks on each category tile, a milled socket behind each icon, and no lift on hover — the lines move, the boxes do not, so the grid stays dead still under the pointer.
The interface now speaks in two colours. Amber is what you read — counts, section numbers, the tool total. The accent is what you press, and it is still yours to change. Category counts and the shelf tags became mono readout stamps; the section markers went amber; the wordmark's Useful gained a ruled underline instead of a glow. The keyboard hints, jump tabs, chips and search field all lost their soft corners to match.
The rest of the catalogue follows: the shared list layer's corner radius, fields, facet chips and category tags use the same instrument corners, so a category hub or the A–Z index no longer looks like a different website.
The whole change fits inside the existing first-paint budget — 15,846 B gzip against a 15,900 B ceiling — because the prose in
home.csswas trimmed by 507 B to pay for the new rules. No new request, no new font, no JavaScript. Asset version 47. -
Consent Tech Watchlist — and the maker's name comes off the tools Content
New: a reference to the thirteen technologies that can be aimed at a person without their agreement — Bluetooth trackers, voice cloning, non-consensual deepfakes, venue face recognition, workplace and exam monitoring, DNA matching, data brokers, connected cars, smart meters and crowd counting. Each entry says what it can really do, how you would know it is there, and what helps; tick the contexts that apply and it builds a short brief you can copy. It marks its own claims: five of the thirteen are flagged as contested or overstated, so the scary version of a story can be argued down as well as up. Open the watchlist.
Alongside it, a tidy-up:
MrProphecy is the maker and the music; most of the catalogue has nothing to do with either. Sample values, placeholder text and storage keys that carried the name are gone, and the category it used to name is now plain Arcade.
- Arcade, not "MrProphecy Arcade". 29 games: board games, Sudoku, Scrabble scoring, map and flag quizzes — plus the rhythm, lyric and beat games that really are scored on the artist's tracks. Only that last group keeps the name in its title.
- The hub URL is unchanged.
categories/mrprophecy-arcade.htmlis pinned in the generators, because 29 tool pages, the sitemap and every inbound link already point at it. A cosmetic rename is not worth a 404. - Sample values cleaned. The Wi-Fi QR card, email-signature template, JWT sample token, JSON/YAML diff sample, hash-suite demo string and markdown example table no longer use the brand as filler, and a promotion inside the gas estimator is gone.
- Your saved data survives. Four tools stored lists under a branded key; each now reads that copy once, moves it to a plain key and carries on. Nothing you had saved is lost.
-
A Halloween band on the home page, for the season only Feature
The catalogue has had 22 Halloween tools and a guide since this morning; the home page had a category tile at the bottom of a long grid. For the three weeks around the 31st, the front page now opens with a dated band above the browse shelves: a direct link to all 22 tools, the guide, and four of the most-used ones in a row.
- Dated, not permanent. A small script in the head sets
data-seasonbefore the first paint: 10 October to 2 November shows the band, everything elsedisplay:none— no flash, no layout shift, and no out-of-season pumpkin in July. - Real links. The band is ordinary markup, so the two hub pages and the four tools are crawlable and the band still works with JavaScript switched off.
- Dismissible. The ✕ remembers the choice for that calendar year; next October it is a new band rather than a permanent setting. Dismissing moves focus to Start here instead of dropping it.
- Nothing else moved. The hero, the palette, the shelves and the category grid are unchanged; the Halloween tile picks up the same pumpkin hairline while the band is up.
- Free to review.
?season=halloweenand?season=offforce the band on or off without waiting for the calendar.
See it now: home page with the band · the 22 Halloween tools · the Halloween guide
- Dated, not permanent. A small script in the head sets
-
+12 more Halloween tools and a definitive Halloween guide Content
The first ten Halloween tools covered the night itself — routes, sweets, carving, fog, power, visibility. This second wave covers the things people actually search for in October: costume ideas, pumpkin stencils, face paint, party games, trivia, names, playlists, films and a scavenger hunt. Twelve new tools, all offline pages with their assumptions printed:
- Halloween Costume Generator — three complete costumes from who it is for, the vibe, the effort and the budget, with a printable item list.
- Couple Halloween Costume Ideas — paired costumes with what each person wears, the build hours and the cost for two.
- Group Halloween Costume Planner — themes that seat your whole headcount, a named role for everyone and a crowd role for the extras.
- Last-Minute Costume Finder — a costume built from the clothes you already own, in the minutes you have left, with the missing items priced.
- Halloween Face Paint Planner — step timings, drying time, colour list and paint volume for one face or thirty.
- Pumpkin Stencil Generator — eight printable patterns scaled to your pumpkin, with bridge widths, cut order and a print scale bar.
- Halloween Party Games Planner — eighteen games filtered by age, space and energy, filled into a running order with a kit list.
- Halloween Trivia Questions — a seeded question bank, three difficulty levels, a printable score sheet and a tiebreaker.
- Halloween Name Generator — your name turned into a witch, vampire, monster, ghost or pumpkin-royalty name with a backstory.
- Halloween Party Playlist Planner — a timed song list across five energy blocks, with the runtime and the gap worked out.
- Halloween Movie Marathon Planner — a film running order that fits the window, with breaks and the finish time.
- Halloween Scavenger Hunt Generator — printable riddle cards, a route, an answer key and a hunt length.
There is also a new long-form guide, Halloween 2026: costumes, pumpkins, sweets and the whole night, planned — the date table through 2029, the carving maths, the door-traffic arithmetic and the party running order, with every Halloween tool linked from one page. The category page is at Halloween, and the catalogue now stands at 1,423 tools across 35 categories.
-
+10 tools for Halloween night — and a new category Content
The site had props for filming a horror scene, but nothing for the evening itself: no pumpkin maths, no costume weather, no way to work out how much sweets to buy or whether a driver will see a child in time. Ten tools now cover the whole night, in a new Halloween category:
- Trick-or-Treat Route Planner — distance, doors and walking time against an estimated sunset, with the sweets each child comes home with.
- Halloween Candy Calculator — how much to buy from door traffic, the peak hour, the spare for latecomers and the cost per visitor.
- Jack-o'-Lantern Carve Planner — carve time from the pattern and tool, candle count, interior air and a live design preview.
- Halloween Costume Weather Planner — wind chill, clothing insulation and heat balance for the forecast, with a layer recommendation.
- Fog Machine Calculator — time to reach a target visibility, re-burst interval, fluid use and clear-down time for a room.
- Halloween Decoration Power Budget — total load, breaker headroom, cable rating, voltage drop and the cost per night.
- Halloween Night Visibility Check — stopping distance against how far a driver can see a costume, and the reflective area that closes the gap.
- Haunted House Throughput Planner — the bottleneck scene, groups per hour, and the queue that builds as arrivals approach capacity.
- Pumpkin Purée & Pie Planner — whole pumpkin to usable purée, pies per pumpkin, pumpkins to buy and every ingredient scaled.
- Spooky Story Skeleton Generator — a five-beat campfire story from a rule, a mistake and a twist, at a chosen scare level.
All ten are offline browser tools with their assumptions printed on the page. The category page is at Halloween, and the catalogue now stands at 1,411 tools across 35 categories.
-
+10 tools and a new category: Rocketry & Propulsion Content
The catalogue had plenty for people who look up at rockets and nothing for people who build them. Ten new tools cover the flight and the bench side of amateur and model rocketry, and they get a category of their own instead of being buried in Astronomy & Space:
- Model Rocket Stability, CP & Ballast — Barrowman centre of pressure against your centre of gravity, static margin in calibers, and the nose ballast needed to reach a target margin.
- Rocket Thrust Curve Analyzer & Motor Class — paste a thrust curve, get total impulse, burn time, average and peak thrust, the TWR at liftoff and the NAR/TRA impulse class.
- Rocket Launch Safety Check — thrust-to-weight, rail-exit speed with drag, wind limit and a pass/fail pre-flight checklist.
- Rocket Apogee & Ejection Delay Planner — predict apogee and coast time, then see where a chosen motor delay actually fires and what the parachute will meet.
- Rocket Parachute Descent & Drift — size a canopy for a target descent rate and see the landing ellipse a given wind gives you.
- Rocket Nozzle & Thrust Calculator — isentropic nozzle solution: mass flow, exit Mach, thrust, Isp, c* and the ambient-optimum expansion ratio.
- Rocket Propellant Comparator — LOX/LH2 through APCP and hydrazine on Isp, bulk density, tank volume and delta-v from the same mass.
- Multi-Stage Rocket Delta-v & Mass Budget — a five-stage stack, wet and dry masses, the rocket equation per stage and the shortfall against a target.
- Re-entry Heating & Ballistic Coefficient — Sutton–Graves stagnation heat flux, equilibrium wall temperature, peak deceleration and integrated heat load.
- Rocket Ascent Flight Simulator — a 2-D point-mass ascent with a pitch programme, drag and Mach effects, plotted as altitude against downrange.
All ten are self-contained fragments: no network calls, no accounts, no sign-up. Every assumption is printed on the page, because a rocketry number without its assumptions is a guess with a decimal point.
-
A logo that belongs to the site it sits on Feature
The mark from 21 September was legible, but it did not look like it came from here. The home page is a dark instrument panel — hairlines, small tracked capitals, a tick scale, a search console with bracketed corners — and the one bright, glossy, glowing object on it was the logo. A magnifier holding a sparkle is also the icon every "AI search" product uses.
The new mark is drawn out of the page: the two cyan corner brackets from the search console, holding a white four-point star on a dark tile. The brackets find; the star is what they find. It is the same drawing in the browser tab, on a phone's home screen, in the social card and on the home page, and it still reads at 16 pixels because the cyan and the white stand far apart from the dark tile.
The site's name is now a proper lockup — the mark, a hairline, and the name on two lines with useful in cyan — in the hero, in the footer and in the downloadable logo files. The top bar of every other page (the guides, the blog, the category and tool pages, and more — about seventy in all) used an emoji where the logo should be; they now show the mark.
Two fixes came with it. The brand sheet claimed a cyan for text on white backgrounds that was nowhere near readable enough (2.9:1); it is now a darker cyan that passes (4.6:1), and the logo generator refuses to run if it ever slips. And one blog post's "back to the tools" links went to the blog's own index instead of the tools.
-
A proper mark, and the tab finally matches the page Feature
The site had a different identity depending on where you looked. The icon in your browser tab was a yellow ring that appeared nowhere else on the site. The file called
logo.pngwas just the site's own name typed into a dark square, and no page linked to it. The first screen introduced the site with an emoji.There is now one drawing: a white magnifier with a spark in its lens, on the site's own cyan-to-blue gradient. Search is what the site does, and the spark is the answer it hands back. That single mark is the icon in the tab, in bookmarks and on a phone's home screen (
favicon.svg,favicon.ico, the PWA icons, and an opaque one sized for iPhone — iOS puts transparency on black, so it gets a background of its own). The same mark now appears in the page itself, in the hero lockup and again in the footer.Before this, 45 pages carried the yellow ring and 14 pages had no icon at all. Every page of the catalogue — the home page, the 1,220 tool pages, the 28 category pages, the guides and the blog — now shows the same mark, and the generators build the pages that way from now on.
The first screen was rebuilt around it: the mark and the site's name, then the promise instead of a repeat of the name ("Every tool you need, already in your browser."), then the search box — taller, with the / shortcut printed inside it — then the shortcuts, the live tool count and the keyboard map. The pulsing badge, the headline animation and the emoji-as-icon are gone, and the emoji that remain sit in the same small rounded chip, so the page reads as one thing rather than a pile of pieces.
The social card was rebuilt to match, and
logo.pngis now an actual lockup — the mark plus the name — for anyone who needs the logo for a press kit or a profile. -
The home page stops re-downloading its own stylesheet on every visit Fix
The entire look of the home page lived inside the page itself: about 118 KB of styling that every visit downloaded again, and that the browser had to receive in full before it could paint anything at all. It is now two ordinary cached files. The part the first screen needs (~82 KB) still arrives before anything is painted, and the part nothing can see yet — the palette and contributions panels, the toolbox, the grid/list modes, the directory view, the maximise window, the "no results" box and the footer — is fetched alongside it but applied only after the first paint.
What you should notice: the page paints noticeably sooner on a slow connection, repeat visits re-send about 14 KB instead of 33 KB, and the very first frame is no longer gated on a render-blocking hint that waited for the tool grid's empty container to be parsed — 30 KB of markup (16% of the page) after the styles.
Both files, and the page's own script, are now requested with a version tag that is kept in step with the service worker, so a page can never end up running against a previous deploy's styles or code. A new check fails the build if a first-paint rule is ever moved into the deferred file, if the rules that keep those panels hidden move out of it, or if the whole sheet is inlined again.
The page's application code was split the same way. Everything you only meet after a click — the palette and contributions panels, the shared toolbox, the maximise window and the alternate directory view — used to be compiled before the first tool appeared. It now loads quietly in the background once the page is up (or the moment you click something that needs it), which gives a slow phone more room for the cards themselves. Reader mode stays immediate, since it restyles every card.
Offline visits got the same treatment: the page's styles and script are now saved as part of the offline copy, so a page opened without a connection still looks and works like the page — before, the saved page came up without its styling or its card loader.
The rest of the page was audited for the same reason. Long explanations that used to sit in HTML comments — invisible to you, but compressed into every single download — moved into the project's architecture notes, and a render-blocking hint that made the browser wait for the tool grid's empty container before drawing anything was removed. The document itself is now about 64 KB instead of 185 KB.
-
New tools appear on the first visit; scrolling stops measuring 1,190 cards a frame Fix Tooling
The service worker used to hand back the copy of the tool list it already had, and refresh it in the background for next time. So every batch of new tools went live on the site while a returning visitor's grid still showed the list from their previous visit — and only a second visit fixed it. The tool list, the card files and the home page's own script are now only served from cache while they are inside the ten-minute window GitHub Pages itself allows; after that the live copy wins, and the cache is only the fallback if the network is slow or gone.
Five more tools were injecting mobile rules meant for this page's grid (
.dashboard .card) from their own script — rules the pre-ship check could not see, because it only read<style>blocks. Those rules are gone, and the check now reads styles injected from script too.Speed. While you scroll with all the loader's slots busy, the fallback sweep used to measure every pending card — 1,190 forced layout reads on every single frame (measured: 71,404 over 60 frames), all to find cards it could not start, because the slots were occupied. It now only measures when a load slot is free. Six cards load at once instead of four. The speculation rules no longer prerender a whole standalone tool page when the mouse crosses a card, and no longer queue six tool-page prefetches on every keystroke in the search box. And the service worker no longer downloads the app script, the risk-notice script and both fonts a second time on install — 133 KB of fonts plus the scripts, bypassing the HTTP cache, while the first tools were still arriving.
-
Cards stopped going missing; the home page loads lighter Fix Tooling
Twenty tools shipped CSS written as if they had the page to themselves — a bare
.card { background: white; max-width: 500px }, abody { padding: 40px }. On the home page every tool shares one document, so the moment one of those scrolled into view it restyled every other card on the grid: white boxes, squeezed widths, headers pushed out of sight. It looked like cards had vanished, and nothing was logged anywhere. Each of those tools now keeps its styles under its own root, and a new pre-ship check (scripts/check-card-css-leaks.py) fails the build if a tool ever does it again.Returning visitors could also be stuck on an old copy of the home page's script: the service worker cached it forever, so new tools were listed but the code driving the grid never updated. Scripts and catalogue files now refresh in the background on every visit. The home page also stops downloading things it never used — the 548 KB search index no longer competes with the first tools you see (it loads when you reach for the search box, or when the browser is idle), a duplicate copy of it and the 390 KB tools index are no longer prefetched, and every card no longer holds its own GPU layer for the life of the page, which is what made the grid heavier the further you scrolled.
-
The embed directory is linked from the home page footer Feature
The page that lets other sites embed any tool had no link pointing at it from anywhere on the site — it was reachable only by typing the address. The home page footer now carries a small directory (Embed, Donate, Sponsor, About, Help), and the About page no longer quotes a stale pre-ship check count.
-
Production monitor stops crying false 404 on %-filenames Fix
The post-deploy monitor reported a published coordination file as missing: a filename containing a literal
%must be requested doubly-encoded, because the serving stack decodes%2Fto a slash before routing. Probe URLs are now encoded per path segment, with regression tests that reproduce the exact production failure. The runbook and the architecture traps list record the lesson. -
Five more subjects with nothing: parking, rail delays, Gift Aid, negotiation, LaTeX Content Feature
The same audit run again against the enlarged catalogue. All five were empty before this; all five are things people search for in a hurry and find only forum threads about.
- UK Parking Appeal Builder — the gap nobody notices until they have a ticket on the windscreen: a council Penalty Charge Notice and a private Parking Charge Notice have different deadlines, different appeal bodies and different consequences. Give it the type and the date and it works out the 14-day discount window, the 28-day appeal and the 28-day escalation, prices fighting it against paying up, and writes the appeal on the grounds that win — including Schedule 4 keeper liability for private charges, and a reminder not to name the driver.
-
Five tools for the subjects the catalogue had nothing on Content Feature
A pass over all 1149 tools looked for subjects with zero coverage rather than more variations on subjects already covered. Five had none at all.
- ADHD Time & Task Lab — an estimate-vs-actual log that learns your personal time multiplier, a translator that turns “it’ll only take ten minutes” into the real number (and the real time to start getting ready), a five-rung ladder for a task you cannot start, and a body-double timer. The whole catalogue had no neurodivergence tool before this.
-
Riley: Goblin Tide — she was never on screen, and now the game plays like Zelda Fix Feature Tooling
The report was blunt: "terrible to play, and I cannot see sprites". Both were true, and the second one had a single cause.
- Nobody was drawn — Riley and every goblin are built from instanced parts sorted into buckets, and the renderer only ever flushed the buckets tagged as glowing: eyes, glasses, the wand tip. Robes, limbs, heads, hats, goblin bodies, loot gems and shots were batched every frame and thrown away, so the arena was a floating pair of glasses being chased by pairs of red eyes. One flush now draws every non-empty bucket, additive halos and telegraphs are drawn after the solid bodies instead of before, and a leaked instanced-attribute divisor that was corrupting the terrain's vertex colours from frame two onwards is reset per program. A regression test now fails if any body bucket is still holding instances after a frame.
- Zelda controls (new default) — the camera follows you on its own: it swings in behind a committed run, keeps its framing through a fight and never spins chasing a sidestep. TAB Z-targets the goblin ahead (again to release), X cycles, and when the target dies the lock hands itself to the next goblin within 15u so a crowd fight flows. A click attacks — at your target if you have one, otherwise at whichever goblin is in the cone you are facing, otherwise straight ahead — so there is no crosshair to manage. The mouse orbits the camera if the browser hands over the pointer, and the game is fully playable if it does not (Esc frees it and is remembered).
- Cursor aim kept — L or the pause toggle switches back to the previous scheme (camera follows the cursor, shots fly at it). Saved with the other camera settings.
- The bot was steering half-wrong — the test hook that reports the camera basis read the view matrix with the wrong stride and returned a mirrored forward vector, so the playtest bot had been running to the world's edge since it was written and every earlier "bot reached wave N" number was measured on a bot fighting its own controls. Fixed, along with its mouse sign; it now plays either scheme (
playtest.js 180 report zelda|mouse) and both reach wave 10 in 180 seconds on the same seed where it used to reach wave 6.
-
Riley: Goblin Tide — the crowd started stealing, and the camera stopped letting them hide her Feature Fix
Two things a third-person arena needs and did not have: something to defend, and a rule for what happens when a body gets between you and the screen.
- Thieves — Grunts and Runners now spot uncollected loot, snatch it and run for the rim with it held overhead. Kill the thief and it drops everything back with a finder's bonus; let it reach the rope and that score is gone. A gem is no longer something you walk over, it is a race.
- The scenery is at risk — three arcane crystals now sit on the arena lip, and a goblin nobody is standing beside chews one for about two seconds and eats it (the crystal shakes, the colour walks from ice to ember, then it bursts and leaves a single shard). Mana economy out in the world was decoration; now the tide is spending your resources while you ignore it.
- Camera — the rig now trucks sideways around a body on the line of sight instead of letting a GOBLIN KING fill the frame, with a deadband so a crowd hugging her never makes it wobble; goblins inside the near plane are simply not drawn (the classic "hide actors between camera and player" trick) instead of painting the inside of a torso over the arena. A 90-second playtest bot hid a goblin on 2.3% of frames and was buried by scenery under 1% of them.
- Tuned — the gem magnet reaches 2.6u instead of 3.4 and pulls more gently, so loot lingers a moment (which is what makes a thief possible), a GOBLIN KING now holds the camera at 8.6u so it reads as a silhouette rather than a wall, and the headless playtest gained loot, gnaw, camera-truck and lens-hide meters.
-
Riley: Goblin Tide — run-defining boons, a camera that stopped floating, and a bot that plays it Feature Fix Tooling
Second pass on the arena battler: what the tide does between waves, why the third-person rig had been pinned at maximum lift since launch, and a headless playtest that found both.
- Boons — clearing a wave now stops the clock and offers three of twelve permanent upgrades (blast power, cast cadence, mana surge, movement, dash recovery, smack reach, piercing shots, jump height, gem magnet, spirit ward, bonus hearts, a longer combo window). The sim freezes while you choose, the pointer comes back so the cards are clickable, and 1 / 2 / 3 picks without the mouse. Every boon is a multiplier on an existing tick constant, so nothing bypasses the fixed timestep and a seeded run replays identically.
- Camera bug — the occlusion ray that decides whether the boom is buried was cast downhill while the boom itself runs upward, so the rig believed it was inside the world almost everywhere and rode at full lift. Fixed: occlusion went from ~99% of a playtest to under 2%, and Riley stopped being framed from a first-floor window.
- Tide pacing — goblins now favour the spawn portals nearest Riley instead of a uniform roll across the rim, so a wave opens with a fight rather than a 40-metre jog (headless playtest: mean wave time 25.8s → 19.9s, same bot, same seed).
- Input leak — typing a world seed into the title field no longer mutes the audio, toggles music and hurls Riley into the air; keys are ignored while a form field has the caret, except Enter and Escape.
- Fixes from the bot — the Spirit Ward shock used to crash on a spitter bolt, because a projectile hands the hit code a stand-in object rather than a goblin; a corpse no longer eats the ward, and a goblin that dies to it mid-lunge never lands.
- Tools —
riley-assets/test/playtest.jsboots the real game headlessly, plays it with keyboard and mouse events (aiming withmousemovedeltas like a person does) and reports wave times, hits taken, camera occlusion and whether the rig ever left its distance budget. Deterministic per seed, so a number in the report is a number you can chase.
-
Riley: Goblin Tide — the camera gets rebuilt, the combat gets a spine Feature Fix
The 3D arena battler had a camera that fought the player: it snapped, sank into hills, ran backwards while you ran forwards and zoomed itself into Riley's skull. It is now a spring-damped orbit rig, and the whole game got a pass for feel.
- Camera — smoothed orbit pivot, boom that lifts over props and terrain instead of cutting to a first-person close-up, FOV that widens when buried, over-the-shoulder framing only while aiming or locked on, and an auto-frame that swings behind Riley when you commit to a run. Every parameter is a slider in the pause menu (look speed, smoothing, FOV, distance, screen shake — shake has a true zero) and persists per browser.
- Controls fix — strafe was mirrored against the view projection, so A and D were swapped; the input basis is now derived from the same matrix the renderer uses, with a headless test that pins each key to a screen edge.
- Combat — a three-hit melee chain (jab, jab, 360° cleave that launches the crowd), a dedicated melee input, perfect-dodge reward (dash through a wind-up and time crawls while magic floods back), a landing shockwave when you drop from height, and a last-stand surge on your final heart.
- Fairness — an attack's wind-up can no longer hurt you: the red flare means "move now", and every committed attack leaves a recovery window to punish. Spitters telegraph before they fire. Corpses tumble instead of blinking out.
- Engine — the sim is now a strictly fixed 60 Hz tick with interpolated rendering, so frame pacing, hit-stop and slow-motion no longer change how far Riley travels or where the goblins land (the determinism hash proves it).
-
RSS feed refresh + blog launch Feature SEO
RSS feed updated with blog posts, embed page, and other new pages. New /blog/ hub with three long-form, math-honest guides:
- How mortgage payments really work — the formula, the bank's blind spots, and the one number they never show.
- What BMI actually measures — a population screening tool, not a personal one.
- Why compound interest is magic — the rule of 72, and why the early saver always wins.
Each post has Article JSON-LD, a sticky topbar, a related-tools grid, and links back into the catalogue. Cross-linked from the home page's top nav and footer pills.
-
Human-readable sitemap Feature SEO
New /sitemap.html page: every page on the site, every tool, every translated landing, every machine-readable file, in one place. Easier for users to navigate, easier for crawlers to discover.
-
11 broken slugs fixed Fix
/popular had 11 references to tool slugs that don't exist (favicon, UUID generator, and others). All replaced with the actual closest tools in the catalogue. Every tool link on the site now resolves to a real tool.
-
Related-tools map Feature
New /related.json file with computed related-tools for all 1164 tools, ranked by category + title keyword overlap + description word overlap. The /tool.html standalone viewer now uses the map to show 5 contextually related tools at the bottom of every page (falls back to same-category if the map is unavailable).
-
Sticky top nav on the home page Feature
The home page now has a sticky top nav with links to all 10 discovery / structural pages: Popular, New, Use case, Index, Embed, Help, About, Music, Donate, Changelog. Sits at the top of the viewport on every scroll position.
-
Embed any tool Feature
New /embed page that lists all 1164 tools with a one-click "Copy iframe" button. Filter by category. Every tool can be embedded on a third-party site with a single iframe — no JavaScript, no API key, no sign-up.
- Per-tool embed snippet generated client-side; the snippet is live in the page when copied so it can be inspected before pasting.
- Category filter with sticky position under the topbar.
- Old-browser fallback: shows the snippet inline if
navigator.clipboardis unavailable.
-
About + Press Feature
New /about page with project history, principles, stats, and milestones. New /press page with a one-paragraph factsheet, story angles for tech / consumer / music / indie press, contact details, and brand-asset notes.
- Both pages include structured data (AboutPage, WebPage JSON-LD) for E-E-A-T and rich-result eligibility.
- Cross-linked from every other top-level page in the footer pill row.
-
Use case + per-tool JSON-LD Feature SEO
New /use-case page with 33 hand-curated "what are you trying to do?" buckets covering 271 of the 1164 tools — the rest are still discoverable from /tools and /.
Every tool loaded via /tool.html?card=... now injects its own per-tool WebApplication JSON-LD with the actual title, description, category, and the canonical standalone URL — replacing the generic placeholder. The page's
<title>,og:title,og:description,twitter:*, and<link rel="canonical">are all updated to match. -
Discovery pages + RSS + machine-readable Feature SEO
Four new discovery pages, one feed, three machine-readable files.
- /popular — 60 hand-curated "most useful" tools across 7 categories, with ItemList JSON-LD for the top 30.
- /new — the 10 tools added in the most recent catalogue-audit commit.
- /tools — the complete index of all 1164 tools organised by category, with a sticky in-page TOC.
- /help — 20-question FAQ with FAQPage JSON-LD, sticky section nav, and a "suggest a tool" CTA.
- /feed.xml — RSS 2.0 feed with items for each of the above.
- /llms.txt — machine-readable overview for LLM crawlers (per the llmstxt.org spec).
- /.well-known/ai.txt — explicit AI policy (training, retrieval, republishing rules).
- /.well-known/security.txt — security disclosure address and expiry.
- /robots.txt now explicitly allows the major AI crawlers (GPTBot, Claude-Web, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, CCBot, Applebot-Extended, cohere-ai, cohere-training-data-crawler).
- Every top-level page links to the RSS feed via
<link rel="alternate" type="application/rss+xml">.
-
+10 tools, 23 categories, 562 total Content
After a full audit of the 552-tool catalogue, ten genuine coverage gaps were found and filled:
- Hike Time Planner — Naismith + Langmuir descent + real sunset times from your latitude. (Home & DIY)
- Bike Gear Calculator — gear inches, development, gain ratio, wheel duplicates. (Health & Fitness)
- Photo Exposure Lab — EV equivalence, ND, true DOF (not the marketing version), diffraction limit. (Science & Engineering)
- Race Pace Predictor — Riegel predictions for any distance, plus five training paces. (Health & Fitness)
- Baby Sleep Planner — wake windows → nap length → bedtime, by age band. (Productivity & Lifestyle)
- Energy Tariff Comparator — annual cost AND the usage where ranking flips. (Finance & Money)
- Unit Price Comparator — normalises multi-buys to a single comparable number. (Finance & Money)
- Fluid Type Scale — CSS
clamp()solved from two breakpoints, in rem. (Productivity & Lifestyle) - Fabric Yardage Estimator — width, nap, pattern repeat, pre-wash shrinkage. (Science & Engineering)
- Car Care Tracker — MOT + service countdowns, tread, cost per mile. (Science & Engineering)
Spread across 5 existing categories (no new category invented for these). The full cards.json is regenerated; the other 552 cards have zero drift.
Want to use the site?
🔲 Open the catalogue 📚 Full index ⭐ Most popular 🆕 Just added 🎯 By use case ℹ️ About 📡 RSS