11
17 Comments

Chrome Extension developers, what do you struggle with the most?

Hey everyone, I've been working on ChromeExtensionKit for a couple weeks now and while I've been getting some great ideas from current customers, I was hoping to reach out to a larger audience of Chrome extension developers. I'm looking to constantly be adding to and growing the kit, so I was hoping to get some general feedback: what do you struggle with or find the most tedious when developing Chrome extensions? It could be anything...I'd love to hear it!

posted to Icon for group Developers
Developers
on August 24, 2020
  1. 4

    What I' missing are better tools for development:

    • hot reload - I use a script for that but it's not ideal
    • logging - I find it kind of tedious that background, content and popup scripts are logging in different places, and popup inspector closes when you accidentally close the popup...
    1. 1

      I found a good framework for extension development - PlasmoHQ/plasmo. It still has some issues, but it is much better than creating an extension from scratch using just a js file.

    2. 1

      Try @crxjs/vite-plugin, it provides HMR.

    3. 1

      I use visibilitychange event for auto reload for popup & options
      addEventListener('visibilitychange', event => { });
      When popup inspector is open, popup window don't close even i press button manually in my case.
      what script do you used for hot reload in content script and background page

    4. 1

      Better dev experience seems to be a recurring theme relating to Chrome extensions. If you don't mind me asking, what do you find wrong with your current script for hot reloading and what would you like to see in an ideal one?

      1. 1

        Well, I don't like that you have to include the script in the manifest and then remove it - probably could be automated by some "production build" script, just haven't got around to make one.

        1. 3

          Ah, fair enough. The scripts I wrote for the kit run in the background so they don't need to ever be included within the extension ecosystem itself. There's a great package called webpack-extension-reloader that helps with hot reloading and then you can just write some extra webpack config to put the whole thing together how you want.

  2. 3

    oauth.

    The user experience tied to oauth is so hard to work around. I made a post on this too just now!

    1. 1

      I remember Twitter needed the OAuth 1.0a flow which really had me sweating. (In the end I got it working but my Notyfy extension isn't using it anymore 🤡)

      OAuth 2.0 is covered quite decently with the launchWebAuthFlow(). But for me 1.0a wasn't straight forward at all.

  3. 2

    I can provide some insights into the challenges that Chrome extension developers commonly face:

    Compatibility and testing: Ensuring that the extension works seamlessly across different versions of the Chrome browser, as well as on various operating systems and devices, can be a significant challenge. Compatibility issues may arise due to changes in the Chrome browser or conflicts with other extensions or applications. Thorough testing is crucial to identify and address compatibility issues.

    Security and privacy: Chrome extensions have access to user data and browsing activities, making security and privacy a top concern. Developers need to follow best practices for secure coding, handle user data responsibly, and comply with privacy regulations. Staying up to date with the latest security practices and addressing vulnerabilities is an ongoing challenge.

    User experience and usability: Designing an intuitive and user-friendly interface is important for user adoption and satisfaction. Ensuring that the extension is easy to understand, navigate, and use can be a challenge, especially when dealing with complex functionality or integrating with multiple services.

    API limitations and changes: Chrome extension APIs (Application Programming Interfaces) provide developers with access to various browser features and functionality. However, API limitations and changes can pose challenges. APIs may be restricted in terms of available features or performance, and updates to the Chrome browser can introduce changes that require developers to modify their code.

    Performance optimization: Chrome extensions should ideally have minimal impact on browser performance. Optimizing the extension to use system resources efficiently, minimizing memory usage, and optimizing code execution can be a challenge, especially when dealing with complex functionality or data processing.

    Publishing and distribution: Navigating the Chrome Web Store's submission and review process, ensuring compliance with the store's guidelines, and managing updates and distribution to users can be challenging for developers. Meeting the store's requirements and addressing any rejections or issues that arise during the review process can be time-consuming.

    User support and feedback: Providing timely and effective support to users, addressing bug reports, and gathering user feedback are ongoing challenges for developers. Responding to user inquiries, fixing issues, and continuously improving the extension based on user feedback requires active engagement and communication.

    Each developer may have different experiences and encounter unique challenges based on their specific extension's requirements and complexity. However, addressing these common challenges can contribute to creating a high-quality and successful Chrome extension.

  4. 2

    I realize this is a question directed at developers, but for me, it's been trying to narrow in on the right user experience that doesn't annoy users but is habit forming.

    I've been building a browser extension for a couple months now that helps you find docs, notes and wikis faster at work. Developing the extension was fine, but trying to understand how/when to bring "Obie" into the flow of someones work has been the most difficult.

  5. 2

    The biggest struggle for me is trying to fix bugs my clients brought up:

    • Hard to do back-and-forth email communication with client.
    • Understandably, they may not be aware of "engineering speak" and would say very generic things like "I already gave the app permissions but it's still not working".
    • Understandably, they may not be technically savvy enough to provide content script logs (if you have any).
    • Also, for all I know background script logs can't even be viewed.
    • they could lose interest to help solve the bug since they decided to uninstall already :(
    1. 1

      @egan Have you considered using e.g. Sentry to monitor for bugs (JS runtime errors)? Or are you talking of a separate class of bugs?

    2. 1

      background script logs can be viewed, but you have to open them from the extension list in chrome://extensions/ - Inspect views background page

    3. 1

      Ah, I've experienced this myself and unfortunately it sometimes comes with a bad review as well. I'll definitely look into this one. Thanks for the feedback!

  6. 1

    Cannot use component library in content script smoothly, Because the styles conflict with the main world. 😥

  7. 1

    Biggest issue has been figuring out how to use Firebase and Sign In With Google on a v3 Manifest which blocks external scripts.

Trending on Indie Hackers
I'm a lawyer who launched an AI contract tool on Product Hunt today — here's what building it as a non-technical founder actually felt like User Avatar 142 comments “This contract looked normal - but could cost millions” User Avatar 54 comments A simple way to keep AI automations from making bad decisions User Avatar 47 comments 👉 The most expensive contract mistakes don’t feel risky User Avatar 41 comments The indie maker's dilemma: 2 months in, 700 downloads, and I'm stuck User Avatar 40 comments Never hire an SEO Agency for your Saas Startup User Avatar 38 comments