glin-profanity weekly downloads statistics
Glin-Profanity is a lightweight and efficient npm package designed to detect and filter profane language in text inputs across multiple languages. Whether you’re building a chat application, a comment section, or any platform where user-generated content
glin-profanity has 12,204 recorded weekly downloads on npm, a decrease of 24.2% over the past 30 days, ranking #905 of 2,322 tracked listings.
About glin-profanity
Installation
npm install glin-profanity
Quick Start
import { checkProfanity, Filter } from 'glin-profanity';
// Simple check
const result = checkProfanity("This is f4ck1ng bad", {
detectLeetspeak: true,
languages: ['english']
});
result.containsProfanity // true
result.profaneWords // ['fucking']
// With replacement
const filter = new Filter({
replaceWith: '***',
detectLeetspeak: true
});
filter.checkProfanity("sh1t happens").processedText // "*** happens"
React Hook
import { useProfanityChecker } from 'glin-profanity';
function ChatInput() {
const { result, checkText } = useProfanityChecker({
detectLeetspeak: true
});
return (
<>
<input onChange={(e) => checkText(e.target.value)} />
{result?.containsProfanity && <span>Clean up your language</span>}
</>
);
}
Features
| Feature | Description |
|---|---|
| Leetspeak detection | Catches f4ck, sh1t, @ss |
| Unicode normalization | Handles Cyrillic/Greek lookalikes |
| ML toxicity detection | TensorFlow.js integration |
| 23 languages | Arabic to Turkish |
| Result caching | LRU cache for repeated checks |
| React hook | useProfanityChecker built-in |
API
Core Functions
// Full check with options
checkProfanity(text: string, config?: FilterConfig): ProfanityCheckResult
// Quick boolean check
isProfane(text: string): boolean
// Async version
checkProfanityAsync(text: string, config?: FilterConfig): Promise<ProfanityCheckResult>
Filter Class
const filter = new Filter({
languages: ['english', 'spanish'],
detectLeetspeak: true,
leetspeakLevel: 'moderate', // basic | moderate | aggressive
normalizeUnicode: true,
cacheResults: true,
maxCacheSize: 1000,
replaceWith: '***'
});
filter.isProfane('f4ck'); // true
filter.checkProfanity('bad word').profaneWords; // ['bad']
filter.clearCache();
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
languages | string[] | ['english'] | Languages to check |
allLanguages | boolean | false | Check all 23 languages |
detectLeetspeak | boolean | false | Enable leetspeak detection |
leetspeakLevel | string | 'basic' | basic / moderate / aggressive |
normalizeUnicode | boolean | true | Normalize Unicode homoglyphs |
cacheResults | boolean | false | Cache results for repeated checks |
maxCacheSize | number | 1000 | LRU cache limit |
replaceWith | string | undefined | Replacement string |
customWords | string[] | [] | Add custom profane words |
ignoreWords | string[] | [] | Whitelist words |
severityLevels | boolean | false | Enable severity mapping |
Documentation
| Resource | Link |
|---|---|
| Getting Started | docs/getting-started.md |
| API Reference | docs/api-reference.md |
| Framework Examples | docs/framework-examples.md |
| Advanced Features | docs/advanced-features.md |
| ML Guide | docs/ML-GUIDE.md |
| Main README | README.md |
License
MIT License - see LICENSE
<div align="center"> <sub>Built by <a href="https://glincker.com">GLINCKER</a></sub> </div>
Description from the npm listing.
- profanity
- curse
- react-profanity
- glin-profanity
- glincker
- glin
- bad
- badword
- profanity-cleaner
- swearword
- profanity-filter
- badword-filter
- badword-detection
- badword-detect
- checker
- filter
- detection
- detect
- profane
- profane-language
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (544)Similar npm AI SDKs plugins
All 20 glin-profanity alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/glin-profanity. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.