When I was building Checkboxland, I wanted to give it a plugin architecture. I felt like it was the best way to prevent it from eventually turning into a mega library with image decoding, drawing features, and all sorts of other stuff I’d have to maintain.
WordPress has plugins. jQuery has plugins. Gatsby, Eleventy, and Vue do, too.
Plugins are a common feature of libraries and frameworks, and for a good reason: they allow developers to add functionality, in a safe, scalable way.