6
5 Comments

Extension makers: let's exchange notes!

If you have built many extensions what are some things you have picked up over time and pay attention to now, that you did not necessarily know in the beginning?

For me it is trying to build extensions around generic browser features that are unlikely to change drastically over time. Images, css, json, color picker tools etc. would be good examples. I avoid building around specific (3rd party) websites that may break the extension if the website changes since I have no control over it.

What are some things you look out for?

on October 21, 2020
  1. 2

    Here are my notes:

    • Extension development is a pita. Avoid unless absolutely needed
    • CWS treats developers badly. Again, avoid unless needed
    • While building a simple extension is quiet straightforward, building more complex extensions is very hard, and there's a lack of knowledge in this area.
    • Generally speaking, an extension is best built as part of a larger saas offering. The more simpler your extension is (in the context of your whole product), the better.
    • For all its warts, CWS is actually a good organic source of traffic.
    1. 1

      CWS has incredible organic conversion. Its worth really optimizing the naming and descriptions.

      1. 1

        Yeah agree, definitely underrated vis other marketing channels

    2. 1

      These are all very valid points, thanks!

  2. 1

    Agree with @shash7 that extension development is a pita. Once you get beyond trivial extensions, there's a lot of hoops you have to jump through for security reasons. For example, you have to pass messages between each component of the extension (content script, background page, etc.) because each component has a different trust-level/privileges.

    Here are some of the tools that I've been using to make it better:

    • Mozilla's web extension polyfill (I use webextension-polyfill-ts): allows you to use a promise-based API for browser APIs in Chrome
    • webpack-extension-reloader: automatically reload the extension in Firefox/Chrome
    • Typescript: good autocomplete helps when working with APIs you're unfamiliar with. Also, static typing helps eliminate errors. That's important because unit testing web extensions is hard (you have to handle both the browser APIs and the DOM APIs), and the web store review process means it can take days to release bugfixes

    I'm actually building a low-code browser extension platform. If you want an extension capabilities for your project, but don't want to deal with the challenges of building and distributing an extension, reach out to me.