Shining a Light on Web Tracking
Lightbeam | An Open Project Spotlight
Princiya Marina Sequeira (@princi_ya) is a Software Engineer and an Outreachy intern on Lightbeam with Mozilla. Princiya was selected to join our current round of Mozilla Open Leaders for her work on Lightbeam.
I interviewed Princiya to learn more about Lightbeam and how you can help.
What is Lightbeam?
Lightbeam is a key tool for Mozilla to educate the public about privacy. Using interactive visualisations, Lightbeam’s main goal is to show web tracking, i.e. the first and third party websites you interact on the web.
When you activate Lightbeam and visit a website, sometimes called the first party, the browser web-extension creates a real time visualisation of all the third parties that are active on that page. As you then browse to a second site, the extension highlights the third parties that are also active there and shows which third parties have seen you at both sites. The visualisation grows with every site you visit and every request made from your browser.
How did you start working on Lightbeam?
Outreachy is a program to increase diversity in open-source. I and my co-itern Bianca Danforth, were chosen as interns for the remake of Lightbeam in round 14 of Outreachy. During the course of our Outreachy internship, we successfully migrated this legacy add-on into an extension using the modern browser web-extension apis.
What are you most proud of accomplishing during the mentorship program?
For MozFest, I tried to create an immersive experience with A-frame for Lightbeam.
This unique Lightbeam experience makes exploring trackers feel more like playing a game. This is also a great medium for engaging an audience who might not otherwise care about web privacy & security.
What challenges have you faced working on this project?
There have been numerous technical challenges along the way, and we are proud to have tackled them. Following have been the key highlights of this project:
- Visualisation performance — the rendering of the graph using <canvas> with D3.js force layout.
- Asynchronous data capture and storage.
How can others help you continue the work on Lightbeam?
Here is our contributing docs.
(Technical) We appreciate Pull Requests for the following:
- We have open issues on Github
- There are a number of missing features from the older version of Lightbeam, which we haven’t implemented yet in this new version, due to time and resource constraints
- Please try out the new Lightbeam and give us your valuable feedback here.
- It would be great to have a localised version of Lightbeam and we want contributors to help us with translations here.