5
23 Comments

What I learned from making a browser extension

I recently got interested in making browser extensions. I found that to be a fun new thing for me.

After going over a few getting started guides and experimental extensions, I became a browser extension freelancer and published my own Chrome extension I've come to realise a few important things about making one.


Use a framework

At first glance, I thought extensions were small apps that don’t need anything else on top of barebones HTML & CSS. Furthermore, I didn't know using a framework like React was possible. But after putting some additional thought and research into the idea, I've realised that it's possible with a few modifications to the build process. Additionally, some functionality (like routing) needs extra care in the set-up phase to work correctly in the extension environment.

I was able to build extensions at the same speed as I can build web apps. That helped me immensely in my journey to earning money with browser extensions.


Publishing hell

After completing the MVP of my Chrome extension, I was excited to put it on the Chrome Web Store. After a short session of filling out the essential details (name, description, etc.) about the extension, I pressed the big blue button "Submit for review".

Wait. What does that mean?!

It turns out that the Chrome team manually reviews each extension, and the process takes anywhere from a few hours up to multiple weeks. That being said, I completely understand why that needs to be done, but it shocked me.

Another problem that arose from this obstacle was fixing bugs. No longer can I fix a minor, annoying bug and push the change. No, because every publish takes some time to get reviewed, and in the meantime, you cannot overwrite the "In review" version with another one.

Me being trigger happy, I submitted the extension for review, immediately found an annoying bug and realised that I could not upload the fixed version until the previous one was reviewed (so if you are going to try my extension and it's still in version 0.0.1, you are going to experience the annoying bug).


tl;dr

Making extensions is fun using the right tools, but publishing them is hell.

posted to
Browser Extension Makers
on July 18, 2022
  1. 2

    This is great thank you for sharing! I didn't realize that it takes weeks to get approved. It makes sense but that can really suck for an indie hacker. I had a friend who waited about 2 months for his to get approved.

    The bug fixes are another thing I didn't consider. That's pretty crazy. I feel like they should expedite it if you're already published and have credibility with users. Google probably wants to make money off this process 🙄

    1. 1

      They claim that 90% of all submissions are processed within 24 hours. That’s neat on paper, but if you’re in the unlucky 10%, deployment takes a big hit, IMO.

      Exactly. It seems crazy that the extension goes through the same process no matter what. Agree with you on that.

  2. 2

    I tried building extensions (using React) several years ago– though I never built anything I was ready to publish. I think if I were going to try again today it seems like a good opportunity to try out one of the newer frameworks with smaller footprint like Solid.js or Astro.

    I use timers to work in blocks pretty often so I'll give your extension a try.

    Cheers!

    1. 1

      Thank you 🙏 I hope early bugs won't be too much of a bother for you

      Yeah, I've considered using a more footprint-optimized framework but learning to make an extension was my primary goal. Now that I am pretty confident with it, I might try some of the frameworks you mentioned.

  3. 1

    We build our extension as a kind of a frame that displays data from our servers. This means that we could make improvements without republishing each time

    1. 1

      Can you give a high-level of how you are doing this? I was thinking of setting up an iframe and passing the entire UX to the extension.

      1. 1

        The extension functions are part of the .zip files. The content displayed come from our end. So if we want to upgrade buttons that control the extension we need to update the .zip, but if we are updating the content fetched...we are not tied to the extension...so not full customizing outside the .zip file but plenty of...

    2. 1

      Is that allowed? Correct me if I'm wrong, but as far as I know the extension must be served in its' entirety from the .zip file that you upload on the Web Store.

      1. 1

        Some functions are, but we display a map, which we fetch from 3rd parties. I guess it's allowed since we were approved pretty quickly. You can check out our extension maybe it helps. just search textomap.

  4. 1

    Curious what's your opinion on promoting them? Have you got any users from the Chrome web store so far? Been seeing reports that these app stores really help you with promotion, without you having to do much.

    1. 1

      I feel like the store promotes it well after you get some installs. Right now, even if I search by the extensions' name I cannot find it in the list of results.

  5. 1

    Often the initial approval is manually reviewed. Once that is over, depending on your permissions required, approval times can drop from days to minutes. I recently moved my Weather Extension to manifest v3. It now takes minutes for a new version to go live.

    I also have a unlisted Beta versions of some extensions that I push updates to and test. This allows me to verify I didn't break anything.

    1. 1

      Maybe permissions are the most significant element in approval times. I have requested 3 permissions, which I thought isn’t much, but I guess it’s enough for each submission to take ~24 hours to get approved.

      I do like your strategy to test extensions though. Might try it.

  6. 1

    haha! I know this all too well :D. I'm building a Chrome Extension (called Sidekick) too. Publishing is a BIG pain. Sometimes, I've had my new updates released in an hour, sometimes 3 days.

    Also, another pain: when we run into bugs based off the Chrome API. But there are definitely a lot of pros to extensions - ease of use, trusted, etc. Pros come with cons and that's okay!

    1. 1

      Wow, that is quite a variety of approval times. Did you add any permissions when the approval times increased, or were they random?

      I checked out your landing page, and it looks fantastic. (although the layout isn't responsive for mobile devices)
      Good luck with your product.

      1. 1

        just random! thanks so much! Interesting - it's responsive on my device (everything but the top nav :D). What size are you on?

        P.S we have similar products :D

        1. 1

          The top nav seems to go out of view as you said, plus the headings go a little off centre for me, all the way to the right. I'm using iPhone 12 Pro Max.

          I know I know, but that doesn't mean it cant work out for the best for both of us :D

          1. 1

            gotcha - thanks for the feedback.
            good luck!

  7. 1

    Have a chat with Irete and Justyna. Both of them are building chrome extensions as their boostrapping projects

  8. 1

    We have made an extension for Google Chrome too. The validation process take us less than 24 hours.

    Once you have validated the app, the update are significantly faster to be approved.

    1. 1

      That’s not too bad. However, I tend to find bugs after I push a version, and with this obstacle, I guess I will have to be more careful.

      Maybe not such a bad thing if you look at it that way.

  9. 1

    Totally! And for those who don't know browser extensions can be a huge help in marketing.

    Either build a free extension similar to your product, or buy a cheap unmaintained extension that already has users. Promote and link your product within the extension. I've heard of a few people who got new users this way. 👍

    1. 1

      Great idea. Thanks for sharing 😊

Trending on Indie Hackers
I've built a 2300$ a month SaaS out of a simple problem. 20 comments Where can I buy newsletter ad promos? 12 comments 🔥 Roast My Landing Page 12 comments How would you monetize my project colorsandfonts? 8 comments How I built my SaaS in 2 weeks using NextJS and Supabase 6 comments Key takeaways growing MRR from $6.5k to $20k for my design studio 6 comments