Build Chrome extensions quicker with a TypeScript boilerplate project

Automate Chrome extension publishing to Chrome Web Store

ExtensionNinja | 3/11/2023

At some point everyone gets tired of building, zipping, uploading extension bundle to Chrome Web Store and then repeating everything again after noticing a small spelling mistake or a bug. Now replicate that over multiple extensions you may be maintaining, and we have a lot of unproductive time that could be spent on writing code.

If you are feeling this pain already, then good news, you are ready to invest a few minutes to automate your web extension publishing to Web Store. I will be using GitHub and GitHub Actions, but the same steps can be easily transferred to a different provider or even run locally.

At the end of this article, you will have a flow where you create a GitHub release tag, and the latest version of your extension automatically appears in Chrome Web Store ready for publishing. Continue reading...

Chrome Manifest V3 brings a new API to fetch website favicons in extensions

ExtensionNinja | 2/18/2023

There are too many interesting articles on the internet and too little time to read them all. One day when my “read later” bookmark folder reached 200 pages, I concluded that there is no way that I am going to read them all without a habit change. Like any software engineer I have decided to write some software to solve my problem. This is how a new extension was born to display my read later bookmarks in Chrome new tab page and give me constant reminder of unread articles.

Shortly after releasing my extension, Google announced transition to Manifest V3. My extension was a couple hundred lines of code so I thought that it would be piece of cake to migrate to Manifest V3. My thinking quickly changed after the first run in MV3 mode. The good part is that all my code on top of bookmark API worked as before with bonus of being promise based. The bad part is that all favicons for bookmarks failed to load. Not having favicons next to bookmarks would be a big UI downgrade. How do you display favicons in MV3? Well, it turns out that Google simply forgot (down prioritized) to implement this feature in MV3. Ups. Continue reading...

How to use Web Accessible Resources in Chrome Extensions

ExtensionNinja | 2/11/2023

You are working on a content script that shows your custom UI on a website and you want to display your extension logo or use your brand font. How do you achieve this? One way is to host these resources on your website or CDN and hardcode URLs in your content script code.

But you may be in the situation where you don’t have a website or want to manage, support and pay for a complex flow of deploying resources somewhere on the internet. In this article, we will explore an alternative way to supply web resources to your content script that is fully self-contained to your extension code and deployment. Continue reading...

Official: Chrome Manifest V2 phase out is paused!

ExtensionNinja | 12/10/2022

We have received some good news from the Chrome extension developer relations team today. All previously communicated Manifest V2 phase out dates are put on-hold. The Chrome extensions team is reacting to mounting developer dissatisfaction with the Manifest V3 model and non-existent workarounds for common V2 capabilities. Chrome team’s current plan is to iteratively ship features that unblock migration to V3 manifest and then resume V2 phase out plan. Continue reading...

How to get an Established Publisher badge in Chrome Web Store?

ExtensionNinja | 10/9/2022

“Established Publisher” badge is another new way introduced by the Chrome Web Store team to distinguish publishers with good track record and adherence to store guidelines. This badge should give more peace of mind to users and increase chances that users chose your extensions instead of low quality competitors. You also get your website address shown more prominently in the Web Store listing page. So, how do you get this badge? Continue reading...

Older posts