littlebizzy / slickstack

Lightning-fast WordPress on Nginx
https://slickstack.io
GNU General Public License v3.0
629 stars 112 forks source link

Why is WP Ultimate Post Grid on the default plugin blacklist? #71

Closed BrechtVds closed 2 years ago

BrechtVds commented 3 years ago

I was made aware by a customer that our WP Ultimate Post Grid plugin is getting blacklisted here:

wp-ultimate-post-grid ;; bad practice (breaks up web design into various plugins, Essential Grid clone) ;; By Bootstrapped Ventures

Could you clarify what you mean by "breaks up web design into various plugins"? The grid plugin is a self contained plugin that stands on its own, so I'm not sure what that means or what the problem is.

Also surprised by the "Essential Grid clone" comment as I've literally never seen or used that plugin so I can't imagine there being any similarity in the codebase. Had a quick look at their site and documentation and their interface isn't anything alike either.

Surely there's room for multiple grid plugins?

jessuppi commented 3 years ago

Thanks for reaching out @BrechtVds

So the purpose of SlickStack is to simplify WordPress LEMP stacks while evangelizing best practices. There are many issues with both the Essential Grid and WP Ultimate Post Grid plugins in our view, e.g.:

Again this is just our opinion on what best practices we wish to evangelize for SlickStack.

But on the growing trend of "grid" plugins in general, it essentially breaks up your web design to the point where the grid plugin doesn't know what the theme or page builder is doing, and vice versa. "Self-contained" is "self-defeating" in our view, because we aim to evangelize plugins and themes playing nice with each other and not trying to overwrite each other, etc.

BrechtVds commented 3 years ago

Regarding those points:

A grid plugin is useful when the theme or page builder doesn't offer this option (and themes shouldn't be cramming all sorts of functionality in them, in my opinion). So it's perfect for playing nice with a theme that doesn't already do this. And if you're using a theme that does have this functionality, you wouldn't be looking into grid plugins anyway. so that seems to be a bit of a moot point? The grid plugin is an alternative you can use, if your theme doesn't offer it.

I understand that you don't like grid plugins in general, but putting them all on some kind of blacklist because of that seems to be going a bit far. I am not aware of any performance issues that WP Ultimate Post grid causes and the plugin genuinely solves problems that users have. Now at least one of those users is getting warnings that their webhost put the plugin on a blacklist.

jessuppi commented 3 years ago

The fact your plugin bundles JS libraries for infinite scrolling means it might conflict with others, besides requiring 2x the amount of JS scripts for that scrolling feature than a site should otherwise require.

Your description page says "Define custom links for posts" to allow for custom redirects. Again this would conflict with plugins that are designed to manage all 301 redirects, etc.

Your description also says users can't customize post types, date, authors, etc without paying for premium, which seems to defeat one of the only major reasons for using such a "grid" plugin to begin with. It means that if a user stopped paying for the premium license, their frontend web design could break at some point or lead to SEO issues, or that users who install your plugin thinking it is free/OSS will get either immediately confused or forced into paying for premium.

A grid plugin is useful when the theme or page builder doesn't offer this option (and themes shouldn't be cramming all sorts of functionality in them, in my opinion).

Exactly, it's just simply not the type of plugin we'd ever consider best practice these days, it is a feature that hurried web designers install when they are trying to "hack" a page builder. Other free plugins like Get The Image have been around for many years and doing a very similar thing for free and with lightweight code.

Ref: https://wordpress.org/plugins/get-the-image/

TLDR it is neither a page builder, nor a hookable function plugin... it should be one or the other, in our view. Personally I would suggest slimming down your plugin and maybe supporting shortcodes that generate a gallery based on chosen filters, and do away with the fancy preview and page builder stuff. Even the custom links territory is sketchy IMO because you are then targeting lazy web designers who are dumping Latest Posts and Social Media Links and YouTube Videos all in the same code snippet generated by plugins like this... it gets messy fast.

I don't like page builders in general either, but we allow them by default... we do ban any plugins that attempt to hack third party page builders created by other companies.

Our goal is to help users avoid the constant fixes and conflicts that come with choosing conflicting plugins and to evangelize lightweight themes and plugins that "do only one thing, and do it well" e.g. Unix philosophy.

BrechtVds commented 3 years ago

I am a solo developer trying to earn a living selling WordPress plugins, so apologies if I want to keep discussing, but you're essentially blacklisting my livelihood here. So let me respond to all of those points:

The fact your plugin bundles JS libraries for infinite scrolling means it might conflict with others, besides requiring 2x the amount of JS scripts for that scrolling feature than a site should otherwise require.

That is not a fact at all. The plugin does NOT include a JS library for infinite scrolling. I wrote that part myself and just checked for you: this pagination JS code minifies to 1.91 KB. I can't see this conflicting with other plugins but if you find that it does, I'm happy to look into it and fix things.

Your description page says "Define custom links for posts" to allow for custom redirects. Again this would conflict with plugins that are designed to manage all 301 redirects, etc.

It says that you can define custom links for grid items, which can be useful in some situations (for example when having a grid of non-public post types that don't have their own URL). That is not the same as a redirection at all. You probably wouldn't want the regular link to redirect as that's not the point of this feature. This is not a 301 redirect. Again: never heard or can imagine this conflicting with any other plugins.

Your description also says users can't customize post types, date, authors, etc without paying for premium, which seems to defeat one of the only major reasons for using such a "grid" plugin to begin with. It means that if a user stopped paying for the premium license, their frontend web design could break at some point or lead to SEO issues, or that users who install your plugin thinking it is free/OSS will get either immediately confused or forced into paying for premium.

Why are you the one deciding what a user does or doesn't need? Yes, the free plugin is limited, but it has perfectly valid reasons for existing and we have plenty of users that aren't paying for Premium and can use the plugin perfectly well. No, it doesn't allow you to limit by a specific taxonomy term, but you can still filter by those terms which is all that a lot of people want.

To me it just feels like you don't see a reason for using this, but that doesn't mean that no-one else can have a reason. And in my opinion does not warrant a plugin getting blacklisted at all. Let the user decide: either they think the plugin is useful (free or paid, does it matter to you?) or they don't.

Other free plugins like Get The Image have been around for many years and doing a very similar thing for free and with lightweight code.

That plugin is nothing like WP Ultimate Post Grid at all? This is an image plugin? I don't understand your point here.

TLDR it is neither a page builder, nor a hookable function plugin ... and do away with the fancy preview and page builder stuff.

It is hookable.

Do away with the preview and interface? Then it would literally be impossible for a regular user to recreate a filterable grid that allows you to filter by taxonomies and custom fields, is ordered a specific way and has a specific layout showing the exact elements they want.

And this isn't a plugin that tries to do everything. It does 1 thing: create grids with filters. It's not a page builder and is definitely not trying to be one. Most of our users just need 1 specific grid on their site with the exact filters (by taxonomies or custom fields) that they need. Like a recipe grid where you can pick the ingredients you have and it gives you an overview of recipes. I'm actually pretty sure there is no page builder or theme out there that can recreate some of our grids.

WP Ultimate Post Grid is essentially an alternative to FacetWP. You really don't think there's value in those kind of plugins?

jessuppi commented 3 years ago

I am a solo developer trying to earn a living selling WordPress plugins, so apologies if I want to keep discussing, but you're essentially blacklisting my livelihood here

Mate, our community is still rather small and our stack is open source so anyone can fork/change it anytime. Our philosophy and technical values are much different from the mainstream so I don't think our opinion affects your success much... the types of users who would be looking at SlickStack are arguably a different audience.

And this isn't a plugin that tries to do everything.

Perhaps, but it does much more than a single plugin should in our opinion. As you've stated already, your main audience is web designers looking to hack page builders that are lacking features, which directly contradicts our best practices. Your plugin is providing a temporary layout "fix" while we are focused on long-term (lightweight) stability.

Ref: https://slickstack.io/best-practices

I've heard of FacetWP but not intimately familar with it, but looking at their features they seem to emphasize that their code integrates with WP Core and is built around shortcodes. I also don't believe their plugin has bloated "preview" features either which are bound to conflict with other page builders and WYSIWIG etc.

Anyway I'm always happy to heard feedback, even aggressive opinions, but currently your plugin seems to be in a different category from other similar plugins.

BrechtVds commented 3 years ago

the types of users who would be looking at SlickStack are arguably a different audience.

I'm not familiar with SlickStack or know what it's used for. But I got pointed this way by a paying customer who contacted me because his webhost had blacklisted WP Ultimate Post Grid. So it's directly affecting me.

If I got a message that a plugin I paid for suddenly got blacklisted I would expect security or performance problems and would not be happy about either. Blacklisting a handful of plugins out of the tens of thousands of plugins out there is quite drastic, so one would assume there are huge problems with that plugin.

your main audience is web designers looking to hack page builders that are lacking features

No it's not. It's actual end users who create their own site but don't know enough to code. Just like 90% of plugins out there.

they seem to emphasize that their code integrates with WP Core and is built around shortcodes

WP Ultimate Post Grid integrates with WP Core (what does that even mean? every plugin does...) and also uses shortcodes.

I also don't believe their plugin has bloated "preview" features either

I don't really understand your issues with having a preview. What's the difference with not having a preview and just requiring users to look at the actual site to see what the result looks like? The preview just makes things easier when trying out the different options when building a grid, as it gives you live feedback of what that particular option does.

jessuppi commented 2 years ago

I'm closing this for now, as our philosophy on this hasn't changed and most likely will not, but further comments are always welcome now or in the future, thanks!

jessuppi commented 2 years ago

For any future users, keep in mind that you can disable the default plugin blacklist.txt in SlickStack and/or use your own custom blacklist.txt file instead (e.g. if you are a web hosting agency). The default rules are just our opinion.

Ref: https://github.com/littlebizzy/slickstack/blob/master/modules/wordpress/blacklist.txt

During installation, our setup wizard now also offered the option to disable the blacklist during setup as well... or you can manually disable the plugin blacklist in ss-config also:

Ref: https://github.com/littlebizzy/slickstack/blob/master/bash/ss-config-sample.txt