Everything that's changed, newest first. Built in the open, bugs included.
The changelog is kept in English only.
build 57
- The royale and battle pages now show who won recently, the way the home page shows recent screenings. Signed-in winners appear by name unless they've turned that off; everyone else shows as "someone".
- Bot victories never appear there — the ticker is meant to show that people are playing — and a win against a mostly-bot field says so.
build 56
- Added "copy link" to the share row. It copies a link to your result, ready to paste anywhere — and wherever you paste it, the preview shows your score and diagnosis.
build 55
- Royale games always go ahead now. If the queue hasn't filled when the clock runs out, bots take the empty seats — up to 20 in a game. They have silly names, a BOT tag everywhere they appear, and they never count as people in any of the live numbers.
- Beating bots is still a win, but the free entry and your leaderboard streak only come from a game with at least 5 real people in it.
- The royale page chimes and says "Someone just joined!" when a person joins the open lobby. Bots never trigger it.
- The "on this page" count now includes you, and only appears once there's someone besides you.
build 54
- The royale page now shows how many other people are on it deciding whether to play, alongside how many are already in a game. You're never counted as your own company, and neither number shows when it's zero.
build 53
- Sharing to X, Bluesky or Facebook now posts a link to your actual result, and the preview shows your score, diagnosis and tier artwork instead of the site's generic card. Nothing to attach by hand any more.
- That link stores your score and the short excerpt from the card — never your full draft — and only if you press a share button. It expires after 90 days.
build 52
- Every cringe tier now has its own background: a calm pulse line for clean, wobbles for mildly goofy, scanning lines and question marks for under review, hazard stripes for the yikes zone, a radial alarm for biohazard, and chevrons and static for do not post.
- It shows behind your result and on the card you share, so a screenshot actually looks like something.
build 51
- A rewrite purchase now covers one post, which is what it always said it did. Keys bought before today keep their old allowance — you paid under the old terms.
- A rewrite that fails no longer uses up your purchase. Nothing is spent until the rewrite actually exists.
build 50
- When you're knocked out of a royale or a battle ends, the page now tells you what you've actually spent here this month and what Cringe+ would have cost instead. Real numbers, yours, dismissible.
build 49
- Fixed Cringe+ not actually unlocking rewrites or battles. The subscription was being honoured by the server the whole time, but there was no button to use it with — subscribers have no licence key, and the only way in was a key field.
build 48
- Buying something now brings you straight back unlocked. No hunting through your email for a licence key, no pasting — Gumroad sends you back and the key is fetched and saved for you.
- If that ever fails, the page shows you the key and tells you what to do rather than leaving you stuck after paying.
build 47
- You can paste the whole receipt email into a licence key box now instead of hunting for the key in it. It finds the key itself.
- If you're about to buy a second or third rewrite, the page now tells you Cringe+ costs less than three of them. Dismissible, and never shown to anyone who already has it.
build 46
- Removed ads entirely. No AdSense, no ad slots, no advertising or analytics trackers of any kind — and with nothing non-essential left to consent to, the cookie banner is gone too.
- Cringe+ no longer lists "no ads" as a perk, because that would be selling you something everyone already has.
build 45
- Added field notes: proper written pieces about cringe, internet register, and why posts age the way they do. Three to start with.
build 44
- You can now report a profile whose nickname or avatar is offensive — there's a small flag next to names on the leaderboards. You don't need an account to report one.
- Admins get a panel: a queue of reports, a searchable list of every account, and the ability to suspend accounts or block an IP for a while.
build 43
- Screening, battle, royale and Cringe+ now have a menu pinned to the top of every page, so you're never more than one tap from any of them.
- Admin accounts wear the jmaa.tv mark next to their name.
build 42
- Account errors now say what actually went wrong instead of "something went wrong", so a failure can be reported and fixed rather than guessed at.
- An error from one action no longer lingers on screen and gets blamed on the next one.
- The password reset page now tells you if you're already signed in, and sends you to change your password directly instead. Previously it silently showed the email form while the corner still displayed your name, which looked like it had logged you in.
build 41
- If you're signed in, your nickname and picture now show next to your scores — on the home page ticker, on the cringe battle reveal, and next to the worst post of a royale round. Cringe+ subscribers get their badge there too.
- There's a switch in your account page to turn that off. Your scores still count, they're just anonymous again.
- Not signed in? Nothing changes. Your screenings were anonymous before and they stay anonymous.
build 40
- Added RUSH HOUR: two windows every day — 20:00 and 00:00 UTC, two hours each — when Cringe Royale is free for everyone and you can play as many games as you like. One lands in Europe's evening, the other in the Americas'. The royale page shows the next one in your own local time and counts down to it.
- Playing during rush hour doesn't use up your free weekly game.
build 39
- Cringe+ has a page now, so you can actually subscribe to it. Activating a licence removes the ads straight away, adds your badge, and makes every royale and battle free.
- Your Cringe+ badge shows next to your name on the leaderboards and in the corner widget.
build 38
- Fixed the royale entry screen still asking for $1.99 when you had a free game waiting. Your weekly free game, a win-streak entry, or Cringe+ now all come first, and the price is tucked away behind "or buy another entry".
- Added Cringe+, $4.99 a month: no ads, free battle invites, free royale entries, unlimited rewrites and a badge.
- Each section has its own link preview image now instead of all sharing one.
build 37
- Accounts. Sign in with email and password to show up on the leaderboards, keep a nickname and an avatar, and build a win streak that survives across devices.
- Email verification and password reset, both by email link.
- Two leaderboards — Cringe Battle wins and Cringe Royale streaks — always showing the top 10 plus your own position if you're signed in and ranked outside it.
- One free Cringe Royale entry a week, for everyone — signed in or not.
- Added a help guide for all of the above.
build 36
- Added a full help section: a hub page plus a detailed guide for screening, Cringe Battle, Cringe Royale, and how payments, licence keys and share cards work across the site. Linked from every page's footer.
build 35
- Battle and Royale now get their own promo cards right under the main form, instead of two small links buried in the footer nav.
build 34
- The live player count now shows on the royale entry screen too, right above the enter button — it was previously only visible once you'd already joined a game.
build 33
- Every screening result now points at Cringe Royale, with a line tuned to your score — clean scores get dared, cringe ones get warned. Doesn't show up if the result was flagged rather than scored.
build 32
- Cover art, so the game can be listed on IGDB and turn up as a category on Twitch.
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.