Hacker News new | past | comments | ask | show | jobs | submit login
The complicated futility of WordPress (coderjerk.com)
251 points by ddevine on Feb 2, 2022 | hide | past | favorite | 239 comments



I've been working with WordPress for a long time and have run a blogging network built on Wordpress since 2005-ish. Over the last few years, it's felt like I've been swimming upstream fighting against WordPress as they have tried to morph into a general website publishing tool (in order to compete with Wix, SquareSpace, etc) rather than their initial blogging roots. Security has never been a WordPress strong point and things are still terrible today with a constant stream of backdoored plugins and themes being available. The Gutenberg editor has been a disaster and now the full-site editing looks like it will generate the same type of spaghetti-HTML that the other page builders have been doing for years. It's all too much for me now and I'm keen to get out of the Automattic/WordPress ecosystem.

One option is ClassicPress which has forked v4 of WordPress but I'm not 100% confident that they will stick around. Apart from that, there are limited options out there that can replace the multisite features of WordPress. All I know is that the future of WordPress will be what Automattic want to do with it and I don't think they'll care if nobody outside of wordpress dot com uses it.


I love WordPress. It is kind of a universal tool: you can make simple web sites, you can use it to build complex systems. It is always better if you have developers that know what they are doing. WP development is not installing dozens od plugins to achieve some effect on your web.

I guess that WP wants to become "one to rule them all". This means that they strive for even bigger adoption rate among users. FSE is the direction of that. I can totally understand that professional developers are feeling frustrated with the way things are going in WP ecosystem.

When Gutenberg was introduced it produced more pain that good things that it has brought at that time. A lot o money is floating around WP and investors want to get their share of the cake. Did you notice all of the investments in WP or plugins that have changed their owners?


The issue is that if you’re developing like this on WP you don’t gain much from it except the ability to use a select few plugins and an admin UI. At this point why not use a solid PHP framework like Laravel?


> The issue is that if you’re developing like this on WP you don’t gain much from it except the ability to use a select few plugins and an admin UI. At this point why not use a solid PHP framework like Laravel?

Agreed, if you have a dedicated engineering team, but most non-tech companies that need basic websites don't...so in that context, Wordpress's admin UI is a big gain. It's familiar to users and provides media management functionality out of the box. The vast majority of CMSs have terrible/non-intuitive admin UIs and limited functionality. Leaving aside Gutenberg and the rest of the garbage pile that is Wordpress, the admin is the primary selling point of Wordpress IMO.


I can tell you that new users like Gutenberg. It is us, the old shortcode style users, that have/had a problem with it. It took me some time to switch to it but I must say that I like it now.

Things like copy/paste from Google docs with keeping all of relevant the styles and links works. And I guess that a bunch of users is doing that - using WP as a platform for distribution of content.


It's not just shortcode using admins who don't want to use Gutenberg. There are many people who have used any one of various visual composers for years. They generally don't have the time or inclination to learn a new workflow that doesn't support what they already do.

Having a classic editor plugin has nothing to do with characterizing people as crufty throwbacks who can't learn new things. Many people are in the business of their business and don't care to learn the next new-greatest-software every few months.


Yes, I get it. I've used Elementor, DIVI, Beaver Builder, WPBakery , ... And I always hated when I had to switch to a new builder for some new project.


Seconding this, end users do seem to like how much they can do themselves with it

Especially when you add custom blocks specific to their site needs


I was on the other side of the table, I was working for a company that was developing WP plugins bunt I'm not a developer. During my years there I've meet a lot of developers. I've seen different approaches. The most surprising thing to me was headless WP. I didn't get why do they even want WP.

Take a look at WooCommerce. I guess that it is much easier to do some of the custom code than to reinvent a wheel. Not to mention learning users on how to do something in a totally different environment.


Headless WooCommerce is actually pretty cool - you get free admin UI for managing the shop, and can build whatever frontend you like without the constraints of WordPress. Seems like a no-brainer for anyone who can do a bit of frontend development.


Only if you don't want/need to tap in to any plugin ecosystem. WooCommerce is the worst in this regard as basically everything is bolted on using actions/filters which only work in the traditional theme route.


I can answer this: because people do not want to pay for a developer, they want to pay for a designer. (It is exceedingly rare to find both in a single person.)

The designer can, within the structure and strictures of Wordpress, build a site with all the whizzy things the client wants, and they can charge $X for it. A developer can do all of that as well, but they will probably need a designer as well (see above parenthetical), and it will cost $X * 2.

The counter to that is, "well, just build a good templating system and tweak that for other clients, and you're good." Which is true, and that's why there are lone PHP developers out there who make a decent living with a stable of clients.

One of the worst aspects of Wordpress is dealing with the infuriating and opaque reasons why a particular site is slow. A relatively simple site can be maddeningly slow for any number of reasons, and finding them is like searching for a contact lens in a full bathtub.


Cause and effect. Pay bad, get bad.

If performance is a real business concern (and when is it not?), hire developers, not designers.

Hire developers, not WordPress developers. Because the latter will push WP onto a project where clearly the downsides, like performance, outweigh the benefits. But the latter may pick WP when it is a good fit.


I was with you until the end there. Tools for performance monitoring exist. Query Monitor is a great starting place for a free plugin. Lighthouse will tell you if you have a million blocking requests. New Relic is offered by any web host worth a damn and WP plays very nicely with it.


Fair enough, but you just listed three different tools, and you may have to go through all of them to find what's going on, and come out the other end just as lost.

I mean, I get it. I've written some stuff that screws the pooch performance-wise, and the solution isn't immediately clear. But with WP, and with enough installed plug-ins, the reason for the slowness may simply be "in order to work with WP, there is a lot of back-and-forth with the DB amongst all these plug-ins," and there ultimately isn't anything you can do about it.

WP is amazing that it does so much and works as well as it does, but let's not pretend it's not a bit of a faff sometimes.


> It is kind of a universal tool: you can make simple web sites, you can use it to build complex systems. It is always better if you have developers that know what they are doing.

Here's a question: suppose that you want to use WordPress as a starting point for a CRUD app with some basic permission controls, the ability to dynamically add content and maybe even write your own search logic which respects those permissions.

Example:

  1. Upon opening your site, you'll be presented with a list of Foos
  2. Each Foo will have a description, a configurable amount of maximum Bars, and a summary of how many Bar instances have already been added, as well a location on a map below the list (a pin, think Leaflet.js)
  3. Upon logging in to the site, you'll be able to open each Foo and see all of the Bars under it
  4. In this list you can click on a Bar to open its view, which shows all of the data added it: typical stuff like text, numbers, dates, times etc.
  5. With the appropriate permissions, you can either edit the Foos/Bars that you have access to, or edit all of them as an admin. As a user, you can only view them.
(just an example that i made up, vaguely like a CRUD that i created in PHP with one of the regular web development frameworks)

How would you go about that? Are there any resources that you would recommend?

For example, if one were to use Slim, they'd look at their documentation: https://www.slimframework.com/docs/v3/

Similarly, Laravel has pretty decent documentation for developers: https://laravel.com/docs/8.x

Whereas with WordPress, i don't think that there is such an informative, guided resource for implementing things like that: https://wordpress.org/support/

A lot of it seems to focus on how to maintain installs of WordPress or how to work with its built in concepts (like pages/posts/etc.), but there's nothing along the lines: "Here's how you're supported to mess around with its internals in an idiomatic way and introduce custom views, validations, persist the data in the DB and add whatever you need to cover what constitutes a business process". Maybe i haven't dug inside of it enough.

Are you just supposed to hack things together with a custom theme or custom widgets, custom post types and storing most of the information into custom fields that are attached to the post? Why does the documentation have such a lack of PHP in it, then? Is there a separate set of developer docs somewhere?

Actually, i wonder if there's some super lightweight boilerplate theme, that attempts to do almost no styling and has very basic layouts, to be used as a boilerplace, e.g. what the likes of Skeleton are for CSS: http://getskeleton.com/


This actually seems like a pretty bad use case for WordPress, TBH. To be fair to WordPress, you can set up custom tables and permissions to do this, but you will be writing a lot of code to render overviews, validate forms, and so on. A lot of WordPress's admin UI isn't reusable in a way that works for a CRUD app, or it's only reusable in one specific way (e.g. the default overview you get if you ask for it in your custom post type definition).

Slim and Laravel are both proper application frameworks specifically designed for your use case. That's why they properly document all of the CRUD use cases. However, they don't do CMS stuff at all.

If you absolutely need a working CRUD app to live inside of a CMS, then your best bet would actually be a Drupal module with a custom entity type. However, that requires you to actually know the ins and outs of Drupal's Entity and Field APIs, which are rather overengineered[0]. On the other hand, if you do manage to figure all that out, permissions are relatively easy to hook up, forms are just filling out an array, and you get Views support basically for free.

[0] In Drupal's defense, they're a CMS, so they need to support use cases like letting users define custom node types and custom fields on those types. This makes the interface for interacting with Entities way more complicated than an ordinary CRUD app needs.


> This actually seems like a pretty bad use case for WordPress, TBH. To be fair to WordPress, you can set up custom tables and permissions to do this, but you will be writing a lot of code to render overviews, validate forms, and so on.

This was also a sneaking suspicion of mine after diving into some plugins and seeing how they work, e.g. things that definitely aren't pages/posts beings stored in those tables in the database regardless, hinting that maybe the base functionality needs to be stretched out a bit for custom use cases.


I don't think you'd want to build a crud application in wordpress. Wordpress probably won't help you there much. You could probably turn it into a "plugin" but even then you'd be writing a lot of your own code.

We're working on switching to wordpress for the volunteer organization I work at. Right now all the "information/kinda static" content is on wordpress with pages and posts. Its a win, anyone with permission can edit. Our custom application isn't there and has its own separate database and code. We're thinking of moving the whole thing into a sort of plugin, but we're very symphony based.. Which we like


> Right now all the "information/kinda static" content is on wordpress with pages and posts. Its a win, anyone with permission can edit. Our custom application isn't there and has its own separate database and code.

This is a nice approach - getting to leverage WordPress for the typical use case at which it is good, using something bespoke for the more advanced use cases. I've actually done something a bit similar in the past (the particular app i made used Lumen which is essentially stripped down Laravel, but the concept was close enough).

It's just that many made WordPress seem like a pretty much universal tool and while i've seen some pretty advanced things be done with plugins, i personally didn't quite feel like it's well suited for certain tasks where you'd typically reach for a general purpose web framework instead.


https://developer.wordpress.org/ has everything you're looking for. Is it as organized as Laravel's docs? No. Not even close. But most of the information is there.

The PHP side of WordPress has been very stable for over 5 years at this point. All the new stuff is happening in JS unfortunately...


Thanks! This does indeed seem more like what i was looking for, couldn't for the life of me find it in their main navigation menu on the site.


Usually the designer route in WP is to watch a tutorial that shows you worthwhile plugins and how to use them effectively. Things like Elementor, TablePress and WordFence changed my life and made plenty of clients happy, while my developer knowledge was still (and still is, really) in its infancy.


I am in almost exactly the same boat. I built my first Wordpress-based website in 2005, and it is still online today. I've had to employ a constellation of plugins (some third-party, some home-grown) to keep Gutenberg from mangling my content. Gutenberg could have (and in my opinion, should have) been just another official plugin. Instead it's trying to break my site's bones so they will re-heal in a new configuration. Begone unwelcome meddler!


I feel your pain. We have a WordPress network pushing 600 sites and I'm kind of concerned about the future of WordPress and think daily about migrating over to Drupal (or even exploring CascadeCMS or something along those lines).

When we picked WordPress back in ~2012 as our CMS it was because of how simple the editing of post/page content was compared to the alternatives. The majority of our content editors are student assistants, graduate assistants, least tenured faculty member, etc. People who aren't that technical and also have a dozen other things that are their actual job, unlike updating the departmental website which just got dumped on them.

We've done a ton of work with our theme and in-house plugins to keep WordPress super simple/basic for them, overwriting and undoing a lot of what core has added over the years. Most of the site editors find Gutenberg too complicated, so we're running the Classic Editor plugin in a ton of our sites. Our content editors just want to come to a CMS, have a text box where they can add content, add heading tags, links, images, use some of our shortcodes (from custom TinyMCE buttons) to add some styled components to their page. They don't want a full-site editor, they're not remotely qualified from a UI/accessibility perspective to be messing with anything really than just the base content of the page.


Yep - great summary of my current position. I also use the Classic Editor plugin but still let users toggle the setting if they choose too.


I know there’s lots of noise about Gutenberg, but I love the block editor. It’s one of the reasons I stick with Wordpress rather than moving to a SSG.


Gutenberg is a bit of a pain to get started with, but it truly is kinda amazing page layout tool.

I think Wordpress needs something like better defaults. You are so dependent on picking a good theme and it seems really hard to tell what’s going on in the theme world.


I am an intense user of WP since 2016 and I wrote several plugins for my own purposes.

The overhaul that came with Gutenberg was painful and it took almost two years to catch and fix all the bugs, for example with embedded videos. But as of 2022, I am happy with Gutenberg and it feels intuitive.

I know a few guys who could never make the necessary switch in their heads and hate Gutenberg with a fury of thousand suns, though. All of them are over fifty.

Now, Substack has even more intuitive and amateur-user-friendly editor, but a much more limited set of options.


Gutenberg as a document content editor, is a good concept with truly awful execution (endless bugs).


How does ClassicPress prevent the intern from painting the site yellow ? /s


I'm not entirely sure it's fair to blame WordPress directly for the quality of 3rd-party products (and their security).


Third-party plugins are subject to WordPress's security model and implementation.

Automattic could create a PluginV2 system with tightened security and new requirements for plugin developers, then put a plan in place to deprecate and remove support for v1.


Yes, after 18 years of WordPress development, the architects' excuse of blaming bad actors in plugin ecosystem has begun to wear thin, especially when contemporaries or predecessors like Firefox or Debian never had remotely the same level of problems with their users being hacked constantly by plugins/packages.


“No Way To Prevent This,” Says Only CMS Where This Regularly Happens


Firefox has had the converse problem of constantly breaking all their plugins by changing their APIs etc..


They were able to fix this by moving to the WebExtension model instead of letting extensions directly interface with XUL/XPCOM[0]. Of course, then everyone got angry that they couldn't do ridiculously invasive changes to the browser with an extension anymore.

[0] which were then massively refactored, twice.


...and face a fully justified user/dev revolt that makes Mozilla's worst day look like a single angry tweet. Remember that there's a massive paid ecosystem around WP plugins & themes, not to mention the stuff Automattic sells (hosting, their own plugins, etc.)

They can't afford it, and most people don't want it. I think history shows that taking flexibility away from something popular because of its flexibility is not good business. At least you can install a plugin now and completely sidestep this awful 'site builder'. If that goes away, hoo boy.


Death by a thousand cuts it is then.


Wish Microsoft put some thought into this before completely kneecapping the start menu customization and capability in Windows 11.


Honest question, how would that work?

PHP code is not sandboxable (ignoring the ability to disable functions), AFAIK. Is it? So plugins do have complete (read) access over the entire code, the secrets in the config files, the database etc.?

Not allowing plugins to directly execute PHP code would either fundamentally break the wordpress plugin model or require an interpreter for a turing-complete "wordpress plugin programming language", right? That would kill any performance, especially on uncached wordpress instanced, even on PHP 8, wouldn't it?


Maybe run it on Peachpie (which should already give perf gains) and go with the new plugin model.


WP doesn't control where folks host it. Limiting its support to one .Net implementation would severely limit its market.


> PHP code is not sandboxable

People said the same about JavaScript, and yet smart people figured out ways to do it. For example: https://github.com/googlearchive/caja

PHP may be particularly challenging to sandbox, but it's not too much for talented engineers to figure out.

As a near-last resort, a secure PHP subset language could be developed.


You can sandbox php by changing the context the thread is running in before entering the plugin code. The issue is that there’s (currently) no delineation between internal code and plugin code (actions / filters) and changing back out of that context without a plugin doing the same to escape the sandbox.


I think it's probably too late to save wordpress. Squarespace and such are just better products for the average company. It would require a fundamental redesign of wordpress to solve its issues and at that point it just becomes a clone of the existing products.


You might be surprised to learn that:

> WordPress is used by 65.3% of all the websites whose content management system we know. This is 43.3% of all websites. [1]

And these numbers have been growing for years. In other words, WordPress is and will be widely used for a long time. So I’m not sure WordPress really needs saving. :p The number of OSS contributors has also been growing. So the project itself hasn’t been stagnating either.

Disclaimer: I’ve been a WordPress contributor and work for Automattic.

1: https://w3techs.com/technologies/details/cm-wordpress


Sorry, I didn’t mean in a popularity way. But security wise, I don’t know how it would be possible to make Wordpress secure when the average user installs a bunch of plugins / themes and then leaves never to update it again. I just can’t see how this can work without becoming a fully managed platform.


They should never do that. People who want walled gardens should go with a rented solution from one of those website builder companies


It's fair to the extent that you're required to rely on 3rd-party products to get something done. If WordPress-the-Technology uses WordPress-the-Ecosystem as a main selling point, then its their choice to bundle their reputations together.


Interesting concept: reputation bundling. In this instance of the technology and its ecosystem, but potentially useful in describing other situations as well.

Is this something you came up with on the spot? I haven't come across this idea in communications literature and a cursory search only brings up other types of bundling in economics/business/strategy.


Not directly, but their API and security design absolutely does influence how normal plugins behave (i.e. common bugs), and how well they can limit the damage of abnormal ones.


All these 3rd party products still have to use the WordPress Way (tm) hooks into the app.


Are there any good options for an open source headless CMS that works with a static site generator that has a page builder that has quick and accurate live previews before you deploy? E.g. so you can build new landing pages from header, testimonial and contact form blocks.

There's lots of options if you just want Markdown but this isn't enough for heavily branded business websites where you need to check how complex pages will look before they go live, like if the h1 text in the header line wraps weird or is hard to read against the header background image.

Edit: I get that CMS projects need to make money by the way but the lack of vendor lock-in is a big upside to WordPress.

Netlify CMS might be an option (https://www.manuelkruisz.com/blog/posts/custom-previews-next...)?


Directus is an amazing open source tool that you can self host as easy as deploying a Node app. You can setup content types with a nice UI, very configurable roles so a client can't break the site, a media library that can hook into S3/DO Spaces, a REST or Graphql API built in, webhooks, revisions, works with many different DBs, and a bit more I'm not thinking of.

I'm not affiliated with them at all. Was just very pleased to find how polished it is for a self hosted, free product compared to the other $499/mth proprietary options in the space.

https://directus.io/

https://github.com/directus/directus


This looks amazing thank you. I'm curious about the REST API part. Have you used that before? How configureable is it? It sounds like a scaffold of some sort... but, what if I needed to do some custom data processing on the data before returning it in the API, are there hooks for that?


I'm not an expert since I used it for a few projects about a year ago. But the web hooks are mostly for when items are added/updated/deleted.

They have pretty useful API parameters for transforming images. But my initial instinct is to say that you'll have to do custom data processing in the front end or somewhere else, since the API it generates just mirrors the structure of your database. The nice thing about this approach is that you can always remove Directus from a project and your database will function as normal.

They also have pretty use docs which you can check out for your usecase:

https://docs.directus.io/reference/introduction/

edit: I should also add that you can add your own custom modules, but I never really explored that too much.


Hey prog5, you should check out Payload CMS if you need that type of flexibility and extensibility. Payload has Hooks that allow you to do exactly what you're saying.


Any links to how page building and live previews look?


You can make a page builder using it, but you're going to have to create content types for each block with many to many relationships to pages. It's not going to function like a WP page builder, but it also would allow you more control over what a client can add to a page.

Don't think there are live previews, but I might be wrong (people can create custom modules, like plugins, and I haven't checked in on it for a year or so).

One use case we made is a place where a non-tech savvy marketing manager at a chain of retail stores can enter/edit the store info & deals for each location. Then the info & deals then get updated on the stores' app, website, and on site displays from a single UI.


A basic feature all headless CMS's don't have is nested pages/documents. It is how the web works, so why have they all agreed to not have the feature?


Nesting is not necessary for the web to work.

Wikipedia/Wikimedia does not have nesting: each page/topic is its own top-level article without hierarchy. Meanwhile BookStack, another open source wiki platform, does have hierarchical organization.


> Are there any good options for an open source headless CMS that works with a static site generator that has a page builder that has quick and accurate live previews before you deploy? E.g. so you can build new landing pages from header, testimonial and contact form blocks.

WordPress with a plug-in that spits out the static site? E.g.:

* https://wordpress.org/plugins/simply-static/

Edit/update via GUI, generate the static site, view it locally, rsync it to your hosting provider.


CraftCMS is great and free for single admin. Can’t recommend it enough.

If combining with a static site generator you can find craftcms hosting for $5/month.



It doesn't have to be open source to be successful.

I understand that open source things can increase reach of the product, but that's at the expense of proper software support.

Let's accept some proprietary software in our lives. Sometimes these have demostrated technical superiority.


> I understand that open source things can increase reach of the product, but that's at the expense of proper software support.

Lots of open source projects offer premium support.

> Let's accept some proprietary software in our lives. Sometimes these have demostrated technical superiority.

Sure, but let's not pretend proprietary vendors know more than open-source projects and contributors. Also, if your product is ultimately the content itself, it's an enormous risk to hand that over to third parties that want to take control of it. You are explicitly coupling yourself to the success of the proprietary software vendor.


I believe the source is available on github and the team accepts pull requests. Single user license is free.


We're currently having painful performance issues with Craft at work. It takes 300ms+ just for an empty craft installation to return an empty page. Saving entries to the database programatically is slow too, one of our sites has a nightly sync process, only needs to touch a few thousand entities, with a normal database schema that workload is doable in seconds, with Craft it takes hours.


Did you figure it out? Something's clearly wrong with your hosting or database.


Their support is super responsive on discord and via email.

And yes Craft’s schema is pretty complicated.


I run Craft CMS for Tedium (https://tedium.co). I could push it further but one way I use it is by creating a custom view that “spits” out a completed email template with all of my desired layout considerations and quirks already considered. I could push it further and run the newsletter through Craft itself, though I’ve chosen to pay someone to manage the sending of the email.

(And while not particularly “Crafty,” I use a paid plugin, Doxter, to manage my CMS code in Markdown, with the use of shortcodes.)

The performance issues mentioned by others are realistic, but if you put it behind CloudFlare, they’re totally reasonable. While Ghost is a much more popular use case for newsletter publishers like myself, I prefer the customization capabilities of Craft to forge a CMS experience I’m comfortable with.


Depends how complex you want. Jekyll --watch is fine for testing blogs and reloads very fast with --incremental builds. We have it set up with a self hosted netlify for editors - updates get pushed to a repo by netlify, the repo is watched by Google cloud build and the site is automatically updated on save. All on free tier services. Frequent updates will hammer the build server (if you build on each push) so could eg push to a dev branch and merge-to-main with a cron job every so often.

You could run a dev server and port forward the preview if necessary.


I use lektor, it has a preview server with a editor, works for multilanguage sites, themes are easily extended/modified etc.

You basically run "lektor serve" edit your site locally in the backend and then once you are done you click "publish" in the backend and it copies the site to the webserver via scp (provided you have the ssh credentials).

Simple and effective. For anything more sophisticated I use grav CMS


I love GravCMS. I transitioned to Grav from Drupal right as D8 was coming out for my personal projects. Not having to worry about a db was so nice


I used to use Grav. If you want similar more mature and “zen” try Kirby CMS. I am not afiliated but ive been loving it for years. It’s commercial product but i think of it as high-end Grav. More polished and with better admin interface. Actually since Kirby is older i believe Grav was inspired by it a lot.


Thanks for the hint I gotta check it out.



Never heard of this before, but it does look very useful.


We use WordPress with the Gutenberg editor and Gatsby Cloud. It’s been very nice to work with and the Gatsby Cloud team seems to pay a lot of attention to the editorial and deploy experience. We’re happy and this is how we’re building things today.


Not sure if that’s what you describe but I used Grav: https://getgrav.org/.

It’s written in modern PHP and provide a simple UI to edit an manage your site. No database is needed.


Grav is fantastic. It’s as flexible as ProcessWire, yet with the simplicity and low overhead of a flat-file CMS. I’ve used it for sites ranging from a portfolio to an experimental art project.


Prismic's "slices" might be what you're looking for if you want out-of-the-box functionality and hosting.

If you're wanting a bit more flexibility from a code-perspective (and you don't mind TypeScript), I've found Payload CMS to be a great option to build out a page builder as you've described using their "blocks".


Looks like Prismic and Payload CMS aren't open source?

https://github.com/payloadcms/payload/blob/master/license.md - "Payload is free to download and install—and free to use for Personal Purposes. We are passionate about Payload, and we hope that you will enjoy it, too. A valid license is required to utilize Payload as detailed below"

https://prismic.io/faq/product - "Proprietary, not open source"


Ahhh thanks for the shout out to Payload! I'm one of the founders. seanwilson, Payload is technically open source and completely free forever for up to one admin panel user. There are no restrictions at all besides that and the code is fully open on GitHub.

Would this model work for you, or would you like to see changes to our current model?


> Payload is technically open source and completely free forever for up to one admin panel user.

Can you explain how the licensing works here? If it's open source, couldn't you modify it to allow more admin panel users? Can you self-host with no reliance on other hosted services or paid licenses?


Ah, you are correct. I missed that aspect of your question.


Stackbit can do that in its premium plan. It's not open source, unfortunately.

https://docs.stackbit.com/conceptual-guides/modeling-storing...


For building these kinds of pages, there are now actual page builders worth considering that work with various frameworks, like https://www.plasmic.app which also lets you drag and drop your own components/blocks.


Doesn't look like it's open source: https://forum.plasmic.app/t/any-plans-for-self-hosted-plasmi... "We don’t currently have plans for a self-hosted solution"


Yes, Strapi (https://strapi.io/) though I'm not sure about previews.

https://www.sanity.io/studio is open source, but some parts of the CMS aren't I don't think.

Possibly there could be an adapter to use Sanity Studio w/ Strapi?


Looks like Strapi has paid only features. Are these significant to most sites?

https://strapi.io/pricing-self-hosted "Free...Up to 3 default roles"

https://strapi.io/blog/introducing-strapi-enterprise-edition...

Sanity.io doesn't seem to be fully open source: https://github.com/sanity-io/sanity/issues/978

"You can only run the Studio connected to the Sanity hosted backend. There is no option for connecting the Studio to another backend."


I'm using it. The docs leave a little to be desired if you're customizing (they just released a new major version), but you can customize and replace the rich text editor with your own, add a preview button, add a deploy button, etc.

If you want a wordpress replacement though, there will be a big learning curve as it's a general-purpose CMS, not specifically for blogs.


StrapiCMS is MIT licensed and any role limit could easily be mitigated.


https://github.com/strapi/strapi/blob/master/LICENSE "* All software that resides under an "ee/" directory (the “EE Software”), if that directory exists, is licensed under the license defined in "ee/LICENSE"."

What features does that impact?


I don't know? If some functionality is desired, alternative backends could be developed.

If the only limitation is 3 roles apparently, then admin, manager, and writer could be acceptable for most companies.


strapi is an exciting project that is trying to do too much, but I don't think they are a good alternative to WordPress. They need to stop adding features and start making it work stable.


You can try Strattic - it turns WordPress into a static site generator so you can use page builders etc. as usual, and then in one click generate the static version of the site. https://www.strattic.com


What is a headless CMS?


A CMS without the consumer-facing frontend. (i.e. just storage and backend editing UI, with APIs exposed you can hook a custom frontend to)


+1 Directus


> Drupal was, and still is, a clunking monster, unfriendly to developers and editors alike

I feel like this is an unnecessary and inflammatory swipe, typical of coder-bro culture. Both Drupal and Wordpress are open source tools that have survived for years, are built on tested and long-lasting languages, and serve the people who both build and use them.

Everyone is always crying about how nothing ever stays the same, and and the same time, how the-next-new-thing-ism is ruining the web. And then there is this comment thread with every other response trying to push some ostensibly better and easier thing that stands no chance of surviving more than a couple of years, because CMSs need communities to keep them alive.

I am a proud member of the Drupal community. I struggle with it sometimes, but it is still amazing at how much you can accomplish with core and contrib modules. And don't forget, some organizations need a giant, clunky CMS. We're not all building websites for cutting edge, VC-backed, brochure-based unicorns. My clients need a framework that has legs to stand on for the next decade to come.


Totally agree. I don’t understand why the author couldn’t just say that Drupal is for a different use case. Rather than label a whole framework, the people who build it, work with it, and use it, as basically “incorrect”.


For at least the last 10 years WordPress has been an OSS tool whose serverside internals make hardened software engineers recoil in horror, but which nevertheless continues to deliver incredible value for the majority of its customer base.

It's a reminder that if you build something that people really want, how you build it doesn't matter, as long as you have plenty of duck tape at the ready.


Only for interesting definitions of "doesn't matter." The number of security exploits for WordPress websites seems to differ.

https://www.cvedetails.com/product/4096/Wordpress-Wordpress....


That’s awesome, now can you find one that points to all the plugins that cause these security exploits? Because none of those are from the default WordPress install with the Standard plugins (ACF Pro, CPT UI, etc).


Here's one from this year: https://www.cvedetails.com/cve/CVE-2022-21664/

"SQL injection due to improper sanitization in WP_Meta_Query", fixed in WordPress itself:

https://bugzilla.redhat.com/show_bug.cgi?id=2039317

https://github.com/WordPress/wordpress-develop/commit/c09ccf...


Those are all related to Wordpress core.

Plugins are categorized separately from WordPress on the CVE website.


THIS. Impressive how experienced developers and professionals fall for this fallacy all the time because, wait, they don't actually KNOW A THING about wordpress.


It’s an interesting semantic game, but ultimately not very revealing. The platform is what gave you the vulnerability; whether it was core, a theme, or a plug-in is a matter of trivia. Especially considering the plug-in “store” is curated. Contrary to your assessment I’ve deployed quite a few things with Wordpress before.


I suspect the "doesn't matter" is the limited value lost compared to the value gained. There might not be enough black-hat hackers executing on those exploits :)


You'd probably find just as many exploits in Windows, and people use that every day without a hitch.

Just for what it's worth, I haven't experienced any intrusions at all on my WordPress site since moving away from a free shared host 3 years ago (and even then, I don't even think WordPress was the culprit there).


When you build something a lot of people use, it will require a lot of ducttape. Software represents the diversity of its users.


It looks like the chief complaint is that full site editing will make it so you don't have to call in a developer - or a WordPress power user to change something in the footer. This has really been needed for a long time. At the same time, it's kind of amazing that WordPress is the best we can do for making publishing to the web easy for everyone. It's really good, but is sure seems like something better should be possible...


I don't agree. I'm exactly in the position of the author with my clients. The real problem is with the Wordpress makes your client think it can outsmart you.

I don't care about billing random hours to fix a footer. If anything, I program all my sites so that global options like these are ALWAYS easily editable by the customer. That's not my business model.

It's just frustrating when the user wipes an entire section, because they decided that "oh, I can change that font here".

Despite recent changes, Wordpress remains the best choice for the type of websites OP and I are building, I believe. That said, I would absolutely pay for a Dev version of Wordpress mantained by Automattic that would get rid of all the "easy to use" fluff by default.


Exactly this.

With a user that has more power than what they understand, they will break the layout and blame the developer. You then have to go look at what they did.. and as it is in a GUI and not in code, it will be much harder to troubleshoot and thus fix for a reasonable price.


Revisions and backups. Don't waste time trying to CSI what the website owner did accidentally or foolishly.


> It's just frustrating when the user wipes an entire section, because they decided that "oh, I can change that font here".

My clients fuck up their WordPress websites all the time. Revisions and incremental backups solve that issue. Nothing we can do to stop an adventurous website owner on a Friday night after 2 glasses of wine.

Thankfully most of my clients stick to what they do best: run their business and leave the website editing (not content creation) to us.

WP is trying to head off Wix and other "full site editors". I don't blame them but I won't use the new tools as I've already implemented my own solutions.


Those systems just need to be tried out by clients once, so they actually find out that 99% of the websites they could create with their own design abilities are sh*t anyway


In defense of Wordpress, even getting to what Wordpress is requires having a decently designed system allowing for the flexibility that allows people to ship like... recipe maker plugins or the like.

I think a lot of CMS stuff start at first principles of "OK you need posts, and all this other stuff" but really Wordpress seems to be currently structured around the realization that the hard stuff is all the things that aren't shared between WP instances.


We’re a custom dev shop with expertise in WordPress. Our biggest clients are ones that built a substantial business on WordPress then outgrew their site / dev / hosting and came looking for us. Gutenberg will never stop that evolution.

I’m thrilled they’re lowering the bar to manage sites and stay competitive in the marketplace. It’s enabling new businesses and filling a fresh pipeline for us.

WP isn’t limiting us at all. Build pipelines, bundlers, edge workers, js frameworks. It’s all the same. I don’t have to try to sell the advantages of a new CMS. And as a bonus, we already speak the same language as I’m building them a tailor fit WP that they’re already familiar with.


Just today I was looking for a quick way to build a marketing site for my startup that would allow my not super technical co-founder to do the majority of the building. It has been a while since I had used WordPress regularly so maybe there are new sources out there, but I defaulted to checking out ThemeForest to find a decent theme to start with.

I consider myself fairly decent at design (though I'm far from an expert), and I was amazed to see how at odds virtually every theme on there was with what I consider good design, particular from the UX perspective.

Most of them are so bloated they take forever to load and they have an absurd amount of animations.

I've just given up on the idea of taking the easy route here, I can't in good conscience have the first look that people have of my business be a bloated, over-animated mess. Gonna have to build it from scratch.

If anyone has found themselves in a similar situation I'd love to hear what you did.


Carrd and Webflow are popular for non-technical founders who want a basic marketing site these days. WordPress or DIY are not even close to your only choices, there are a huge amount of platforms out there for this.

Developing a marketing site by hand is almost never the right choice for an early-stage startup. Pretty much everything else on your to-do list is a more useful thing to spend your time on than hand-crafting a marketing site.


Why would I choose these niche alternatives, when I have an huge wordpress developer ecosystem at my fingertips? At least here in Europe Webflow is virtually unknown.


Niche? They are both well-known successful unicorns.

As for why you would choose them over WordPress, please just read the conversation. I was replying to somebody who had already tried to start with WordPress and gave up on it.


Carrd is all over Twitter, people use it as a personal bio/links page or for sharing resources, but I haven't seen it used for anything else.


You could use Blocks.app for that, its a visual site builder. It can even generate a WordPress theme. There's other similar tools like Bootstrap Studio or Coffecup Designer — or Pinegrow, if you are a little more technically inclined.


I was recently in a similar boat, I didn't like the themes on Themeforest, so finally I used the Blocksy theme (free version) and it was perfect for what I needed. Really recommend it: https://creativethemes.com/blocksy/


Thanks for the suggestion, that is exactly the kind of theme I was looking for.


I'm using it together with the free version of this block plugin: https://wpstackable.com/


I’ve been a WordPress dev since 3.0. It is a tool. And a very good one. Its market share dominance it not because it is proprietary (it is not) or because of vendor lock in (there is none). It is because it works very well, it is lightweight, it runs pretty much on any host, and is friendly to devs and end users.

Part of being a good dev is knowing which tool to use (and when to not use a tool) and how to get the most out of the tool.


Wordpress is lightweight? 5.9 download is +19.7M zipped and that's without any plugins. The lock in to the Wordpress framework. Not sure whether that qualifies as "vendor" lock in but it's pretty big dep that's impossible to break out of if you go beyond simple blog.


You can easily get locked in to some theme builder or UI toolkit. half the WP folks I know swear by X (genesis theme, etc) and will just rewrite everything in theme X if they take over a project. You're not 'locked in' to WP, you're 'locked in' to themes and plugins.


Do they even offer VPS storage in units smaller than a GB these days? No one cares about a 20MB binary.


For what it's worth, I'm running the absolute cheapest DigitalOcean droplet money can buy ($5/mo) and that comes with 25GB of NVME storage as standard.


The smallest VPSes that i've found are the Scaleway Stardust instances, which have 10 GB of storage: https://www.scaleway.com/en/stardust-instances/

I don't think that it's very economical to provide smaller instances than that for most cloud hosts out there.


Everything is relative. I just downloaded a Xerox firmware update that was almost 500 MB.


that s the size of the smallest mobile app


I have become convinced that words like “lightweight” and “fast” have lost all meaning in software circles. You’ll get two projects describing themselves in similar terms because they’re comparing themselves to wildly different things. (For example: Hexo and Zola both have a heading on their front pages titled “blazing fast”, but for equivalent loads Zola will be much faster than Hexo, probably a minimum of 5–10×, and Zola isn’t even particularly optimised, just written in Rust.)

The WordPress download is 20MB compressed, 63MB uncompressed, containing almost half a million lines of PHP spread across over a thousand files (~16MB; around 55% code, the remainder blank or comments), over half a million lines of JavaScript in over 500 files (~25MB; around 67% code), a couple of hundred thousand of CSS in 700 files (~7.5MB; around 75% code), and the odd spot of other languages. (This is in languages where more code fairly directly means slower, even if faster code can claw that back; whereas in compiled languages, more code just means slower compilation, and runtime performance is comparatively uncorrelated.)

That’s not particularly lightweight.

Conceptually WordPress isn’t lightweight, either. I’ve never used WordPress myself, but I’ve seen three people using it, and in each case they were being drowned in choices and data fields, using two or three fields out of the thirty or more fields it was shoving in their faces; and the themes and plugins and such made matters considerably worse and more complex; and a lot of that complexity didn’t seem well-structured, though my observation has only ever been brief.


If you'd like to share some of your wisdom as someone who has worked with it for such a long time, i posted another question here in regards to actually utilizing WordPress for CRUD: https://news.ycombinator.com/item?id=30179205


> Sites that have been painstakingly, designed and built, reviewed and refined to the last detail

And this misses the point. Many/most businesses gain zero business value from a website.

Most businesses don't need a bespoke website. They need a website that looks like every other business website, allows marketing to throw a new whitepaper up every couple of months, and maybe allows people to send marketing/sales an email from a form.

That's it. Nothing more.

Most businesses don't need a $100,000 website. They don't need an optimized UX experience. They simply need a "good enough" web experience because not having a web experience is considered a faux pas even if your web experience is a gigantic waste of your time and brings no value to the business.

A Wordpress hosting company is perfect for this.


I do a lot of WordPress hosting. I more or less agree with you: I really don't think most orgs are served by having custom theming.

I've done several websites at the low 6 figure range.

I've seen a lot of work go into fine details. To me that's fair: good design is just a lot of tiny tweaks iterating toward something simple, and that's what the designer I work with does well. If that makes the people we're working for feel good, then yay.

If it helps, most of that cost actually goes into data modeling, migrating/ cleaning the data, training users on the admin system, or connecting the site to an ERP and writing functionality to render that data. Or requirements gathering, process documentation, publication strategies, or whatever.

Another side is that most of the off-the-shelf stuff I see won't pass our a11y audit. Which is important to me not just from an ass-covering direction but because I really think that blind folks ought to be able to use the web.

As to the author's point, just locking down what users can do should be good enough. I've been crapping out WP sites in an hour for my musician friends, and my hope is that full site editing gets good enough that I don't need a theme, just a good plugin.

But yeah, in general you're right. I tell folks that they should concentrate on finding some good content, and then the rest of the crap doesn't matter.


I suspect Wordpress developers make bank from the Everest-sized amount of bikeshedding from non-developers that goes the average bog-standard corporate website.


Yeah. Most WP developers and Wordpress itself agree with GP, but it is businesses asking for six-figures websites that require a designer to get made, despite developers and Wordpress saying the contrary.

I've seen it happening a thousand times: businesses asking for extremely intricate websites (despite better advice), only to fail to deliver the content they needed room for and having to hire copywriters for fluff. At some point they don't care about money anymore, it's all about the thrill of the bike shed.


I absolutely hate Wordpress, but I completely understand why it's popular.

The reason why it's bigger than other publishing tools, is because there's almost nothing out there that has the deep network of plugins that can do almost anything.

Sure, the backend of spaghetti PHP, HTML, MySql and endless backdoors and security issues are a nightmare, but there are really not that many alternatives to what Wordpress can do.

And that's why Automattic is doing such a good business by basically hosting Wordpress and cleaning up and whitelisting more and more plugins. It makes perfect sense.


My business partner and I hit a wall when we tried to automate WordPress.

We tried to implement a plugin where Events in WordPress would be triggered, evaluate Conditions and then execute Actions (Send email, Trigger Webhook at Zapier, Update fields over the triggered record, etc.)

Turns out, WordPress is not architecturally ready for this much evolution. And that's when we got disenchanted from WordPress and went to hunt on anything else.


This doesn't make any sense or you are explaining it badly.

You are basically describing how every WordPress plugin already works via filters and actions (collectively referred to as hooks).


Oh it makes a lot of sense! What OP is describing is the experienced programmer approach to Wordpress. Should I check what's already in place for event handling? Absolutely not, I should put my very opinionated layer on top instead of understanding how the system works and go with it. I had major arguments with developers in my team in the past about this, as they would completely miss the point (let's ship) spending time instead reinventing the wheel all the time. They would also be extremely annoyed when I would easily point to the documentation page about how wordpress does exactly what they tried to re-write forcing the system's philosophy.


WordPress's fault, in this case, is that event propagation for specific actions to be hooked is poorly architected.

It's impossible to differentiate "Create a post" event from "Update a post"; they propagate the same event. Every minor change on the post also triggers this event type, along with others. Therefore, leading to scenarios where "On post creation" and "On update, this field of this post" would lead to the same workflow triggered. As an Automator, you don't want to trigger the same workflow for another event that you didn't intend to. Our idea was to use the Conditions to judge if this workflow would run or not, but...

We hit another roadblock; another issue was that when an event is triggered and conditions are to be evaluated, WordPress doesn't include in its payload the previous state of the fields, so if you want to do a "diff" (so you can tell which field values change) you then have to store the current state somewhere to be able to do such a "diff" to compare.

We then had two roads:

- Re-tool the core of WordPress with the functionality (with a lot of PHP hackery) that would enable us to run workflows the right way.

- Relying on the existing API and end up with the same feature set that Uncanny Automator plugin currently has.

So, instead of reinventing the wheel, we just dropped the idea.


They don't propagate the same event though. `post_updated` vs `wp_insert_post`.

`post_updated` passes the old and new values: https://developer.wordpress.org/reference/hooks/post_updated...

I'm the author of a sizable WordPress plugin (in terms of LoC and integration with WordPress) and nothing you are saying is making any sense to me.


Addendum to my previous comment (as an in-depth technical review):

Check out the source code of wp_insert_post() [0] on line 4407, you'll see three hooks that trigger: "edit_post_{$post->post_type}", 'edit_post' and 'post_updated').

Then after that, these other ones trigger unconditionally: "save_post_{$post->post_type}", 'save_post' and 'wp_insert_post'.

For the cherry on top: wp_after_insert_post() is called, with several other hooks on their own.

Try to evaluate each configured workflow whenever every one of these hooks triggers. Your WordPress installation will get slow in no time.

Somebody designed this function this way, and that design is inhibiting effective WordPress automation.

--

[0]: https://github.com/WordPress/wordpress-develop/blob/5.8.1/sr...


Yes, these are different hooks with different parameters, but these are triggered by the same function[0].

When the function is called, all of these hooks are triggered. To identify what the user was doing (post creation on the first time? post updated? is the status being updated?), unless you have many conditions (potentially nested ifs), it's a cumbersome job.

For example, a user wants a workflow every time the post is sent to the Trash. When a post is sent to the Trash, three things happen:

- A hook is triggered because it's sent to the Trash.

- The updated status one is also triggered (Published -> Trash).

- The Updated post one is also triggered, because yes, this is an update.

Yes, these are different hooks, but these do come from the same function. We tested two other plugins similar to ours and found minimal automation capabilities; we speculate this is because of the reasons I just exposed.

If you check out the source code for wp_insert_post(), you'll find many do_action(). When clicking the "Add Post" button, the post is created at that moment (so it can reserve the permalink, etc.); by the time you save the post for the first time, in reality, it's being updated, not saved for the first time as one would believe.

This is just a single example, but these software design decisions make it not that straightforward to create an automation plugin. By the way, that function calls many others inside, functions that trigger hooks by themselves; therefore, you'll have many workflows trigger attempts many times per second, just by saving the post.

EDIT: Clarity.

--

[0]: https://developer.wordpress.org/reference/functions/wp_inser...


Why would it be WP's fault? Maybe your competence level wasn't on the necessary level to automate WP.


I invite you to try it. We truly wanted this plugin to happen, we finally found a niche where there wouldn't be a zillion competitors, and we found out that WordPress's software design currently looks like it's been all hacked together.

This "hacked-together" situation is not their fault in the sense that they have lacked engineering. I'm sure Automattic has some world-class engineers there. However, their codebase lags by years because of their legacy users. From a business perspective, they are hands-tied because any breaking change will bring hate towards them.

Their userbase is too big to make any significant change, and Gutenberg already fragmented their ecosystem badly. They will need to create a new next-generation product from scratch, just like JetBrains does with Fleet instead of IDEA.

For a more technical answer, I already gave detail at: https://news.ycombinator.com/item?id=30185809


The security issues are a feature. Wordpress never ends making money for those who get paid to install and maintain it.


> Sure, the backend of spaghetti PHP, HTML, MySql and endless backdoors and security issues are a nightmare, but there are really not that many alternatives to what Wordpress can do.

What "backend spaghetti" ? What endless backdoors and security issues? https://www.opencve.io/cve?vendor=wordpress&cvss=critical&se...


I was recently doing some electrical work on my house. The past owner had really jacked things up. I couldn't figure out and had to call an electrician. I'd imagine the majority of their work is DIY'ers who've f'ed up and had to call a pro. To me that's what going to happen here - marketing will continually screw and tinker w/ shit till it's broke and then they'll call you to fix it.

I also want to add this is a good example of why marketing should probably just be using tools like Insta, Twitter, FB etc to get their message out. Now if you actually have a good company blog w/ good resources than that's different but I think that's more the exception than the norm.


Question-if marketing is solely restricted to social media, then what is the point of having a website at all? In the original article the author indicated they develop sites for medium-large industrial corps; and that most of these sites are brochure sites.

So if the marketing team at acme co want to sell customers on their new line of coyote-seeking anvils, what is the point of having a website if they can't update the site with all the features of the new anvils? If they can only put the updated copy on Facebook and Instagram, then they will actively avoid linking to the site, since the copy there talks about the v2 anvils that don't have the new vision based coyote acquisition targeting system.

I've worked in similar roles, and I don't like having to always be involved every time marketing needs to tweak the copy on a page. However, that led me to improve the site infra so they could make those changes themselves rather than wait for a developer to do it for them. And unsurprisingly, removing the forced delay and friction allowed them to vastly improve the page, sales noticed that they were getting more inbound leads. Turns out that having to reach out to another department was causing marketing to delay or cancel minor changes since "it didn't seem like a big enough difference to bother IT with". Telling marketing that they should only be using social platforms sounds like a good way for a developer to talk themselves out of a job, since then accounting will start thinking "why are we even paying this expensive salary if our customers aren't even visiting the site?" Sure I have the engineers typical disdain for marketing, but I do realize that it is a useful function and a necessary evil.


I think it comes down to the basics of running a business: focus on your core competencies and USPs, outsource the rest. Vertically integrating something like your marketing website makes sense if it's part of your value proposition (e.g. if you want to show off your product in a way that you can only do by having development and marketing work closely together). But if you just need some commodity, off-the-shelf marketing, buy it from a specialist.


>I also want to add this is a good example of why marketing should probably just be using tools like Insta, Twitter, FB etc to get their message out. Now if you actually have a good company blog w/ good resources than that's different but I think that's more the exception than the norm.

Would you be willing to elaborate this position? I disagree that only being on social media is sufficient for marketing a service/product/organization.

Social media channels can be used to link content to a website, where there is far more control over how the information is presented (e.g. with embedded documents, testimonials, contact forms, and more pictures that can't be added as easily to sical media). You also have more control over the content on your website, on the low but real chance that you lose control of your company's social media accounts due to an unexpected reason.


The blog author complains about the loss of control over the editing experience with the recent changes to WordPress.

Personally I found Drupal to be a much better system for their use case, to provide client 'content editing' that does not disrupt the front end design (allowing user to edit content but limit novice users changing styles or branding).

Drupal has got quite a lot better over the past few years but gets overlooked as it has a bigger learning curve.


But funny enough, Drupal has also adopted Gutenberg.

https://www.drupal.org/project/gutenberg


That's kind of misleading, it's like saying Drupal has adopted NFTs because someone created this module: https://www.drupal.org/project/nft

Anybody can create any kind of module for Drupal, but in the case of the Gutenberg and NFT modules, only a small minority of sites are actually using them.


Django [https://www.djangoproject.com/] + Wagtail CMS [https://wagtail.org/] have been great alternatives for our team.


Thanks for sharing, this is all of the things I have been hoping an OSS CMS would be.


No problem, the Wagtail community on Slack [https://wagtailcms.slack.com] along with the docs [https://docs.wagtail.org/] are great resources.


Why did you choose this over WP? Or was WP not even considered as a candidate? I mean the ecosystem of WP seems to be a magnitude greater.


I've used WP for years and still have stores and sites humming along just fine with my own theme and minimal plugins (pre-gutenberg), it had been my tool of choice throughout the start of my professional career. Those WP sites proudly filled my resume and PHP was my go to backend language until around 6 years ago.

Honestly, I was skeptical of Wagtail before developing blocks to work with their StreamField concept and diving into how clean and clear the Python models can be written as well as how all the data is clearly typed. Our team has decoupled implementations where we use Wagtail's GraphQL API and a modern Javascript frontend, along with traditional Django template driven sites. The ecosystem for Wagtail and Django is larger than you may think, but you are correct it that may take a few weeks to build out some integration that could have been plug-and-play in the WP plugin ecosystem, I usually take weeks to vet any off-the-shelf plugin and look into all of its code anyways.


If you’re a dev or have access to devs then the ecosystem is exactly what you’re trying to avoid with few exceptions. You simply don’t gain anything over a solid web framework with decent CRUD editing on top, except familiarity.

It’s a malleable tool, but at some relatively early point you’re fighting against it more than you benefit from it over something like GP suggests. Just slows you down and erodes confidence.

WP is best if you have no or limited dev resources.


Having developed with both of these options, Wagtail gives the developer complete control over what models and plugins go into the system and when upgrades happen. For some situations this is a good thing, for others it is not.

> the ecosystem of WP seems to be a magnitude greater

Define "greater", right? WP has more plugins, but many of them don't work, or are vulnerable, or throw in a bunch of random messaging and nagware, or slow down the site. In one sense, the Wagtail ecosystem is a lot smaller but what's there is of a higher quality. It's the old "Macs don't get viruses because they don't have the market share to warrant the attention" phenomenon.


Django developer here. I have limited experience with WP but used Drupal back in the day, and from everything I've heard WP is the same with respect to what I'm going to say.

You can touch your nose two ways right? You can just reach up, or you can contort your arm and reach around your head. Working with Drupal very much felt like the latter.

I had to jump through so many hoops to do everything. Just one example: If I wanted to turn off a Preview button in one part of the site, the code in that view had to check what application was running, or ALL the preview buttons in the whole site would disappear (i.e. there was no app scope). Drupal databases were hairy balls of complication, but that's the case with every system I've looked at that has to support "every" use-case.

With Django you just build what you need and you're done. It's very straightforward. Your code and your data model can stay really simple. I built out whole sites really fast with it, even when I was a relatively inexperienced developer.

It's not about the size of the ecosystem, because with a tool like Django it's really simple to just build what you need yourself.

That said, this model works best if you have access to at least one developer. If you're not willing to cough up for that, you're at the mercy of things like WordPress.


Not OP but what equivalent ecosystem do you expect from something like django that you can compare to wordpress?

If someone at work told me "yeah you could write an ERP in C# ...but excels ecosystem is just so much greater" then I'd be a bit confused.


I would never want to host or be responsible for a WP site just because of the security vulnerabilities and potential for abuse (it could start serving spam/malware/etc), but especially not under my/my company's domain and put my reputation and users on the line.


Our company has a website that uses WP and a blog that uses Wagtail. Personally I like the Wagtail/Draftail UI a lot better than messing around in Wordpress.


WordPress keeps getting better and 5.9 was a big leap forward. The OP should try using a vanilla WP install, use or build a (child) theme that supports blocks, add WP Super Cache to get static site level performance and stop worrying about complex layers of third-party cruft. If you're worried about 'marketing interns' messing with the site, don't give them 'Administrator' roles!


This is a well know issue though. For client work there's just no way that clients don't want to have an Admin user for themselves, in case you part ways etc... Which is absolutely fair. The problem is when the intern forgets its password and instead of resetting it, they get the admin credentials from their boss (been there, done that!).


Well, that’s not a Wordpress failure, that’s an organisational failure.


The middle ground I use is DISALLOW_FILE_MODS set to true.


I used to work for a major multinational media company.

A few years ago the CTO at that media company looked to slash costs. They have a bunch of newspapers all over the world, and they had just acquired an Indian software development agency with experience in WordPress.

You can see where this is going.

Soon, a programme to launch WordPress globally to every publisher as their CMS.

But of course you would be allowed some flexibility. You could bring your own CDN if needed, you could bring your own frontend to read off the API, you could harness some identity management system for login, you could even build your own content store.

At that point "using WordPress" just became modifying Gutenberg. I feel sorry for the staff still there who have to constantly fight against Automattic's clear direction in building a Squarespace competitor, to build a tightly locked down and limited editor against the frustrations of the rest of the WordPress ecosystem.

WordPress is great, if you realise what WordPress wants to be, and don't fight that.


In Australia, Nine’s publishing arm uses Wordpress in the backend. It works great! Curious how the changes will affect them.


> The Gutenberg editor has been a disaster and now the full-site editing looks like it will generate the same type of spaghetti-HTML that the other page builders have been doing for years.

This is not the case at all. The HTML generated by the core blocks is much cleaner than what is generated by most page builders out there, and the new (site) editor just makes use of them.


I've too have been working with WordPress a long time. I built Quartz (qz.com) and The New Yorker (newyokrer.com) and other sites on WP.

However so much of what this author says resonates more than I care to admit. I have a good relationship with WP but I worry about the future.


I’m actually surprised that there is not a popular news-oriented CMS (that I’m aware of). WP has survived so long despite the abysmal architecture and myriad of security issues because it’s just so damn flexible. It really has somehow both transcended blogging while being so stuck in it. I suppose it’s ubiquity, especially during the earlier days of corporate internet, allowed all walks of life to start a website with it. They made it super easy to find, install, buy, or build bespoke themes and plugins, which undoubtedly contributed to its widespread adoption.

I remember doing a lot of work with customizations integrating WP and phpBB specifically, which ended up earning me an unreasonable amount money for a 16 year old. I have a certain fondness of WP but it’s heyday has long past coinciding with the abandonment of the independent internet. I greatly worry about its future mainly because it’s demise would represent the end of an era.

Perhaps the backlash to centralized social media will provide an avenue for a platform like WP to see a resurgence, but Automattic would really need to make a conscious effort to pivot with the changing times if they want to ride that wave. It won’t be the Wordpress as we’ve known it but (hopefully) the ethos remains. I wish them all the luck.


You mention the security stuff, but for any site running at scale, it's not really an issue. They don't use a billion plugins and they usually run on infrastructure designed from the ground up to run WP. Heck, A8C's hosting platform (WP VIP) won't let you deploy code that doesn't pass a host of linting rules.

I'm working on a site right now for a big company that's moving to VIP. We have 7 plugins, 2 of which are from VIP, and then 4 that the company I work for wrote and now maintains for use across all of our clients. Everything else is custom. The theme is 100% custom.

When orgs choose WP, they do it because they want the interface to reduce training costs, and the platform to reduce dev costs because they can take that codebase to dozens of different consultancy agencies and have them pick up where the last people left off.


I feel like the intent of the Gutenberg editor and all the 'blocks' is basically "we want to make the specialization of 'bespoke website developer' obsolete".

Whether it's there or not, I have no idea; I only use WP for my personal site, which runs on templates I kludged up myself years ago. But my less-technical friends? If they have a site it's usually something built with some kind of sitebuilder. Gutenberg's trying to serve their needs.


Full site editing has to be explicitly enabled by the theme. By default it is off.

I recently upgraded my WP sites to 5.9 and nothing really changed at all. Because the theme I'm using does not opt-in to full site editing. This whole post seems to be a knee jerk reaction that isn't based in reality.

TLDR: Nothing has actually changed for this person or their clients


I hope more people stop building bespoke websites and start building tools for regular people to just make things. It's 2021. It should not be this hard for a regular person to update a website.

If you can make a powerpoint presentation with MS PowerPoint, why can't you make a website that way?


It's funny you invoke PowerPoint - MS FrontPage was exactly this tool and it worked reasonably well, as did iWeb. Publishing WYSIWYG websites from the desktop was given up in the 00s, and now we have Squarespace and Facebook Pages.


It's really quite a shame we don't have current equivalents of FrontPage and VisualBasic. Sure, the code they generated wasn't clean at all, but those tools allowed average users to create some fairly sophisticated sites and tools. I remember a friend in college just randomly asked me to look over the site she had made for the nonprofit she volunteered at. She had never expressed even the slightest interest in programming, and frankly was your average windows user in 2007; really only familiar with office. Sure, the actual Html was atrocious, and changing anything directly in the code was nigh-impossible, but the site itself actually looked pretty good. I really only needed to help with getting it setup on hosting, since it was mostly a static site the FrontPage output was completely fine. This nonprofit didn't have the money to hire me, since that type of webdev was fairly lucrative, but since it only took a few hours of my time I just comped the work. I don't know of a modern equivalent aside from something like squarespace, which has a monthly fee that small orgs might find prohibitive.


Dreamweaver still exists and does a good job. It requires you to have the expensive Adobe Creative Cloud subscription, but it's still cheaper for organisations who have someone to do the site to go that route than set up and maintain WordPress.


I was there. It was horrible. FrontPage output was an unholy mess and god help you if you ever needed to dive in that codebase by hand.

Current solutions are far from perfect but I never want to go back to that.


Do you ever dive into a PowerPoint file by hand?


No.

Do you ever publish your web content as PPT? Written a web app using PPTX?


No, but my point is, why don't we? I mean, we've gone to the moon, we're going to Mars, we can now delicately land a rocket on a platform floating in the middle of the ocean, and we can turn vaccines around in a year.

Maybe we can make websites as easy as powerpoint? If we can't make it work with HTML and CSS, maybe they need to go?


There are much better ways of doing that than what FP did. There are many great website builder tools that produce decent output.

I'm not saying we have to write all of it manually, but if you want to easily integrate it with other systems (php scripts,, templating engines, ...) it needs to be human readable.

Dreamweaver, contemporary with FrontPage, took a better approach and was loved by many designers much longer (tho by now everyone probably uses Sketch and Figma).


Well, that was the original WP. Lean, and the theme handled the presentation. But as the article points out, that's fading away.

Sure page builders reduce the need for a FE dev, but then the user needs to understand CSS. Is that a win? Pay someone else $100? Or spend half a day trying to figure out CSS? I see basic questions in (FB) WP groups all the time.

And what about UX basics?

All that said, and to your point, from a web vistor pov, most sites are too bloated, too complex, etc. And all that visual shite on your small screen? Who wants that??


You can. Squarespace / wix / etc have filled this role.


They don't. not only are the users not having ownership of their content and distribution, there is also censorship


I hate to tell you but its 2022.


I trust Nassim Taleb's "Lindy" concept more than any new tool in this space. It works because it has worked very well for most things for a long time and I don't need any other explanation.

(My best guess is that -- content management systems inherently suck, and that Wordpress is one of the few successful ones precisely because it did not set out to be a content management system.)


From Taleb's 2012 book _Antifragile: Things That Gain from Disorder_

> Every year that passes without extinction doubles the additional life expectancy. This is an indicator of some robustness. The robustness of an item is proportional to its life!

"The Lindy effect proposes the longer a period something has survived to exist or be used in the present, it is also likely to have a longer remaining life expectancy"

https://en.wikipedia.org/wiki/Lindy_effect


I’ve easily built hundreds of WP sites and Gutenberg makes me sad. Anyone raving about the block editor has clearly never used one of WP’s paid page builder plugins like Beaver Builder and Elementor, they’re in a whole different league. You of course can continue using these plugins, but the absolute chasm in quality separating these plugins and Gutenberg highlights Automattic doesn’t have the technical or design know-how to push WP forward. And with WP being my bread and butter, that’s a little scary.


I've used most of them: FusionBuilder, WPBakery/Visual Composer, Elementor. I honestly despise these page editors. They are so incredibly slow, and the markup they produce is indecipherable.

I've been pretty happy with Gutenberg. It has some pain points - notably around block recovery - but it produces sane HTML, its CSS payload is minimal, and there's no frontend JS at all (at least in the default blocks).

You don't get the millions of features of those other editors, but it's those same features that make them slow and cumbersome. I think Gutenberg strikes a good balance. It's the first page editor I don't hate.


Why use elementor when you can get far better Google Core Web Vitals, and actually write semantic html all with ACF?

Writing PHP isn’t that hard!


A drag and drop page builder can churn out a page in a fraction of the time and many plugins generate fairly decent HTML, it’s rarely worth coding from scratch any more.


This is such a terrible take. Drag and drop page builders produce terrible HTML. Completely unsemantic, and they will always fail Google's core web vital metrics.


Agreed. Gutenberg was 3-4 years too late, and in that time period visual builders were created, refined and became standard for our build process. We chose Divi, and have invested a great deal of time in the platform. With Divi we have both a Gutenberg replacement AND a full-site-editor. I also use Beaver Builder and Elementor - they're all better than Gutenberg and have robust development teams and frequent release schedules.


I don't really care about the markup output like other folks - but I do care about fragmentation. The worst period in WordPress was pre-Gutenberg when all these different page builders were competing for WordPress market share. Offering a consistent user experience is crucial for the long-term health of WordPress and that's the best thing that Gutenberg has brought to it.


LOL you just mentioned the worst thing that could happen to wordpress for client-side work. These plugins are a hot mess of unneeded feature. The amount of code and conditions they create to do something you could solve in a line or two of CSS is appalling. The markup they output is some of the worst, bloated, unreadable markup I've ever read.


> No doubt we could work up a system to prevent this, we can restrict access and force use of the classic editor etc, but that’s where the ‘complicated futility’ comes in. It’s one thing to find a way to cherry pick aspects of the software to serve your purpose, it’s another thing entirely to try to build in complete opposition to it.

Please do not invoke the Amazon Godz, who will take this open source stack, spread it across a score of services, shoot it full of IAM, and give us AWS ProwDress.


> You would use ACF, especially its flexible content fields, to allow you to add repeatable and repositionable content in specific areas of your website.

> Sites that have been painstakingly, designed and built, reviewed and refined to the last detail every step of the way with stakeholders on the client side, optimising UX, legibility, performance and upholding the client’s brand can now be squelched in an instant by someone 3 months into their job who prefers yellow.

Completely agree. Back when I was building w/ WordPress, ACF was the best choice for building layouts because you could provide only as much flexibility as you wanted the client to have. You could give them lots of power to easily update their content but constrain their ability to ruin the design. I gave a short talk at a WordCamp about this exact benefit of ACF over page builders (at the time).


I tried to find a local web developer for a friends small company last year and wasn't able to find anybody in his region who would work with anything else. Even though I needed a mostly static page with a news module.

We ended up hiring a student who just typed the solution himself...


I'm not a serious WordPress user, so this comes from a perspective of not quite understanding what OP is describing. But.

"From the beginning [using wordpress for complicated non-blog sites] has felt like a hack – WordPress is, and always has been a blogging platform at heart," but once WordPress decides to "pull away from this use case completely" [wait, what use case?] to "move the platform to a fully fledged site builder"... that's the problem? Because it sounds like they're intending to be moving toward the OP's use case, not away from it?

Can someone explain what i'm seeing as tension here?


It sounds like he's worried his customers will decide he's not needed anymore. Like, if their perception is that they only call him when layout and style changes are needed, and they can now (somewhat) do that themselves.


> wait, what use case?

Blogging

> toward the OP's use case

No, they have moved toward general purpose site building, not focused on _blogging_


I thought OP was saying that they did not use WP for blogging, from the start, which always felt like a hack since WP was focused on blogging, but OP made it work anyway.

Did I misunderstand? I don't think so. OP says:

> I build websites for a living. Lots of them. These websites are designed by a team of designers who design complex, bespoke, heavily branded layouts. I take those designs and my team of developers and I turn them into corporate websites, generally for medium sized industrial clients.

> Sometimes the websites are big brochures, sometimes they have complex functionality. Sometimes both. They run to hundreds of pages and posts, composed of multiple layouts, templates and using, typically, 20 or more discrete modules, each configurable in multiple ways by the end user when the sites are ultimately turned over for the marketing staff of these mid sized companies to edit.

> Many of them use WordPress as a CMS. From the beginning this has felt like a hack

OP does not describe what they do for a living as blogging or providing blogs. I see OP saying that they always used WP as a general "CMS", for "websites" that may be "big brochures" or "have complex functionality", which are not mainly blogs. Right?


Sorry - I thought you were referring to the parent comment (https://news.ycombinator.com/item?id=30172268).

To answer your question, though - I believe OP's major concern is that the direction WP is heading gives the _client_ more control over the website structure and design rather than the original designers & developers. Making it less useful for their more rigid requirements and corporate environments.


My only wish is that someone with deep technical prowess could explain to me why the Gutenberg back-end Editor is so slow. And, enlighten me as to why the core WordPress team aren’t doing much about it.


Riad's writeup here may be interesting to you on the “why it's slow” part: https://riad.blog/2020/02/14/a-journey-towards-a-performant-...

I don't think it's fair to say the core team isn't doing much to improve or prevent degrading performance — they performance-test every PR: https://developer.wordpress.org/block-editor/contributors/co...

There's also a performance team (for general WP performance, but also covering the editor/JS) that meets regularly and posts minutes. https://make.wordpress.org/core/2022/02/01/performance-team-...

Page performance from sites made with WP's block editor is pretty good compared to other editor plugins too, which probably matters more than editor performance (more people generally read a site than write it): https://wptavern.com/gutenbergs-faster-performance-is-erodin...


As someone who tries to use Gutenberg to make "rich" pages, I disagree. A few weeks ago I was on the verge of emailing Mullenweg directly to ask if he himself uses the editor to write blog posts.

In 3 years they haven't fixed a simple issue like backspace jumping. For example, if you write a paragraph, then backspace to clear it - when the block is fully cleared you jump back to the top of the page rather than the block above it.

In other words, Gutenberg is not native to the editing experience. It's actually laughable how bad it is if you look at something like Ghost[0]. It's day and night difference in editing experience.

Another example is when you start adding "blocks" like CTA buttons and such. Why does the editor need to constantly render those elements in the editor itself? It completely bricks the writing experience. And I tried a lot of things, including switching browsers.

Some of my problems were resolved by removing plugins, but overall I have just decided to use Classic Editor[1]. I can, at the very least, write out the entire article and then switch to Gutenberg to style it the way I like.

It's stupid, but at least it works.

[0]: https://ghost.org/

[1]: https://wordpress.org/plugins/classic-editor/


> There's also a performance team (for general WP performance, but also covering the editor/JS) that meets regularly and posts minutes.

Rant incoming...

I would love to be involved with the performance team (it's what i've done for 15 years), but the problem of funding open source comes up. Key members of the team are Google employees and therefore paid to work on it. I by contrast am a solo developer with responsibilities, and every hour I would spend on the performance team is one that I can't spend on earning money or with my loved ones.

And in the end who benefits from the performance team? Every business who needs better performance. Automattic for not having to fund the work. The incentives don't align.

I say this having written a plugin that speeds up WordPress AJAX requests by 30-95% (dependent on the request). I'd love to open source it and it'd be an ideal contribution to WP... but it's taken a year to get this far and there's more to come


> Page performance from sites made with WP's block editor is pretty good compared to other editor plugins

Perhaps, but it's never been a great idea to use editor plugins at all.

> There's also a performance team (for general WP performance, but also covering the editor/JS) that meets regularly and posts minutes.

Gutenberg is about to enter its 6th year of development while the performance team has only just formed and is yet to contribute anything meaningful in this capacity.


My blog has been on Wordpress since about 2007.

It works, and I appreciate that it’s free but I’ve always hated working with it.

If someone made a node based equivalent (so I can at least use a modern templating language) that supported comments I would be all over it.

The commenting system is the only real reason I stay. There’s nothing else I can find that doesn’t necessitate stitching multiple services together just to get commenting that I can find.

And as for being able to spin up a local dev version for casual edits — horrid DX! I wonder whether a big reason social media has stolen our online interactions over the years is because there are few (no?) blogging platforms that support comments?!



No commenting!


What's the quickest-to-learn alternative to Wordpress? Possibly with a CLI version so I could edit it via bash commands.

Wordpress atm is the quickest way to whip up a website for any objective needed.


>Wordpress atm is the quickest way to whip up a website for any objective needed.

Bullshit.

Static HTML template + Azure Static Web App/Netlify/... is definitively faster and cheaper to setup.

I am a developer who runs multiple wordpress sites for small businesses.


Most hosting platforms offer to install Wordpress via 1-click. Once installed, it's really easy to use and edit even for a novice. Otherwise, downloading Wordpress.org and uploading the files via FTP is really easy. The most technical can edit via CLI if needed, but it's not mandatory to know how to use a shell.

What about Netlify? I've seen and heard about generating static websites, but honestly I have no idea where to start, what technologies are needed, how easy or how hard it is to explain the customer how to edit their own websites once ready..


> The thought of client side marketing interns ‘play(ing) around with site-wide designs’ should make the blood of any professional run cold. Sites that have been painstakingly, designed and built, reviewed and refined to the last detail every step of the way with stakeholders on the client side, optimising UX, legibility, performance and upholding the client’s brand can now be squelched in an instant by someone 3 months into their job who prefers yellow.

That's why you set the intern's role to editor.


Author mentions Twill. https://demo.twill.io/. Looks interesting, like a big shiny ACF front-end. I wonder what the back-end looks like for dev.

edit: ah, it's a laravel package.


Its pretty great CMS but its mostly laravel you need to be comfortable with it or its going to be rough. I think it makes sense if your site requires advanced functionality.

I think there are more productive alternatives for most people like Kirby CMS, Craft CMS that have great docs and focus on the CMS part very well.


I always liked WordPress for what it is, but eventually I stopped recommending it to my clients because it made them dangerous.

I had to severely lock down most of the functionality to keep them from shooting themselves in the foot and it reflecting bad on me.


This reminds me of late 2000s, when a WYSIWYG editor had a potential to completely brake the pages layout with a single unclosed tag. Two steps forward, one backwards.


Surprised no one has talked yet about Ghost, which feels like what Wordpress would have been had it been founded in 2013 instead of 2003. I recently converged from Substack, Convertkit and Wordpress down to just Ghost. It's not perfect but it's damn good. https://www.jasonshen.com/switching-to-ghost/


Hubspot is a great option if you can do it. Keep your app and marketing site separated.


"The thought of client side marketing interns ‘play(ing) around with site-wide designs’ should make the blood of any professional run cold."

I cannot even begin to fathom the level of cringeness from this assertion. If you think like this you should not be doing client work.


It's just great to see work on self-hosted cms, and PHP nevertheless, the easiest one to host. Open source has forgotten the art of making the web open to everyone, not just to BigTech employees.


This must explain why WordPress has been losing market share every year for more than a decade, right?


Sarcasm? Because the opposite is true




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: