cringe diagnostic unit strings v13 · cache v31

changelog

Everything that's changed, newest first. Built in the open, bugs included.

The changelog is kept in English only.

build 31

  • Win a royale and you can share a card of your run: how many in a row, and your average cringe across every round of every game in it.

build 30

  • Both games have sound now: a countdown in the last ten seconds, a buzzer, and something to tell you whether you survived the round. Nothing plays until you've clicked into a game, and there's a toggle in the corner that remembers what you chose.

build 29

  • Win streaks. Take the free entry into the next game and you're defending a run — it's shown while you play, counted up when you win, and named when it ends.

build 28

  • Win a cringe royale and your next entry is free. The button is on the victory screen, and it waits for you if you come back later.
  • If the game you spend it on never fills, you keep it.

build 27

  • Added a live count of how many people are in Cringe Royale right now — on the royale page and on the front page. It's a real number: if nobody's there, the line isn't there either.

build 26

  • Added CRINGE ROYALE. Up to 99 players, a minute a round, and every round the three cringiest posts are erased — plus anyone tied with them. Last one standing gets CRINGE VICTORY ROYALE.
  • Entry is $1.99. The queue starts when it fills, or after five minutes if at least five people are waiting. Fewer than that and the game is void — your entry isn't used.

build 25

  • If whoever opens an invite link wanders off before the round starts, the seat opens again. Anyone else with the link can take it and hit ready when they're ready — no need for a new invite.
  • The round clock now starts when both players are ready and both are actually still on the page, instead of the moment the second ready arrives.

build 24

  • Fixed every newly created battle crashing the moment it loaded. Rounds two and three hadn't started yet, and the code read a property off the empty one.

build 23

  • The invite link is now the main thing on screen after you start a match, with one button that shares or copies it. Send it to anyone — they don't buy anything, they just open it.
  • Invite links are short now: amicringe.lol/b#…
  • Fixed a dead end where a failed first load sat on "finding the match" forever instead of saying what went wrong.

build 22

  • Fixed battle invites failing outright: the storage layer was asking for a guarantee this runtime can't provide, and every read threw.
  • Same bug had been quietly breaking the live screenings ticker, which is why it never appeared. It works now.

build 21

  • Battle errors now say what actually went wrong instead of "something went wrong". A failure inside the server used to come back as a blank error the page couldn't read.
  • Added a self-check button that appears when a key is refused, reporting what's configured and exactly what Gumroad said.

build 20

  • Fixed battle invite keys being rejected. Every check was burning a counter at Gumroad that can't be reset, so a few attempts killed a key for good. Keys are no longer counted that way, and ones already burned work again.
  • An invite now reopens the match it started. Close the tab, paste your key again, and you're back in the same game.
  • Same fix for the $1.99 rewrite key, which had the same flaw with a higher ceiling.

build 19

  • Fixed screenings failing for everyone with "the lab didn't respond". A helper function used by every reply had been deleted in an earlier refactor, so the server errored before it could answer anything.

build 18

  • The clinic has a nurse. She stands behind the page on every screen, and she's the favicon and the link preview now too.

build 17

  • Cringe battle invites are live on Gumroad.
  • Round rule: an empty entry, or one the lab can't assess, scores 100% — the worst there is. Turning up and writing something always beats writing nothing.

build 16

  • Added CRINGE BATTLE. Two people, three rounds, sixty seconds each. Neither of you sees the other's draft until the buzzer; lowest average cringe wins.
  • An invite is $0.99 and starts one match. Only the person who starts it pays — the other just opens the link.
  • Win a round and you're BASED. Lose it and you're CRINGE. The buzzer submits whatever you've typed, so you can only forfeit by walking away.

build 15

  • If you had the site open from an earlier version, it now refreshes itself when a new one is deployed instead of quietly serving you the old one.

build 14

  • Fixed lookup keys like ward.unlock showing up in place of real words after a deploy. Every script and stylesheet is now requested with a version stamp, so a page can't load a stale copy of itself.
  • The Gumroad checkout link is live.

build 13

  • The $1.99 rewrite is now sold through Gumroad instead of PayPal. Your receipt comes with a licence key; paste it once and this device remembers it.
  • The key is checked with Gumroad on the server before anything is generated, so the unlock is a real purchase now rather than an honour-system button.
  • Privacy policy updated to match.

build 12

  • Search engine housekeeping: real page titles and descriptions, canonical URLs, a sitemap, a robots file and structured data.
  • Links to the site now unfurl with a proper preview card instead of a stray icon.
  • The privacy policy is no longer hidden from search engines.

build 11

  • Something else got added. It isn't listed here. Say the right word in the box and you'll find it.

build 10

  • Added the live screenings ticker under the form — other people's scores, in real time. Scores only: the text never reaches that store.
  • Privacy contact is now jmaa@jmaa.tv.
  • Fixed untranslated keys like feed.yours appearing after a deploy. Pages now declare which string bundle they need and re-fetch it past every cache if the one they got is stale.

build 9

  • Fixed the share card showing the previous screening's result until you refreshed. Cards are now keyed by their contents, not just their size.
  • The card and the paid rewrite now use the draft that was actually screened, rather than whatever is in the box at the moment you click.

build 8

  • Added reddit text posts, with a 4000 character limit instead of the usual 600.
  • Character limits are now per platform. Switching to a shorter one with a long draft warns you instead of silently cutting it.

build 7

  • Added share cards: a 9:16 image with the score, the diagnosis and the specimen, watermarked. Download it, or push it to Instagram, X, Bluesky or Facebook.
  • Added bluesky to the platform list.
  • Added the jmaa.tv mark at the bottom of every page.
  • Fixed the display font missing accented characters — Spanish and Basque headlines were rendering as blank boxes.

build 6

  • The site now follows your browser's language. Spanish and Basque are written by hand; any other language is translated on demand and cached.
  • The screening itself comes back in your language too. Your own draft is never translated.
  • Right-to-left layouts supported.

build 5

  • New favicon: a medical cross, to match the clinic.

build 4

  • Added the about page and a privacy policy.
  • Added a cookie banner for the EEA, the UK and Switzerland. Say no and no ad script loads at all.

build 3

  • Added ad slots: two vertical rails on desktop, one banner on mobile.
  • The site is now installable — add it to your home screen and it opens like an app, offline included.
  • Switched the headline to a self-hosted typeface so it looks the same everywhere, Android included.

build 2

  • Tightened the rewrite flow: the unlock only appears once PayPal has actually been opened.

build 1

  • First build. Paste a draft, pick where it's headed, get a cringe score, a diagnosis and some counselling.
  • Optional $1.99 rewrite: three versions of your post, same voice, less wince.
jmaa.tv