I'm not a fan of WordPress's architecture per se, but I try to develop my plugins "the WordPress way." Make sure they use core functions _and looks_ wherever possible. That way I almost never have to fix things going forward.

Show thread

Pretty sure all the premium ("page builder," etc.) plugins _deliberately_ take a different route: once users are used to them, or rather, hooked, there's no way back.

Show thread

> When I review plugins, there is one thing that I consistently preach: simplicity. That begins with following the core WordPress UI and sticking as closely to it as the plugin’s features will allow. In essence, don’t make me think about how to use your plugin.


@neil (And the most strict destination servers do seem to be Outlook and Google's, perhaps because they handle such enormous amounts of email, and, thus, spam.)

@neil Don't have any links on hand, but a search for "email deliverability" should go a long way. A typical issue is that even with SPF and DKIM (and so on) DNS records in place, a given server's emails are still marked as spam or do not arrive at all (shared web servers suffer from this all the time, or VPSes given a previously blocklisted IP, etc.).

Bookmarked buttondown.email/cassidoo/arch.

PHP okay, too?

function reorder($a, $b) {

$arr = array_combine($b, $a);


return $arr;


> Given an array of objects A, and an array of indexes B, reorder the objects in array A with the given indexes in array B.


(I mean, there’s an informal leadership, _I guess_, and a wiki that’s crazy hard to navigate, and a bunch of third-party services all hosted by the same two people. You don’t need any of those. If anything, there’s a number of standards—you need those for interoperability, that’s how it works—that you can pick and choose from, no strings attached.)

Show thread

There’s nowhere to sign up, no membership fees, no leadership. All it takes is a site of your own, that you’re in charge of. (Of course, if you’re perfectly happy having Facebook control your entire online presence, maybe it isn’t for you. That's okay, too!)

Show thread

No need at all to learn static site generators or host everything on the underpowered Raspberry Pi in your basement! Like, seriously, stop making it harder than it is.

Show thread

Webmentions are easy! WordPress has had pingbacks forever, and webmentions are hardly any different. Install the plugin, done. (Forget about the half dozen other “IndieWeb” plugins; you don’t need ’em.) Or, if you’re all adventurous, experiment with them yourself. Everything goes.

Show thread

IndieWeb is easy! 🙃 You get a domain of your own and a dead-simple website, and you’re 95% there. In fact, everything else is secondary to that.

@bekopharm Sort of. Well, I basically have my "controller" check that there's two valid URLs and then store these. Then sometime later I have a "job" fetch and "parse" the source page, and it does this for only five mentions at a time. @nathand

@wouter Totally understand. I don't subscribe to news sites for exactly that reason, and simply mark anything I'm not immediately interested in as read just to get it out of the "Unread" queue.

@nathand I’m not sure. I always understood Webmention itself as little more than, “Hey someone <over here> has, in one way or another, mentioned your page <over there>, and what exactly you do with that information is up to you.” The spec’s kinda explicit about processing them asynchronously, though, to minimize server load (and improve security), so that could be a reason, I guess.

@wouter And if you’d given up on feeds altogether, like I’m guessing most people have, then just Pocket, which comes sorta pre-integrated with Firefox, would probably do. 😄

@wouter Well, turns out my “stack” isn’t really a stack at all, although one would almost always need a feed aggregator _and_ a read-it-later app. (Like, there’s some overlap, but the latter typically supports scraping and authentication and what not.) I was able to ditch one but still need to pipe “reads” (or “saves,” or whatever) through my CMS. I mean, I don’t technically have to, it just happens to be somewhat more convenient because of my existing setup.

@nathand (The microformats themselves are hard, too, as is getting them inserted semi-automatically, but again: optional. In fact, most of the time, a `u-*` class on a backlink is sufficient to imply a certain post type. 🙃 As for the rendering bit: there’s fairly easy solutions, here. I myself strip all HTML off short webmentions and show them in full—I might also edit them a bit, remove obvious typos and such—while longer ones get displayed just like WordPress pingbacks.)

@nathand It’s really easy to get right: a POST request with `source` and `target` parameters is all it takes! 🤗 (Yes, rendering someone else’s microformatted markup after you’ve received mention of their post is hard—I know all about it!—but optional, too.)

Show older

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!