by rahulraikwar00 on 9/3/2024, 11:24:43 AM
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...
[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
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