There has recently been a proposal to introduce a new type of plugin into WordPress. One specifically for editor blocks.
I find this an interesting concept, and I can definitely see some benefits, but there are also some downsides. For starters; block plugins are already a thing. They are collections of blocks that add additional functionality on top of WordPress.
I’m actually thinking about making a block collection myself. One that does things that no other block plugin does currently, but my ideas won’t work under this new proposal.
I quite like the idea of having a single consistent interface for installing and managing blocks. It would also make development simpler, and mean people don’t end up installing a massive, complex plugin just for one block. Since the technology is not WordPress specific then blocks would also be reusable in other projects that use the Gutenberg editor.
Whilst the development process for simple blocks will be much easier, there will still be things missing for more complex blocks. In the comments it’s suggested that server side rendering would be useful in many cases. In particular this would be useful for blocks that consume content from third party APIs.
Firstly, I forsee lots of very similar blocks being published. Which will make it much harder for users to decide which one they want to use. How should you decide between container block a, b, and c? They all do the same thing, but they offer different degrees of flexibility?
I can also imagine people spending a lot of time installing blocks that they never use. Based on the mockups the suggestion appears to be that the installation process will take place in the Gutenberg editor. You insert a new block, and then search for what you need. It’s not installed, but here’s a list of blocks you could use. What’s the process for deleting these newly installed blocks? What happens if you decide you don’t like the block you have installed? You install a new one, but the old one is still there? What happens if you need a new block for every post on your site, and then only use it once?
We could end up with a lot of additional code added to our sites, and this code would have to be loaded every time we load the content editor.
Having a separate block library, and installation interface, would cause fragmentation between simple blocks and block collections. It may even hide block collection plugins entirely (at least as far as users are concerned).
Not everything has to be commercial, and I’m sure there are very talented people who will make some awesome free things. But often, when you introduce money, you get more creative, innovative, polished products.
There were plenty of free contact form plugins before Gravity Forms appeared, but none of the free contact forms are quite as good.
The block collection I want to make will have both a free version, and a paid version. I’d love to be able to make everything I do free – but I can’t afford to. Giving stuff away is a great feeling. But I have a wife and child and a mortgage to take care of! So I will host my collection in the plugin repo.
But – this will contribute to the fragmentation, and could cause user confusion since they won’t be able to install my plugin through the normal interface. Perhaps it won’t be worth my time to make the collection? I guess we’ll see in time.
Normally I don’t advocate reading comments online, but in this case the post has a lot of thoughtful feedback and it’s well worth reading them to see what the initial feedback from the community is.