gg-friggin-ez is a fast, free, drop-in multilingual profanity and toxicity screener for Node.js. It is powered by System 1 models such as TypeSafe AI Jev and Laya, and its purpose is to screen chat messages so that a backend can decide what should happen to each one. The package is aimed at developers who need to moderate user-generated messages at scale, and it is open source and installable with a single npm command, npm i gg-friggin-ez. The stated goal is to make real-time, multilingual toxicity screening cheap enough to run on every single message.
gg-friggin-ez was built by Shikhar Srivastava, who ran into chat moderation while working in the real-money gaming industry. In his account, chat moderation was one of those problems that never had a good answer: it was too slow, too expensive, or too dumb to catch anything past a static keyword list. He later moved into backend and AI engineering, and gg-friggin-ez is what happens when that old problem meets the current stack. The maker frames the history in three stages. Pre-LLM approaches were fast but brittle, because traditional filters and ML/NLP models struggled with Romanized Indic, slang, ASCII art and creative evasion. LLMs were smart but too expensive to run at scale. System 1 models such as Jev and Laya are single forward-pass decision engines built for real-time classification, with sub-500ms end-to-end performance, deterministic output and pennies-per-million-token economics.
Evasion-proof screening is the central capability of the product. gg-friggin-ez is described as catching leetspeak, ASCII drawings, character spacing and romanized profanity. It also provides native Indic support and multilingual coverage, with Kannada, Telugu, Tamil, Hindi and Bengali named explicitly in the description, Bhojpuri and Marathi appearing in the discussion, and the public benchmark covering 14 languages. This matters because the evasions that defeat simpler systems are exactly the ones that appear in fast-moving chat: people replace letters with numbers, spread characters apart, draw words as ASCII art, or write profanity in romanized scripts. A screener that only matches known bad words on the nose is easily outsmarted, which is the behaviour the product sets out to fix. Because the engine is a contextual model rather than substring matching, benign text that happens to contain profanity-like substrings is handled differently from a keyword filter. The maker gives the "Scunthorpe" test case, where the input "I live in Scunthorpe" returns isProfane false, isToxic false and an action of ALLOW.
A second group of features is the deterministic action layer. gg-friggin-ez converts toxicity into the moderation actions ALLOW, REVIEW, CENSOR and BAN, so instead of returning an opaque score the package returns a decision a backend can act on directly. Alongside the action it returns rich telemetry: confidence scores, evasion detection flags and primary language classification. The maker stresses that nothing happens silently, because every call returns the probability plus reasoning before your backend acts on anything. AUTO_BAN only fires at high confidence, while ambiguous content is routed to review rather than triggering an instant ban. This design reflects a deliberate trade-off. The maker notes that for a problem like this, higher precision might seem like a great choice, but recall is more important: a false positive might still be flagged for review, whereas missing a toxic or profane message that is then viewed by possibly thousands of people on a livestream platform is worse. The first failure mode is recoverable, the second is not.
Speed, cost and extensibility form the third group of features. Moderation is described as lightning-fast at sub-500ms. Cost is ultra-low: roughly $0.000042 per message when using Jev at $0.042 per million tokens, or $0 inference cost when using self-hosted open-source models. The Product Hunt listing also cites approximately $0.000004 per message. The architecture is pluggable with 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. The project is 100% free and open source. You install it with npm i gg-friggin-ez, browse the source on GitHub, and try the hosted demo on the project's GitHub Pages site.
Overall, the product works by handing each message to a System 1 model, meaning a single forward-pass decision engine built for real-time classification, rather than to a static keyword list or a large generative model. That single design choice is what makes the combination of speed, low cost and contextual judgement possible at once. The model produces a probability and reasoning, evasion and language signals are attached, and those outputs are mapped to one of the fixed moderation actions that the calling backend then applies. Because the model layer is decoupled from the package, teams can keep the same integration while swapping in a different System 1 model of their choosing.
The benefits follow from that approach. Teams get evasion-aware screening that understands context rather than substrings, so ordinary words and place names are not blindly punished for resembling profanity. They get deterministic, auditable outcomes instead of a silent pass or fail, which means a moderation decision can be inspected before it is enforced. They get responses fast enough for live chat, and they get a cost profile low enough that screening can run on every message rather than a sample. And because the package is open source and free, with a self-hosted path to $0 inference cost, the barrier to adopting full coverage is low.
The use cases come straight out of the maker's own framing. Chat moderation in real-money gaming is the origin story, where slow, expensive or naive filters left the problem unsolved. Game chats with real-money stakes or bans attached are a natural fit, because a wrongly muted or banned player carries its own support cost, while an unfiltered toxic message can be seen by many players. Livestream platforms are another scenario discussed directly, where a missed toxic message can be viewed by possibly thousands of people. More broadly, any Node.js backend that handles user-generated messages and needs an ALLOW, REVIEW, CENSOR or BAN decision per message can call the package. Teams that want to validate the approach before committing can consult the published benchmark file referenced in the discussion.
The product is aimed at developers building chat and community backends, particularly in gaming, livestreaming and other real-time contexts, and it fits Node.js applications through npm. It integrates with System 1 models, shipping with TypeSafe AI's Jev by default and supporting Bring Your Own Model for other System 1 engines such as Laya. The maker has also published raw benchmark data covering 14 languages and 42 messages, three per language, reporting 97.6% overall accuracy (41/42) and 94.4% accuracy on Indic and romanized content, while describing the sample as early evidence rather than a rigorous study. In that run none of the benign messages were auto-banned; one Bhojpuri line landed in review instead of an instant allow, and one Marathi message scored just under the threshold and needed a human to catch it. Pricing is free, and the project itself is open source.
In short, gg-friggin-ez packages evasion-aware, multilingual profanity and toxicity screening into a free, drop-in Node.js library that returns deterministic moderation actions with the reasoning attached. Its value proposition is straightforward: real-time, context-aware, Indic-friendly moderation that is fast and cheap enough to run on every single message.