# italian-profanity > Open-source Italian profanity filter for JavaScript, TypeScript and Flutter. Detects bestemmie, insults and vulgar words in nicknames and usernames, offline, without blocking innocent names. Italian-first profanity detection for short user-generated text (nicknames, usernames, room and team names). Same rules and same verdicts in JavaScript/TypeScript and Dart/Flutter. MIT licensed, offline, zero runtime dependencies. In Italian: libreria per riconoscere bestemmie, insulti e parolacce in nickname e testi brevi. ## Install - npm: `npm install italian-profanity` - Flutter: `flutter pub add italian_profanity` - Dart: `dart pub add italian_profanity` ## Usage ```ts import { check } from "italian-profanity"; check("D10 p0rc0").action; // "block" check("Claudio").action; // "allow" ``` API: `check(text)`, `findMatches(text)`, `isClean(text)`, `createChecker(options)`. Profiles: balanced (default), strict, lenient. Optional English with `languages: ["it", "en"]`, optional contact detection with `contacts: true`. ## Docs - [Website and live playground](https://italian-profanity.eliazavatta.it/) - [Developer documentation](https://italian-profanity.eliazavatta.it/docs/) - [Sito in italiano](https://italian-profanity.eliazavatta.it/it/) · [Documentazione in italiano](https://italian-profanity.eliazavatta.it/it/docs/) - [Integration guide (Italian)](https://github.com/eliazv/italian-profanity/blob/master/docs/integrazione.md) - [Source code](https://github.com/eliazv/italian-profanity) - [npm package](https://www.npmjs.com/package/italian-profanity) - [pub.dev package](https://pub.dev/packages/italian_profanity) ## FAQ ### What is italian-profanity? italian-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. ### How do I add an Italian profanity filter to a JavaScript or Flutter app? 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. ### Does it block innocent names like Claudio or Diodato? 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. ### Does it detect Italian blasphemy (bestemmie)? Yes. Divine terms are flagged only when combined with an insult, so "dio" alone is allowed while variants such as "D10 p0rc0" are blocked. ### Which evasion tricks does it catch? Leetspeak (0 for o, 1 for i), separators and punctuation between letters, spaced letters, repeated letters, accents and Unicode look-alike characters. ### Does it send user text to a server? 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. ### Does it support English? 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. ### Is it free to use in commercial products? Yes. italian-profanity is released under the MIT license. ### Is a profanity filter enough to moderate a community? 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.