• by rahulraikwar00 on 9/3/2024, 11:24:43 AM

    i personally don't recommend it until they have a well written document as a lot of thing are not clear seems over encapsulated, you have to figure out yourself.. you have a better option you can try WXT (https://wxt.dev/)) also i don't find current scaled project that are using it. soo yh... try break build fix that's what we do

  • by vzaliva on 8/21/2024, 4:41:12 PM

    The title may be little misleading. It is not Chrome-specific but also support Firefox and some other (Chromium-based) browsers:

    https://docs.plasmo.com/framework/workflows/faq#what-are-the...

  • by FBISurveillance on 8/21/2024, 2:11:10 AM

    I also suggest checking out WXT (https://wxt.dev/) as an alternative (it's also faster using Vite and supports more frameworks).

  • by aabhay on 8/21/2024, 8:50:49 PM

    If you’re looking for a Vue-flavored dev experience as opposed to a react one, I recommend this:

    https://github.com/antfu-collective/vitesse-webext

    Building a web extension is pretty straightforward in Vite-land. There are some rough edges around hot reloading, but I doubt it could get that much better.

  • by devvvvvvv on 8/21/2024, 1:55:56 AM

    Importantly for anyone who dislikes ads: seems to support Firefox too

  • by creesch on 8/21/2024, 7:22:33 AM

    The project might do a better job of explaining what it actually intends to solve. At least as far as the readme.md goes.

    I have been active in the area of browser extension development for over a decade now. And to me, it wasn't very clear at first glance.

    It isn't crossbrowser extension development (which these days is actually fairly easy if you ignore Safari.... [0]).

    The README showcases adding a lot of other frameworks and scaffolding, which to me isn't what makes extension development all that challenging. In fact, using a modern modular approach can be achieved using something like rollup [1].

    Of course, I do believe that Plasmo makes setting it all up a lot easier. But just looking at the terminal animation I also can't help but feel that it adds a lot of abstraction I might regret later. To be clear, I also do realize that some people don't mind this and think it is easier to not have to think about the details.

    Only when digging a bit deeper into the actually documentation [2] it starts to make more sense to me. From what I gather:

    - Manifest creation is done entirely by plasma. You can just declare the thing you want to use or create in the right place like an options page [3]. Which is actually quite neat and something I can see makes things a bit easier for someone freshly starting with extensions. Although I'd argue that the manifest of an extension is not the most complex thing [4], even more when I see that for that with Plasmo you still need to declare similar things just at a different spot [5]

    - It provides some scaffolding and abstractions around things like storage and messing between content_scripts and background workers.

    - There are some neat utilities available for publishing extensions.

    Overall, it looks like it like it does take away the creation of an extension and a lot of the utility functions you would need to write anyway. However it comes at the cost, in my opinion, of extreme abstraction to the degree that a beginner basically will have learned Plasmo and still have next to no understanding of browser extensions themselves.

    It's one of those things where I wish this sort of tooling was available around a decade ago but I am also glad that it was not given the knowledge it gained me.

    [0] https://news.ycombinator.com/item?id=41043974

    [1] https://github.com/toolbox-team/reddit-moderator-toolbox/blo...

    [2] https://docs.plasmo.com

    [3] https://docs.plasmo.com/framework/ext-pages#adding-the-optio...

    [4] https://github.com/toolbox-team/reddit-moderator-toolbox/blo...

    [5] https://docs.plasmo.com/framework/content-scripts#adding-a-s...

  • by kelvie on 8/21/2024, 5:56:10 AM

    Tangentially related, I've always wondered why there aren't better frameworks for creating userscripts.

    I like customizing websites for various things, but it would be nice if I had some library I can pull into a userscript purpose-built for customizing websites (like adding pop-up config dialogs, in-line boxes to take personal notes / comment on websites, or just tools geared toward injecting and scanning the DOM using mutationobservers).

    ... or is this that, since userscripts are implemented via browser extensions anyway

  • by piperswe on 8/21/2024, 1:21:34 AM

    Are there any examples of (real, third-party) extensions built with Plasmo?

  • by pvg on 8/21/2024, 2:47:35 PM

    Some more discussion in a Show HN two years ago https://news.ycombinator.com/item?id=31609896

  • by Crier1002 on 8/22/2024, 3:45:21 AM

    i built a chrome extension recently and i was evaluating/trying out different frameworks for building a browser extension.

    for anyone who is interested for an alternative to Plasmo, i chanced upon https://github.com/extension-js/extension.js

  • by Jackobrien on 8/21/2024, 3:45:56 AM

    Experimented with Plasmo in April and found it super easy to use! Was surprised I hadn’t heard about it until I went looking.

  • by zipping1549 on 8/24/2024, 6:21:38 AM

    Didn't know eztension framework was a thing

  • by kwerk on 8/21/2024, 5:00:35 AM

    I love Plasmo

  • by 2Gkashmiri on 8/21/2024, 8:31:03 AM

    how do you build a single browser extension and then have compatible firefox/chrome files that are different in what they require for their own thing.

    i mean currently we are doing terribly stupid thing. two folders /firefox and /chrome and do the updates manually in both. there should be something easier.

  • by electricduck on 8/21/2024, 2:05:01 AM

    This should have really said "WebExtension extensions" instead of "Chrome extensions" as it's a standard across most modern browsers these days