I know this is controversial, but I was in his EXACT spot and I did something else that many of us at some point in our lives ended up doing - I wrote my own CMS. But, I wrote mine for the last 10 years. I iterated it with various different languages, frameworks and eventually settled for a Phoenix/Elixir based backend that is locally / cloud hostable, with a more or less similar UI to Wordpress. I actually wrote a lengthy article about it if you are interested to follow on its updates: https://medium.com/@ideatocode/what-i-learned-as-an-artist-w...
The thing that keeps people hooked with Wordpress is actually the UI. For most people, it is stupidly simple to use after they play around with it for a couple of days.
In Singapore, I met this florist who was running her entire business based off of a shared hosting hosted Wordpress that wasn't updated in years. I asked her what kept her on the platform still as it was slow af and she said "it just works". She got hacked a couple of times, but no biggie, she was also back on track after just a support ticket to her hosting provider. That is the power of Wordpress from a user's POV.
Thanks to Wordpress, almost my entire career was built on top of it, just detesting it (unknowingly).
>She got hacked a couple of times, but no biggie, she was also back on track after just a support ticket to her hosting provider.
Nice provider :D
I have the same sentiment about Wordpress. I see a lot of criticisms for the Gutenberg editor after they deprecated TinyMCE and I can't understand it. You can easily write your own WYSIWYG widgets if you know React.
A lot of other CMS's just lack the ability to insert random blocks into the HTML or are purely markdown-based. If I can't Ctrl+K and search the name of a page to add a link, it's not even content-manage-y, it's more like a page rendering engine.
After writing a lot of things in Wordpress I went to write something in Reddit and it made me miss Gutenberg. I start a code block, how do I leave the code block? Pressing enter twice doesn't work??? If I click the code block button, the whole code block disappears! Can I type a paragraph before the code block and press an arrow button to push it forward? I can't. And even the toolbar doesn't stay on the screen on desktop if the post is too long, it stays on top of the textbox!
There's a lot of work put into Gutenberg to make it intuitive and versatile. Perhaps the most important lesson, UI-wise, one could take from it, that I have been noticing in good UIs lately, is that there should be multiple ways to perform the same task. There are at least 4 different ways to move a block in Gutenberg. In most editors, it's only cut and paste.
I suspect every bespoke web-accessible CMS evolves towards some WordPress conventions over time.
I have built, I don’t know, four (or maybe five depending on your perspective, and not-including small app-specific systems) fairly solid CMSes in the last couple of decades, and installed them in different places, and maintained a few more.
But the ones that have survived the longest are the ones derived from the first, simplest PHP system I produced, which had solid authentication, a very simple page handler model and admin screen model, form handling thanks to a custom version of the legendary fillInFormValues code, etc.
Because it had such simple objectives and structures at the beginning, it has never been difficult to maintain, and it remains incredibly fast.
It is getting on for twenty years old, has gone through two wholesale ORM changes, has a JSON API, is managed with Composer, has CSS inlining support for its transactional emails, etc.
It has also ended up with WP style hooks and actions for the front end, which has allowed me to port my own live SCSS and JS compiler plugins more or less directly from my WP projects.
There is a lot to like about the flat simplicity of the WP hooks and actions model, and the way it can be implemented in other very simple page rendering CMSes. It’s more or less completely independent of plugin initialisation so it’s easy to add it regardless of the scheme in use there.
Thanks Neya. I'm still grateful for WordPress, as I also owe a nice chunk of my career to it.
And, I also agree with you that the admin UI is pretty solid. This is impressively simple to put together any kind of content in minutes.
Yet, the performance and resource consumption are telling another story.
If I'm moving away for my personal (unvisited) blog, WordPress will still remain dear to my heart. And I know that, if I ever had to being a freelance full-stack designer and developer, I'll happily work back on WordPress for my customers.
I'm personally in the top left corner and bottom right corner at the same time, which is sort of funny.
I have used WordPress since 2004-2005, and I've also written a Python static site generator before using Flask, Frozen-Flask[1], and webpack. I've also made stops through tools like Sphinx, Hugo, Gatsby, and VitePress[2]. But my personal site continues to run WordPress[3].
I think I'd prefer something like VitePress these days for a technical documentation site. It has a lot going for it for that use case.
Also, I recently learned that MediaWiki with a reasonable theme like Citizen[4] is a nice choice for an open source powered private wiki, although I do find the Mediawiki markup language a little cumbersome versus simpler markup languages like reST or Markdown/MyST in the Python community (or GitHub-Flavored Markdown or Asciidoc supported elsewhere). But Mediawiki has a lot of nice features (after all, Mediawiki powers Wikipedia). The theme makes it work properly on mobile and makes content editing a bit simpler. It still isn't nearly as polished as commercial wiki-like software (e.g. Notion) but it's better than open source wikis used to be.
I do find it kind of amusing how many tools and frameworks developers have created for making it easier to edit HTML pages. Truly a foundational 21st century problem, I guess!
It's the adage: your users don't care about your tech stack.
In the time it takes for you to learn jekyll or hugo, someone with a wordpress blog already wrote 30 articles. When you finally figure out static hosting, 50 posts. When you finally make something with it that you wouldn't be able to do with vanilla wordpress, they will have their first user. :P
Haha! That meme was spot on. I think we’re both the same, I simultaneously belong to the top left and bottom right too.
In my case, i got lucky. I put my CMS to production into a newsroom that has over 50,000 articles, so in my case I was extremely lucky that it paid off. But, I totally get your point on getting lost in the chase. Thanks for sharing!
I am not fond of Bedrock. (Acorn maybe solves a problem though)
Subverting the way WP works to make it work more like other environments is, in my long experience with WP, the cause of almost all unmaintainable, hacky sites, no matter how good the intentions.
It’s entirely possible to use Composer and the autoloader within a plugin without doing stuff like this.
I tend to wrap up every plugin I write using Composer, and enclose the plugin’s functionality in a singleton instance.
If you are not then also targeting the WP plugin repository, you can make good use of PHP lambda functions to make tidier code.
But generally, it’s just better not to assume the WP conventions are wrong; almost all the interoperability of WP comes from understanding its idiosyncratic way of doing things, and leaning on simplicity and the core whenever you can.
Don’t make the mistake of believing the default settings of WP come from any kind of informed wisdom instead of historical accident. WP was never designed, it was grown, it predates composer and every sensible modern PHP practice, and is still distributed the same way for compatibility reasons. For all its faults tho, WP does let you rearrange its half-dozen or so directories, and is designed to do so.
Bedrock’s layout isn’t radically different from what many multi-user WP setups adopt. WP itself uses constants everywhere to refer to its directories, and as long as you set them, WP will work fine. Plugins that hardwire paths have to be fixed of course, but even the dumbest plugins still tend to use the constants, or are easily edited to do so. (BTW, I recommend cweagans/composer-patches for those plugins you do need to tweak by hand: much more maintainable than forking the plugin locally)
> Don’t make the mistake of believing the default settings of WP come from any kind of informed wisdom instead of historical accident.
I don't, thanks.
To repeat myself, I just say it's better not to assume they are wrong.
Almost every bit of bad WP development out there comes from people who work against the flow of what WP is doing, whether because they don't understand or do understand and feel they know better.
They may, in fact, know better, but it's almost always wasted energy that leads to future unmaintainability when a WP site is handed to a new stakeholder for example.
The WP sites I've had to maintain where someone has subverted the templates, or tried to superimpose some MVC scheme, or whatever, have always been the worst ones.
There are good, official tools to manage most of the idiosyncrasies of WP (WP-CLI, for example) without just arbitrarily moving stuff around. Learning them helps.
> To repeat myself, I just say it's better not to assume they are wrong.
Normally advice I would heed, but my long experience with WP's codebase has flipped that assumption. It's WP's default layout that's the unmaintainable mess, much like every other legacy PHP project that doesn't use composer.
Bedrock isn't "arbitrarily moving stuff around": it's a mature product maintained by people who know what they're doing, which frankly puts them a tier above most of Automattic.
I use wp-cli alongside bedrock, they work nicely together.
>> I did what most of us do in such situations. I went for WordPress, a not-too-crappy theme for which I might have even paid a few bucks, and cheap hosting. The recommended way to fetch WordPress is to download a zip file (scream), tweak it locally if you can, and then upload it to a server using FTP (more scream). You could use sFTP if you wish to make things less worse (still screaming).
Oh, the national sport of criticizing a platform or tool without having used any of the many different options it offers, I see.
Also… wow, this comes straight from the dept. of complicating easy things… for the only reason of not wanting to understand how the platform perfectly handles all the issues describe, not researching any of the good existing professional wordpress based solutions out there, which have been available for ages.
Thanks. I spent many many years with WordPress, and I loved it for many years. Once I started seriously leveling up with other tools, such as Symfony or Laravel, the standards enforced in WordPress were insufficient.
I know WordPress future is still bright and getting better with every release. I love its community. But my personal decision is to move aside.
But VVV is aimed at developers; the OP describes a different use case, in which he also eloquently explains my dilemma, and that I'm sure of many others: we want to write for our blog, not develop our blog. I am very interested in his project going forward...
I don’t see that issue, really. If you don’t want to develop WP, then use a hosted platform or static builder. If you factor your time spent on tweaking this “simple” proposed setup, you’ll see that $20/month is actually a great deal.
Even when I was a WP developer, none of my personal websites were in WP, they all lived on static hosts that needed zero maintenance.
Which almost every serious WP designer-turned-theme-developer I know uses.
(I personally use my own simplified Vagrant package management scripts with some ssh_config integration hooks because I work on more than WP and value standardisation across VM environments more than I value the features Local adds)
Thanks for the warning. I'll get in touch with them. If I have to rephrase the title, I'll go with "Why I'm leaving WordPress", because it is also the stage were I'm at on my (very long) journey with that CMS. I started web development with it.
The thing that keeps people hooked with Wordpress is actually the UI. For most people, it is stupidly simple to use after they play around with it for a couple of days.
In Singapore, I met this florist who was running her entire business based off of a shared hosting hosted Wordpress that wasn't updated in years. I asked her what kept her on the platform still as it was slow af and she said "it just works". She got hacked a couple of times, but no biggie, she was also back on track after just a support ticket to her hosting provider. That is the power of Wordpress from a user's POV.
Thanks to Wordpress, almost my entire career was built on top of it, just detesting it (unknowingly).