CC Open Source Blog

CC Browser Extension - A GSoC Project

author's gravatar

by Mayank Nader on 2019-06-20

This blog is part of the series: GSoC 2019: CC Search Browser Extension

With the Creative Commons engineering team working very hard to catalog and index a plethora of CC-licensed works floating all over the internet, the next step is to make a suite of user-centric applications and interfaces to interact, consume and even reuse the content. The CC-Search is one such app with over 300 million CC-Licensed images indexed and since there is a full separation of concern between the backend (CC-Catalog-API) and frontend (CC-Catalog-frontend), we can leverage the backend architecture to design plugins for other platforms.

This GSoC project aims to do this by making a Cross-Browser extension to interact with CC-Catalog-API.

Why browser Extension?

The Plan:

The first task would be to make an MVP that would be inspired by the CC Search design. For this, I will make sure to have the least dependence on browser extension APIs (probably use only browserAction) so that the extension can be easily ported to different browsers without any major change in the code. Sure, we still have to work out porting and polyfilling CS3 and javaScript code to work on different browsers, but having one less thing to worry about while porting the initial version of extension will only help.

Then I want to move to the next step and work on things that would make the user experience more personal and intuitive and here various browser extensions APIs would come handy, like storage, tabs, etc. Then the priority would shift to making the extension compatible with Firefox and chrome.

What do I mean by Personalized experience?

Most people who will download the extension would want it to act as their own. They would want to customize it so that their flow is more intuitive and they don't have to repeat steps like if one user searches extensively for CC Content on Behance and DeviantArt only, they would want to not set the search filter before every new session. This is where the browser extension shines.

One good example of solving this problem would be to make an options page, that would open in a new tab, where they can set the filters they use more often as default.

Similarly, if we add a feature, say dark-mode, then the users who prefer it over the default can set their preferences.

Work Done till Now:


CC Browser Extension Screenshot

Coming up

How you can help

The development is still in the initial phase but you can check out a working extension at the Github Repository. There are instructions to help you get started and load it to Firefox.

Tell us what you expect the extension to do, or a feature that you wish would be implemented. At this early stage of development, it might help us improve our goals. You can join the discussion on #gsoc-browser-ext channel on slack.

I would like to thank Alden, Timid and Kriti to for their mentorship and providing an experienced perspective and solutions to the problems faced by this naive developer.