Skip to content
JakesMDPublic

About

A huge, clean, profanity-free word list for family-friendly games and projects.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

Re-Enable

A clean version of the ENABLE word list (or lexicon), designed for family-friendly games and projects. The main word list contains over 172,000 words!

Preview of the re-enable.txt word list on GitHub


What is Re-Enable?

Re-Enable is a public, profanity-free word list. It's a carefully cleaned-up version of the well-known ENABLE list, which stands for "Enhanced North American Benchmark LExicon." Originally compiled in the 1990s as a curated collection of words for Scrabble and other word games, it was a free alternative to official, copyrighted word lists. It is the result of a long process of compilation and review by word-game experts and linguists. Because of its origin date, the list may not include many newer words that have entered the English language in the last two decades.

While other clean versions exist, such as the one used for Words With Friends, they aren't publicly available for you to use in your own projects. Re-Enable was created to be the go-to resource for anyone who needs a dependable, family-friendly word list for their games, apps, and other projects.


Features and Principles

The main word list is found in re-enable.txt.

As it's based on the ENABLE list, Re-Enable follows its core rules:

  • No proper nouns (e.g., names, places).
  • No abbreviations.
  • No words with spaces, hyphens, or apostrophes.
  • No one-letter words.
  • No words with foreign letters.
  • No obscure or archaic words (words that are no longer in common use or are highly specialized).

Building an app with it? A free API endpoint lets your users report words straight from your app. Every report helps us keep the list clean and complete for everyone. See Reporting Words from Your App.

Our Policy on Cleanliness

With a list this large, mistakes are bound to happen. Some profane words may have been accidentally left in, and some non-profane words may have been removed. We've removed over 400 words, but we've also adopted a nuanced policy to handle complex cases.

  • Strictly profane words are removed entirely from the list. If a word is only used for its profane meaning, it's out.
  • Words moved to unfiltered.txt are words that have a valid, non-profane meaning but are often used in a profane or otherwise non-child-friendly way. We made this choice so you can decide for yourself whether to include them in your project.
  • Non-offensive words with an offensive context are left in the main list. For example, a word that has a legitimate, everyday meaning but is only offensive in a very specific context is kept.

How to Contribute

We rely on the community to help us keep the list accurate. The more people who use and review this list, the cleaner it will get.

Suggesting a word for removal

If you believe a word shouldn't be in the list, please open an issue or pull request. To maintain a clean and respectful issue tracker, please use a general title like "Suggested word removal" and do not mention the word in the title.

Suggesting a word for addition

If you find a word that is missing and follows the core principles of the list, feel free to open an issue to suggest it. This helps us ensure that all additions align with the project's standards.


Reporting Words from Your App

If your app uses Re-Enable, you can let your users report words without leaving the app and without a GitHub account. Send a POST request with the word and the type of report:

curl -X POST https://re-enable-reports.jakesmd.workers.dev/report \
  -H "Content-Type: application/json" \
  -d '{"word": "example", "type": "remove"}'
Field Value
word The word being reported. Letters only, 2 to 28 characters, any case.
type remove for a word that shouldn't be in the list, add for a missing word.

Each word gets a single issue in this repository. Reporting a word that already has an open issue adds to its report count instead of opening a duplicate, so the most-reported words stand out.

Responses

A successful report returns a status and a link to the issue:

HTTP status Meaning
201 reported A new issue was opened for the word.
200 counted The word already has an open issue. Its report count went up.
200 reviewed The word was already reviewed and its issue closed.

A rejected report returns an error:

HTTP error Meaning
400 invalid_json The request body isn't valid JSON.
400 invalid_type type isn't remove or add.
400 invalid_word word is missing or isn't 2 to 28 letters.
422 not_in_list A remove report for a word that isn't in the list.
422 already_in_list An add report for a word that is already in the list.
429 rate_limited Too many requests from this IP address. Try again shortly.
429 daily_limit_reached The endpoint has opened its maximum new issues for today.
502 upstream_error The report couldn't be filed. Try again later.

Reports are public, and nothing but the word and type is stored. The endpoint's source is in the worker folder.

About

A huge, clean, profanity-free word list for family-friendly games and projects.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages