npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@coffeeandfun/google-profanity-words

v3.0.0

Published

Real profanity words banned by Google, extracted from their hidden API before shutdown. Now available as an easy-to-use Node.js library for content filtering.

Readme

alt text

☕ Google Profanity Words

A fun and developer-friendly profanity detection library brought to you by Coffee & Fun LLC ☕🎉
Built and maintained with love by Robert James Gabriel 💻✨

npm version Stars


🚀 What’s This?

Google Profanity Words is a Node.js library that helps you detect and filter out naughty language (in multiple languages!) from your apps or content. Whether you’re building a chat app, a comment section, or a game—this one’s your profanity-slaying sidekick.

Made by devs for devs. Maintained by Robert at Coffee & Fun ☕❤️


✨ Features

  • 🌐 Multilingual support – English and Spanish out of the box. More coming soon!
  • 🔁 Monthly updates – Stay fresh with the latest no-no words
  • 💡 Easy to use API – Straightforward methods, async/await friendly
  • 🔬 Tested with Jest – Fully covered and ready for production
  • Tiny & Fast – Minimal deps = speedy installs and performance

📦 Install Me

npm install @coffeeandfun/google-profanity-words

⚡ Quickstart Guide

import { ProfanityEngine } from '@coffeeandfun/google-profanity-words';

// Default is English
const profanity = new ProfanityEngine();

// Español? You got it.
const profanityES = new ProfanityEngine({ language: 'es' });

// Check a single word
const isBad = await profanity.search('example');

// Or check a full sentence
const hasCurses = await profanity.hasCurseWords('This is a test sentence');

console.log(isBad, hasCurses); // true / false

🔍 API Docs (But Make It Chill)

🛠️ new ProfanityEngine(options?)

Create a new profanity detector engine!

const profanity = new ProfanityEngine(); // Defaults to English

Or choose a specific language:

const spanishProfanity = new ProfanityEngine({ language: 'es' });

Options:

  • language (string, optional):
    • 'en' = English (default)
    • 'es' = Spanish
    • If a language isn’t available, it falls back to English.

🔎 search(word)

Check a single word to see if it's naughty.

const isProfane = await profanity.search('heck');
console.log(isProfane); // true or false

💬 hasCurseWords(sentence)

Check a full sentence or phrase for profanity.

const result = await profanity.hasCurseWords('You silly goose');
console.log(result); // probably false, unless goose is banned now 🪿

📜 all()

Get the full list of bad words in the current language.

const badWords = await profanity.all();
console.log(badWords); // ['word1', 'word2', 'etc']

💡 Real Talk: Edge Cases

  • Empty strings? We gotchu. Returns false.
  • search() and hasCurseWords() are case-insensitive.
  • Special characters and punctuation? No problem.

🧪 Testing with Jest

We've got testing covered like whipped cream on a latte ☕🎂

Run the default test suite:

npm test

Or use more specific Jest commands:

# Watch mode (great for dev workflow)
npx jest --watch

# Run tests in a specific file
npx jest path/to/your/file.test.js

# Run coverage report
npx jest --coverage

# Run with verbose output (get all the juicy details)
npx jest --verbose

Tests are located in the /__tests__/ directory and use the real profanity files, so you know it’s legit 👀✅


🔀 Example Use Cases

✅ Filter User Input

async function filterInput(input) {
  if (await profanity.hasCurseWords(input)) {
    return '⚠️ Whoa there! Language, please.';
  }
  return input;
}

🌍 Multi-language Setup

const en = new ProfanityEngine({ language: 'en' });
const es = new ProfanityEngine({ language: 'es' });

const englishResult = await en.search('bad');
const spanishResult = await es.search('malo');

🌍 Want to Contribute?

We love open source buddies 💛

Add a New Language

  1. Fork it 🍴
  2. Add a file to /data/ named like fr.txt for French
  3. Fill it with one profane word per line
  4. Push & open a pull request!

🙌 Who Made This?

Built by Robert James Gabriel and the good people at Coffee & Fun LLC. We make dev tools with accessibility, coffee, and good vibes in mind.

Wanna support? Send a coffee our way or just spread the word! ☕🚀


🧡 License

MIT – because sharing is caring.


💬 Support & Community


Made with ☕, code, and a sprinkle of magic at Coffee & Fun LLC 💖

AI Usage

Calude AI was used to help with this read me & adding extra Jest tests.