The latest version of Firefox is a huge milestone for Mozilla and represents the combined efforts of hundreds of people from around the world. To celebrate this launch we revisited Glow, a real-time visualization of Firefox downloads originally used during the launch of Firefox 4 in 2011.
This time we wanted to do more than just show downloads. We wanted to give people a chance to express what they want the Web to be. To this end, users visiting https://webwewant.mozilla.org/ have the option to share with Mozilla and the world their hopes for the Web. These “shares” are displayed on the map and we display information about which issues are most important in each continent and country.
The dots on the map represents people: either someone downloading Firefox or sharing the Web they want. For me, watching the map is both humbling and inspiring. When people use Firefox— a free and open source browser made by an amazing community— and choose to share with the world what matters to them, it shows a global commitment to the future of the Web.
How do we process millions of interactions and display them?
The site processes request logs for Firefox downloads, auto-updates, and users who share via the website. We perform geolocation lookups on the data and aggregate the information for consumption and display by the Web application.
We have a particular love of the Simpsons on our team and elements of our project are named appropriately:
- Mr. Burns – The overall codebase.
- Smithers – The “servant” scripts who provide data to Mr. Burns.
Mr. Burns relies on three main scripts to display data:
- Bart – Parses log files looking for Firefox downloads or auto-updates.
- Lisa – Geolocates parsed data and aggregates into buckets.
- Milhouse – Packages data into JSON for consumption by the front-end.
The flow of data can be seen in this diagram:
Data is stored in Redis and the JSON files are delivered to the front end application via CDN. The front end app renders the individual “glows” and the stats using D3.js.
This was a large project with many participants, all of whom deserve thanks. I would like to thank a few people who worked especially hard:
Eric Petitt – Project Sponsor
Paul McLanahan – Senior Developer
Steven Garrity – Senior Developer
Ali Almossawi – Metrics Engineer
John Slater – Creative Director
Sean Martell – Art Director
Matej Novak – Copy Director
The Localization Team & Contributors
And you! Without you the world would have no Glow.