Opt Out is a browser extension for Firefox that filters online misogyny from an individual’s twitter feed.
The General Data Protection Regulation (GDPR) has changed our lives online on social media platforms. We have the right to be forgotten, to see what is being collected about us and to opt-out if we wish. The current abuse that those who identify as women suffer is not avoidable. We see Opt Out as an extension of the GDPR that also protects the human rights of women and those with intersecting identities online. While steps have been made to protect these people online, not enough has been done. This is a global tragedy affecting the well-being, economical potential and political representation of these people. Let's Opt Out.
To learn more about this problem and explore the steps Opt Out is taking to combat it, see the Opt Out Wiki.
The project is still in its infancy. Please see 'Project Development' below for the current status.
Test / Deploy
To test the current prototype:
- Clone a local copy of the master branch of this repo
- Start Mozilla Firefox
- Set the url to
about:debugging#/runtime/this-firefoxand hit enter
- In the
Load Teporary Add-onsbox, open and load
manifest.jsonwhich can be found in the
extensionsfolder of this repo you cloned locally
- Open Twitter and test!
- If you make changes to the code you would like to test, make sure you click "reload" (left of the "remove" button) to apply new changes to script
Opt Out is an open source project under active development. Currently, machine learning models are being evaluated for their ability to classify sexual harassment text. If you would like to test the current model (trained on troll data), please see the 'Installation Instructions' below. If you would like to contribute to the project, please see Contributing first, and then check out the find-out and try-out repos.
This project is set up to use Circle CI as the CI tool.
Every Pull request (from branches or forks) and every version of the
master will automatically start a new build on circle ci.
This will run the following checks:
- eslint to ensure coding style guidelines are followed
- tests TBD
A pull request can only be merged if all checks are successful. To avoid any last minute failures, we recommend to use eslint locally before making your commit:
npm run lint
This will run eslint on all js files and try to fix all problems it finds. What can't be fixed automatically will be raised as error.
Adding a local pre-commit hook
In case you want to be 100% sure that the linter is always running before you commit you can add this as a git hook. This means it will run the linter before every commit you try to make:
The easy way:
If you do not have a pre-commit hook defined yet, there is a script that will copy the file for you. Run this command and it will create the pre-commit from a template for you:
npm run git:initHook
If you already have a pre-commit hook defined but don't care about overwriting it, you can use the same command with the
This will copy the template even if the file exists already.
npm run git:initHook -f
The slightly harder way
- Open the file
- If the file does not exist, create it.
- Add the following to the file and save it:
npm run lint RESULT=$? [ $RESULT -ne 0 ] && exit 1 exit 0
If you would like to fund the project or make a donation, please email Opt Out.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.