DEV Community

Peter Wan
Peter Wan

Posted on

Learning by Doing: working on ImprovedTube

Hi!

This blog a mental note about how I want to start learning about browser extensions by contributing to ImprovedTube, a well known browser extension that enhances your experience on YouTube.

I've always wanted to learn more about browser extensions, but never found myself in a position where I had the time to do so. Fortunately, one of the courses I'm currently taking - Topics in Open Source 2024, has presented an opportunity for me to work on projects that I'm actually interested in. For me right now, that is browser extension development.

I chose browser extension development because I wanted to use and refine the existing skillset I have with regards to Web Development (i.e., knowledge of HTML, JavaScript, and CSS). Browser extensions from what I have seen, lets me make use of all of the skills that I built so far with regards to web development, but won't necessarily force me to build a whole web app or web page by myself. From my experience, I find that most extensions that I use such as adblockers or light mode/dark mode extensions really adjust the content of existing web pages. By working on extensions that manipulate existing web pages, I hope to learn more about how websites like YouTube are structured by directly controlling some of the elements that they provide.

I was particularly drawn to ImprovedTube because it lets me customize my experience on YouTube - something I use on a daily basis. I know that if I work on ImprovedTube and if my changes get accepted, that I will feel immensely rewarded.

My plan of attack for learning about extensions in general

As mentioned in one of my previous blogs, I initially was going to peruse Mozilla's documentation on cross-browser development. However, I never really got to doing their particular examples. Instead, I've begun working through some examples from Chrome's guide instead:

Extensions / Get started  |  Chrome for Developers

All the basics to get started with Chrome extensions

favicon developer.chrome.com

You can kind of see that I have a little note-taking thing here going on:

my-notes

Without diving too much into the details, I plan on reading through this documentation and getting a hands-on feel for how things work. The great thing about browser extension development for me so far is that I get immediate feedback from the changes I make to the browser extension code. I plan on completing the rest of the Getting Started section from Chrome's documentation, while constantly looking back at ImprovedTube's code to see how they make use of these concepts in their own extension.

The family of issues I think would be good for me to tackle on ImprovedTube

At the time of writing, I've been working on this particular pull request, that aims to hide a link that appears on videos and video cards on YouTube. After working on this issue (even though it hasn't been accepted yet), I think I have a decent grasp on what files I need to modify to see the desired changes.

The particular family of issues I think I'd be able to handle would be any issues regarding hiding something from YouTube that users don't want to see.

In fact, I might ask the maintainers if they'd be open to me writing some documentation for them so that it will be easier for new open source contributors to add features like this themselves.

Conclusion

I still have lots to learn about Browser Extensions and ImprovedTube, but I'll try to learn more about both by doing.

That's all from me, see you next time!

Top comments (0)