In today's turbulent political environment, safe spaces have become a controversial topic, giving all the more reason for them to exist. But when we go online, not much exists to keep highly variable browsing experience safe from hurtful remarks or inappropriate content. That's why we created Safespace - a straightforward, customizable content blocking Chrome extension.

What it does

The hack offers protection by removing specified content at the user's desired setting. There are three levels of protection:

  • Just text - basic text (headers, paragraphs, spans, list items)
  • Default - page sections (divs)
  • Extreme - entire pages

Additionally, users are able to add words or phrases to be considered "unsafe". These, in addition to some other scary things we have preset to remove, are removed as described above and can be readded with the simple click of a button.

How we built it

Our languages of choice were HTML5 and Javascript. The main components of the extension's functionality can be broken down into three parts:

  • searching - Using regular expressions, we did an initial scan through of each page's content to see if filtering needed to occur.
  • filtering - Using JQuery's selector, we filtered elements by excluding HTML elements based on the user's setting.
  • storing - Using Chrome's storage, we synchronized and stored the user's list of things to remove so that it works on any instance of Chrome that he/she is signed into.

Accomplishments that we're proud of

For one thing...


On a more serious note, we are thrilled about how lightweight Safespace is. Because it uses Chrome storage, we wouldn't need to setup/maintain a database if the extension was deployed.

What we learned

This was our first time making a Chrome extension, so we now know a lot more about them and how they work. Additionally, we have a much better understanding of how content filters work.

What's next for Safespace

Due to the complexity of the HTML for sites like Google and Facebook, there is definitely room for improvement in filtering. We also hope to reduce the time it takes to filter, and add more options for the user.

Built With

Share this project: