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...