Week 3 : Extensions

Team 3!

This week, I explored Firefox extensions as a simple example of open source projects. Our Open Source Development professor divided us into teams based on our levels of expertise in Git and Javascript and tasked us with a couple of readings and a chance to create our very own browser extension. Knowing that the teams were divided more or less equitably made me dread this activity a lot less — not because I don’t like teamwork, but because I find it difficult to gauge what is a good level of expertise. Do I know Javascript if I have to Stack Overflow my issues every time I sit down to code? Do I know Git if I’ve spent nights trying to undo a merge commit but finally did it? Funny enough, but once I started working with my team, there wasn’t really time to worry about all those things. Which is a good thing.

During our wonderful activity (which turned out to be a race between all teams), we were trying to write and run two test Firefox extensions, and my main takeaway is it’s not that hard! Well, writing an actually helpful extension is probably very hard — but structurally, it’s just a few files and settings. I don’t know what I expected, but Firefox’s tutorial made creating my own extension seem very doable and kind of exciting!

So we made it through running the two extensions, as well as learning the anatomy of an open source project: from its license to the CONTRIBUTING.md file to the Code of conduct. While the reading Forge Your Future with Open Source briefly talked about all this, too, I was glad to explore the ways these files are really used by actual developers.

Our baby extension

While we only have a rough sketch of our extension as of now, I’m sure it’s going to turn out great. We are planning to create a Firefox extension that records the time a user spends on a particular website. Right now this idea doesn’t sound too exciting… However, I’m really curious as to how this can be accomplished and I think this idea works as our first collaborative open source project in this OSSD class.

Written before or on February 9, 2025