Week 3 - My Very Own Open Source Project

I’m excited to share my journey on my very first open source project - a Firefox extension called Insult Reminders. This idea stemmed from my personal affinity for productivity timers, but feeling I could use an extra dose of motivation when I inevitably hit snooze.

The Concept: Mixing Productivity with Playful Humor

Insult Reminders provides configurable timers for tasks or breaks. But if you choose to snooze when the alarm goes off, get ready for some hilarious insults lobbed your way! The idea is to add a touch of humor while also incentivizing actually sticking to routines. I thought others might like the friendly push from some funny insults to keep them on track with their plans.

My teammates and I see a lot of generic timer extensions out there, but none with this silly twist. And making it open source allows for community enhancements suiting different preferences over time.

Progress and Challenges

While Insult Reminders sounded simple in concept, actually constructing that initial browser extension proved quite the challenge since none of us had built browser extensions before. We started by exploring some existing extensions to understand basics of manifest files, permission needs, etc.

Lots of experimentation with code snippets and functionality tweaks followed. We built gradually on each other’s incremental work to steadily expand capabilities. After plenty complex efforts and mistakes along the way, foundational pieces fell into place!

My first contributions focused on properly open-sourcing the project and facilitating future community involvement. I added licensing, a code of conduct, contribution guidelines, and other docs to create a welcoming environment for contributors. I also developed core timer functionality like binding the snooze button to randomly serve up insults from categorized banks based on number of snoozes. This allows for expanding the humor library over time.

Some wrinkles still remain displaying output directly on Firefox panels. I’ve pinpointed that the issue arises from Firefox’s security measures and using EventListeners instead of onClick should fix the issue. But the foundations are coming together!

Additionally, an class exercise on collaborative Git reinforced vital version control skills. With 25+ students concurrently pushing changes and conflicting edits on shared files, chaos ensued! Resolving countless merge conflicts and rebasing branches built up my confidence handling GitHub disasters. It was great practice for real-world team coordination.

Onward with Insult Reminders

While much polishing remains for Insult Reminders, I’m proud my teammates and I plunged into uncharted waters and learned volumes along the way. Each commit and contribution makes the software incrementally better for all.

I welcome any feedback or contributions from browsers who stumble across this project! Please feel free to check out InsultReminders on GitHub.

Written before or on February 12, 2024