Catch evasions.
Leetspeak, repeated letters, punctuation, accents and lookalike Unicode are handled by the matcher.
Open sourceItalian profanity filter for JS & Flutter
Spots bestemmie, insults and tricks like “D10 p0rc0” in usernames — and leaves Claudio and Diodato alone.
npm install italian-profanityLoading the detector…
Leetspeak, repeated letters, punctuation, accents and lookalike Unicode are handled by the matcher.
Whole-word rules and explicit exceptions reduce collisions with ordinary Italian names and surnames.
Shared rules and regression fixtures keep the TypeScript and Dart/Flutter engines aligned.
No API key, no network calls. Pick a balanced, strict or lenient policy and decide what to allow, review or block.
npm install italian-profanityimport { createChecker } from "italian-profanity";
const checker = createChecker({ profile: "balanced" });
checker.check("D10 p0rc0").action; // "block"
checker.check("Claudio").action; // "allow"flutter pub add italian_profanityimport 'package:italian_profanity/italian_profanity.dart';
final checker = ItalianProfanity.createChecker();
checker.check('D10 p0rc0').action; // Action.blockitalian-profanity is a free, open-source library that detects Italian profanity — blasphemy (bestemmie), insults (insulti) and vulgar words (parolacce) — in short user-generated text such as nicknames, usernames, room names and team names. It is available for JavaScript/TypeScript on npm and for Dart/Flutter on pub.dev, with the same rules and the same verdicts in both.
Install it with "npm install italian-profanity" or "flutter pub add italian_profanity", then call check(text). The result has an action — allow, review or block — and the list of matches with category, severity and position.
No. Rules match whole words, explicit exceptions cover common collisions, and every release is audited against a large corpus of Italian names, surnames and common words. A few ambiguous homographs return review instead of block under the default balanced profile.
Yes. Divine terms are flagged only when combined with an insult, so "dio" alone is allowed while variants such as "D10 p0rc0" are blocked.
Leetspeak (0 for o, 1 for i), separators and punctuation between letters, spaced letters, repeated letters, accents and Unicode look-alike characters.
No. The filter runs entirely inside your app or browser, offline, with zero runtime dependencies. The playground on this site also runs locally and does not upload what you type.
Yes, optionally. Italian is on by default; enable a curated English dataset with languages: ["it", "en"]. It is not a replacement for a full English moderation service.
Yes. italian-profanity is released under the MIT license.
No. It is a lexical filter: it does not understand intent or context, and an allowed input is not guaranteed to be appropriate. Combine it with server-side checks, reporting and human review.