Launching today

gg-friggin-ez
Fast & free profanity and toxicity screening via Jev & Laya
59 followers
Fast & free profanity and toxicity screening via Jev & Laya
59 followers
Fast, free, drop-in multilingual profanity and toxicity screener for Node.js, powered by System 1 models like TypeSafe AI Jev and Laya. Catches leetspeak, ASCII drawings, character spacing, and romanized profanity across all languages including Kannada, Telugu, Tamil, Hindi, and Bengali. Ultra-low cost • Multilingual • Native Indic support • Evasion-aware • Sub-500ms • ~$0.000004/message • Configurable moderation actions • Open source (npm i gg-friggin-ez)






gg-friggin-ez
Hey Product Hunt! 👋 I'm Shikhar, creator of gg-friggin-ez
Why I built this
Back when I worked in the real-money gaming industry, chat moderation was one of those problems that never had a good answer - too slow, expensive, or dumb to catch anything past a static keyword list. I've since moved into backend/AI engineering, and gg-friggin-ez is what happens when that old problem meets the current stack: System 1 models like Jev and Laya that enable real-time, multilingual toxicity screening cheap enough to run on every single message.
Pre-LLMs: Fast, but brittle - traditional filters and ML/NLP models struggled with Romanized Indic, slang, ASCII art, and creative evasion.
LLMs: Smart, but too expensive to run at scale.
System 1 Models (Jev, Laya): Single forward-pass decision engines built for real-time classification - sub-500ms end-to-end, deterministic output, and pennies per million tokens.
So I built gg-friggin-ez around it.
What it does
• Evasion-proof: Catches Romanized Indic profanity, leetspeak & ASCII-art evasion
• Deterministic actions: Converts toxicity into ALLOW, REVIEW, CENSOR, BAN
• Rich telemetry: Returns confidence scores, evasion detection flags, and primary language classification.
• Lightning-fast: sub-500ms moderation
• Ultra-low cost: ~$0.000042/msg using Jev ($0.042 per million tokens), or $0 inference cost using self-hosted open-source models
Pluggable Architecture & Bring Your Own Model (BYOM)
While gg-friggin-ez ships with TypeSafe AI's Jev as the default out-of-the-box engine, it is completely decoupled, so you can point it to your own System 1 models.
It's 100% free and open-source.
• npm i gg-friggin-ez
• GitHub: https://github.com/ItisShikhar/g...
• Demo: https://itisshikhar.github.io/gg...
Ever seen someone outsmart a chat filter? Tell me how. Let’s see if gg-friggin-ez catches it.
Dial
multilingual leetspeak and character-spacing detection is the hard version of this problem, and it's usually also where the false positives live, place names, usernames, and ordinary words in one language that happen to look like a workaround in another get caught by the same pattern matching that catches real evasion attempts. the classic case is a word like "Scunthorpe" tripping a filter for containing a substring that reads as profanity out of context. for a game chat with real-money stakes or bans attached, a wrongly muted or banned player is its own support cost. is there a documented false-positive rate across languages, or a way for a game to see what got flagged and why before it's acted on, rather than the screening being a silent pass/fail?
gg-friggin-ez
Yeah, it's documented, though heads up the sample's still small - 14 languages, 42 messages, 3 each, so treat it as early evidence not a rigorous study: https://github.com/ItisShikhar/gg-friggin-ez/blob/master/raw-benchmarks.md
Numbers: 97.6% overall accuracy (41/42), 94.4% accuracy on Indic/romanized.
More relevant to your question - none of the benign messages got auto-banned. One Bhojpuri line landed in review instead of an instant allow, but that's as close as it got to a false positive.
"Scunthorpe" test case specifically, since it's a contextual model not substring matching:
And nothing happens silently - every call returns the probability + reasoning before your backend acts on anything. AUTO_BAN only fires at high confidence; ambiguous stuff gets routed to review instead of an instant ban.
Having said that, for a problem like this a higher Precision might seem like a great choice, but Recall is way more important. Because a false positive might still be flagged for review, but missing a toxic/profane chat and being viewed by possibly 1000s of people on say a livestream platform is worse. That's actually the one miss in my own 42-case set too, a Marathi message that scored just under the threshold and needed a human to catch instead of the model flagging it outright.
Dial
@itisshikhar that's a genuinely reassuring answer, honestly more thorough than I expected. the recall-over-precision framing makes sense for the livestream case, and returning probability + reasoning instead of a silent action is the part that actually addresses my worry. 42 cases is small like you said, but the fact that the one miss went to review not an instant ban is the right failure mode to have. will keep an eye on it as the benchmark grows.