back

by fredley·3y ago·view on hn ↗
WordPress was where I got my start, a while ago now. From poking around with PHP files, to building my own things, to Django, and on.

It would have been inconceivable back then (mid noughties) that the whole thing could be done client side. The Web has come on a long way.

These days I tend to hate WordPress with a passion. Occasionally I will be asked to peek at some technical problem with a WordPress installation and it's never not like opening some awful Pandora's box of out of date, brittle, scary plugins, these days most of which seem to be trying to upsell via ads in the admin.

However I will always be thankful for WordPress and what it enabled in its heyday, and say a silent prayer of thanks every time I think of the people tasked with keeping creaking old sites alive.

5 comments
Wordpress is one of those things I've plenty of experience with, but leave off my résumé and avoid mentioning to bosses and colleagues, so I won't get roped into that bullshit if it comes up—and it often does, sooner or later.

"Wordpress? I can take a look if you need me to, but I don't really know much about that. I think Fred said something about Wordpress the other day, maybe ask him...."

I've known others who confided they do the same thing. I think it's fairly common.

Plus the PHP market, and especially the Wordpress market, doesn't tend to do great in the compensation department (short of making and selling a successful plugin yourself, anyway) so I'm not exactly eager to put more weeks/months/years of experience in that column when it's not worth much.

I have thought about making a plugin.

The plugin documentation/architecture is a bit gnarly (at least from what I remember). That being said, I feel like most WordPress plugins are awful.

I've sometimes wondered if I could make a better version of X plugin, but I fear I'm missing something - like providing customer support or covering every version of WP.

The customer support and testing are key challenges. You have to be ready to help people with things that aren't even your fault if you don't want your rating on the marketplace(s) to go to shit. Plus you'll need to do lots of sales/ads/marketing to get your zero-ratings zero-downloads plugin off the ground, no matter how good it is. Writing a decent and useful plugin is helpful (almost wrote "necessary", but it's actually not—at least the "decent" part) but isn't sufficient to have a successful plugin.
> You have to be ready to help people with things that aren't even your fault if you don't want your rating on the marketplace(s) to go to shit.

Ah, that makes a lot of sense. Now I /definitely/ don't want to make a plugin.

The plugins are both awful and brilliant at the same time. Well, maybe not so much today. But back before I knew I what I was doing, back before Ruby On Rails really took off, it was pretty awesome to have a Wordpress blog, install a plugin, and suddenly you've got a fully fledged forum section on your site.

Of course the architecture and the mode of installation for those plugins used to be horrendous and fraught with so many problems.

You could look into making single purpose blocks. Then you can get listed in the block inserter upon search an site owners an install your block right from there. Some plugin developers made great inroads in active installs with this more friction less process. Once your block/plugin is installed you can provide links in the sidebar to more expansive plugins or premium versions.
>Plus the PHP market, and especially the Wordpress market, doesn't tend to do great in the compensation department

WordPress work certainly doesn't pay a lot, but for PHP in general there's a large cavern in the middle. You can get very, very high salaries/contract rates as someone experienced with PHP if you are extremely experienced with PHP - specifically because so few people are willing to stick with it to that point. There are just a lot of legacy systems in very large companies that run on it.

So if you already have the experience, it can be worth it. If you don't, then trying to get mid level or even "low senior" PHP jobs probably isn't worth it compared to another skillset.

Yeah, I know there exist high-paying PHP jobs, it's just that finding a PHP job that pays as much as Swift or C# or Java or Javascript or [insert almost anything else here] is usually relatively challenging.

I don't mean that there are zero people making good money in PHP, just that it requires flying a rather tricker and less-certain course to get there, than with other options.

I really might put PHP top-of-page—at least, in some contexts—if marketing myself as a high-priced contractor, for the reasons you mention... but, in hunting for ordinary jobs, I no longer even bother looking at PHP listings. Too much chaff, not enough wheat, and it's been like that for a decade or more. Just way easier to find an employer with compatible pay expectations, with other languages, if we're talking run-of-the-mill jobs. Shorter searches, more-consistent outcomes.

Similarly, I do not mention to anyone that I have touched Drupal in the past.
I'd happily put "completed a major Drupal version upgrade" on mine, if I'd ever successfully accomplished it. I think it was 6 --> 7; still gives me the willies to think about that attempt. Seeing that on a resume would be an immediate "wow, this person can handle a complex migration..."
Oh man, I have tons of experience with WordPress AND Drupal early on in my career. Good call, I'm not going to have these on my resume haha.
I have spent a significant amount of time developing a product (developer tool) related to WordPress. I have put it on hold recently and I'm trying to evaluate if perhaps I should not do something else instead. I have had this feeling one year ago, that the WP development market may be shrinking and it was further amplified by ChatGPT release. Does anyone feel that way? Is the time still right to develop something, launch it in some 2 years and be sure that if the product has any potential, the market is still ripe in 5 -10 years from now?
I had a love-hate relationship with Wordpress from the beginning.

Yes, I too basically got my true start in dynamic web development by downloading Wordpress, running it under a WAMP/LAMP stack, toying with the code, and eventually writing some plugins. My coding skills back then were TERRIBLE, but even at that time I had a sense that Wordpress was actually quite a mess under the hood. The database design was pretty bizarre in particular. Fast forward almost 20 years later and I'm a senior web developer, and my opinion of Wordpress has not changed. That doesn't mean Wordpress is bad, because on the surface it does its job very well, but it was (and probably still isn't) the pinnacle of well-written software, and it's not a coincidence that there were vulnerability reports being issues all the time for it.

Wordpress was awesome in high school, the times before StackOverflow, MDN, YouTube, etc. It was a "framework" before frameworks were cool. One of the big selling points for Wordpress was that it was far more approachable than competing CMS softwares like Joomla and Drupal. I tried to figure both of those out back then, and I just utterly despised them. You could do a ton with Wordpress out of the box because, for the most part, you just wanted to have pages for things, a blog section, CSS, and a way to extend functionality. That said, I'm so glad I never have to use it again.

>these days most of which seem to be trying to upsell via ads in the admin.

This is my biggest issue with wordpress.

So much that should be in core is left to plugins, some of which are semi-official like jetpack, that it feels a lot more like "open core" than "open source".

We do need to figure out as a community how to deal with that upsell / aggressive plugin problem. I hope we can come up with some norms and standards for what's allowed in our plugin directory that is most customer-centric.
yep, only allow high quality plugins that adhere to coding standards

also, WordPress should be behind a framework( symfony, laravel)

What no-code alternative would you recommend for pro web designers?
Wordpress is still great for downloading a theme from Themeforest to get brochure style sites (restaurant, simple small business, etc) up and running pretty fast. It is not great (possibly horrendous) for revisiting a few years later when all the plugins/theme/core needs to be updated and a bunch of different people have added custom JS/CSS all over in random places.

It's hard to reconcile "pro web designer" with no-code though. Having said that, my preferred stack for something that involves more than a simple site is Sveltekit, Tailwindcss, & Sanity. But everyone has their own preferences.

In my experience, I bought some pro/high sellers/high rated themes on Theme Forest for 3 sites, but all of them come with a bunch of pre-installed plugins, and was a mess.

Specially two who have a mandatory plugin to edit pages, called WPBakery, damn I hated it, is awful, the native WP editor is miles away (Gutenberg), but the design will brake if you use Gutenberg. Also, this and other plugins do not auto-update automatically, for each update you have to login to a site of the theme seller, download a zip, and update the plugin manually. And also on the admin you always gets upsells of the pre-installed plugins all the time, you can't disable it, sometimes you get a rack of 3 top banners simultaneously.

The end user sites looked really nice tho, but the editing experience was horrible.

Yeah some themes are way better than others, that's for sure. This is one of the cleanest and most flexible that I've used on dozens of sites, getting them up and running with a branded look in 2-3 hours:

https://themeforest.net/item/salient-responsive-multipurpose...

The templates on this theme looks really nice and modern, will check it out, but it uses the native WordPress editor or a third party plugin? Also, the pre-installed plugins will update automatically?
I hope we can make the .org Theme directory so good and Gutenberg + Patterns so usable you don't need to go to Themeforest anymore.
Need to get the intrinsic design approach right first, that's lot to cover.
Wouldn't say "pro" unless you get strictly mean design and not functionality. In which case I'd have recommended Photoshop which is what I used for design only 20 years ago, but I think the UX folks like Figma or something these days.
You can't design anything in WordPress without code. Unless you count installing a theme as "design".

If you're a pro web designer you should know CSS. Then there's some good alternatives.

I might have misinterpreted your comment, but there are plenty of site builders for WordPress (WYSIWYG-ish editors). Granted, you can only do so much without knowing CSS.
I would recommend Kirby, it is not all there, but is getting there.
Although it isn't open source, Webflow seems to be the current most popular thing for that specific niche (low/no-code platform for designers)
Wordpress + Oxygen/Bricks/...?
Webflow
Lern to code (at least a little bit) and if not ... Contao. CSS isn't considered "coding"
Most of the gatekeeping of what is and isn't "coding" is done by novices who don't really know what they're talking about. Beginners tend to want a hard line with "coding" on one side and "not coding" on the other, but that's not a very useful way to model interactions with computers.

It's more of a spectrum of complexity, with WhatsApp on one side and full-blown software engineering on the other. In the middle is a vast gray area, much of which could very legitimately be referred to as programming, but which equally someone might consider to be simply using an application (like Excel).

Further, what tools you use is less significant for whether something should be considered coding than is how you're using them. I'm a professional web developer, and the way that I and my colleagues use CSS is unquestionably coding. On the other hand, someone who's just styling the fonts on their squarespace page might not consider what they're doing to be coding and that's also fine.

> Most of the gatekeeping of what is and isn't "coding" is done by novices who don't really know what they're talking about. Beginners tend to want a hard line with "coding" on one side and "not coding" on the other, but that's not a very useful way to model interactions with computers.

I disagree. There's a meaningful distinction between what is code and what is formatting because the concerns are quite different. This distinction is more apparent on frontend applications where the code bits are actually dealing with the fact that there's a single process doing all these seemingly asynchronous things, the use of very infrastructure-like components (eg: pubsub implementations, stores, etc). Formatting and design doesn't need to deal with the how, it needs to deal with the why. The powerhouse of a developer is knowing both.

Trying to shoehorn peoples attitudes into discriminatory experience levels based on your perception of that rhetoric is an odd behavior unto itself. These topics merit talking about because ultimately they affect how we think, reason, and organize on different layers of projects.

You actually somewhat proved my point with your example of CSS. It more recently became capable of more "code like" qualities, but it can definitely be used for just styling and formatting. Without discussion someone may never know the difference or why you'd use some of CSSs computational capabilities. Another crossover is YAML; YAML can be very markup language oriented but it also supports aliases, pointers, etc.

I agree that the distinction you're drawing is valuable, but it's not a distinction between "code" and "not code": both aspects are defined with a language that the computer parses, interprets, and executes on. One happens to be a declarative language that deals with the what and why, and the other an imperative one that deals with the how.

> Trying to shoehorn peoples attitudes into discriminatory experience levels based on your perception of that rhetoric is an odd behavior unto itself.

I think this is a bit of an overreaction to my words. Referring to someone as a beginner is not discriminatory, we all start as beginners and it's okay to not know things. It's also okay (and desirable!) for those of us who do know better to help novices to learn the material and the culture better than they now do. And the fact is that "what counts as coding" is not a discussion that serious developers have between themselves.

> These topics merit talking about because ultimately they affect how we think, reason, and organize on different layers of projects.

I believe that "code" and "not code" aren't useful categories for dividing up CSS, HTML, YAML, JavaScript, Haskell, and C. We're capable of enough nuance to distinguish between them while still acknowledging that they're all languages which we use to tell a computer what to do. Let's talk about them in that nuanced way, not try to split the world into a code/everything-else binary.

> both aspects are defined with a language that the computer parses, interprets, and executes on.

Sure, but low order definitions of "code" being something that takes an input and produces a different output do not relate to the real world unless you believe modern word processors require programmers.

> Referring to someone as a beginner is not discriminatory, we all start as beginners and it's okay to not know things.

I think you're missing the point that the statement you made applies to a wide variety of discussion, not simply binary code|not_code discussions.

> Most of the gatekeeping of what is and isn't "coding" is done by novices who don't really know what they're talking about

This statement would also imply anyone trying to sort out coding from formatting, from styling as a novice. There's a reason we separate these activities in programming that has to do with how you model applications not to mention empowering the people who have expertise in doing them.

While I agree that code|not_code is not helpful, trying to make the definition of code so low order that it's meaningless is also not helpful. There's a bar there that belongs in the middle and I think you both have missed it. I was merely calling out equally harmful wording that you were using to correct harmful wording.

It's not "code" and "not code", it's "software engineering", "programming", and "using a computer".

So many more people program computers than think they're programming. Anything that allows a computer to reproduce what would otherwise be a manual set of steps is programming. Made a bookmark in your browser? That's programming. Excel is definitely programming. And have you ever tried styling a web page using only the browser dev tools? CSS is hardcore programming, and people who claim otherwise are often snobs who find CSS too hard so they call it "not programming" in order to feel better about themselves.

Software Engineering is a whole different ball game. It's not so much what as how and actually the "programming" bit is almost always the easy part. That's why Software Engineers run away when someone asks them to look at "this really useful spreadsheet than $PERSON made" -- chances are that person doesn't think of themselves as a programmer, but that's what they've been doing and they're actually really good at it. But only in isolation, while Software Engineering involves working with whole systems and (more importantly) both the people who use them and the people who work on them.