Fitz Thiar: Thinking For The Impatient

Writings And Opinions of Fitz Thiar. More or Less.

  • Not content with printing money by selling your data and targeting you with ads – Meta now expects you to pay for the privilege.

    Yes, Snapchat and X/Twitter have had paid tiers for a while, but this is different. Not content with having businesses and pages pay for reach, Meta is shifting from a “forever free” model for regular users, where they monetize your data and attention, to charging you for you’re ability to express yourself.

    They’re moving from being the “town square” to Time Square advertising where you have to pay for space. You have to pay to be heard. You have to pay for expression, reach, and credibility.

    Want more reach? Pay for it. Want for credibility? Pay for it. Want to be a real business? Pay for it.

    Clearly Meta’s net profit of $26.8 Billion (on $56.3 billion revenue) was not enough to stave off the corporate greed or the “number must go” up mentality of investors.

    It’s a fucking odd decision to start charging users for tiered service given that Meta recently faced it’s first major user loss – a drop of 20,000,000 users in the last quarter. One would think the focus would be on improving the service to attract more users and profit from those ads and juicy user data?

    But no, instead they appear to think that driving more people away from the ecosystem is the way to go.

    Stupid.

    I feel like this shift is the beginning of a similar story arc to that of video streaming services and piracy.

    Much like social media consolidated bloggers and forum users from all over the web, making it easy to consume content, and beginning the decline of the open web, the emergence of Netflix drastically reduced piracy levels by consolidating previously difficult to obtain content and making it easy to access.

    But then corporate greed stepped in. Every other media company launched a Netflix competitor. The result? Costs to operate streaming companies went up, and margins became thinner as users fragmented across platforms and became increasingly irritated at being nickel and dimed in exchange for less and less choice. Pay more, get less.

    The result? Piracy is back, baby! Yeah!

    I hope that the same will happen with social media now that all of the big players are on tiered levels of pay-to-play, and this will result in people going back to controlling their own spaces online.

    That people will go back to having their own websites where you control the message and you call the shots.

    For those who didn’t grow up with it, it’s hard to imagine the massive communities that we had, and how everyone knew each other, back when all we had were blogs, email, and an RSS reader.

    That was the open web. That was the what made it great. Ownership of your content, ownership of your message, and ownership of your community.

    It takes a little more work to get started than just vomiting whatever you’re currently thinking into a text box, but, at the rates Meta is charging, it may actually be cheaper, and vastly more rewarding to break away and have your own space.

  • I’ve been toying with the notion of having WordPress act as the default authority for all of my social media posts, and thought it might be nice to roll my own version.

    The goal is simple. Post to a category called Social Posts, and have those updates appear on Threads, Bluesky and Mastodon as native social updates. Not as posts that link back to my blog.

    I tested sending the RSS feed for that category only to IFTTT and Zapier, and having those platforms post either directly or via Buffer, depending on their integrations.

    This wasn’t something I wanted to spend money on, so IFTTT’s free tier was instantly ruled out.

    Zapier was more promising, so I set about testing and realized that, even with their formatting options, there simply wasn’t enough information in the RSS feed to do what I wanted.

    Threads doesn’t use tags, but does use a “topic,” and there was no way to pass that. Bluesky and Mastodon use tags, but social media tags don’t align with the tags on my blog, e.g., #socialmedia/social media.

    Adding the additional information I wanted in each post to WordPress is actually rather simple using “custom fields” to hold additional metadata. These are easy enough to add manually, but I used the free version of the ACF (Advanced Custom Fields) plugin for ease of use and location rules, such as the fields only appearing when the “Social Posts” category is selected.

    I would need to pass four pieces of information to Zapier via the RSS feed:

    • Topic: Threads doesn’t use tags, but does have a topic field.
    • Tags: the tags I want appended to the post on Blusky and Mastodon.
    • Image URL: If there’s an image in the post, send the direct URL instead of having Zapier try to figure it out.
    • Alt Text: For accessibility on all platforms.

    I named my fields “social_topics”, “soical_tags”, “social_image_url” and “social_image_alt”.

    This is what it looks like in a browser:

    Then I wrote a little PHP code to drop in the functions.php file of my WordPress theme to write the contents of the custom fields as XML tags in the RSS output of just the “Social Posts” category.

    This is the second version of the code. Cleaned up and more extensible than my original version, which was a bunch of “if” statements for every field.

    You can extend or repurpose this code yourself simply by adding to or removing lines under $fields. Each line has the custom field name defined first, what it should be output as in the XML second, and finally making sure it’s properly escaped.

    /**
    * Add custom fields to the RSS feed for the 'social-posts' category only.
    */
    function fitz_add_custom_fields_to_rss() {
    if ( ! is_feed() || ! is_category( 'social-posts' ) ) {
    return;
    }
    $post_id = get_the_ID();
    $fields = [
    'social_topics' => [ 'tag' => 'social_topics', 'escape' => 'esc_xml' ],
    'social_tags' => [ 'tag' => 'social_tags', 'escape' => 'esc_xml' ],
    'social_image_url' => [ 'tag' => 'social_image_url', 'escape' => 'esc_url' ],
    'social_image_alt' => [ 'tag' => 'social_image_alt', 'escape' => 'esc_xml' ],
    ];
    foreach ( $fields as $field_name => $config ) {
    $value = get_field( $field_name, $post_id );
    if ( ! empty( $value ) ) {
    $escaped = $config['escape']( $value );
    echo "<{$config['tag']}>{$escaped}</{$config['tag']}>\n";
    }
    }
    }
    add_action( 'rss2_item', 'fitz_add_custom_fields_to_rss' );

    Normally, I would have created a child theme for my WordPress theme and added this code directly to the functions.php file. This way it would survive any updates made to the parent theme, but as I am on the WordPress Premiun plan, I do not have FTP or SFTP access and can’t create child themes.

    I could have just put the code at the bottom of the existing functions.php, but I would risk everything breaking whenever the theme is updated, so I used the Code Snippets plugin instead to add the code.

    Once that was complete, and I verified that the XML tags were appearing on the feed, I headed over to Zapier to build the “Zap”.

    Because we have added the metadata into the RSS feed it makes things so much easier in Zapier. I had previously tried using Zapiers filter function to extract the image URL from the post content, but it always returned it with additional junk. Now that it’s a tag on it’s own, it means we can skip all filtering functions and build a simple two-branch publishing logic.

    Once Zapier finds a new item on the RSS feed, it checks the content of that item to see if the “social_image_url” exists. If it doesn’t exist, it travels down one branch of posting rules, and if it does exist, it goes down the other.

    Setting the posting rules for each site is simple, and you can construct posts by adding various sections from the RSS feed into the appropriate fields.

    Once all of this has been tested, which I did by setting the output to Buffer to “draft”, all you have to do is decide your posting schedule or if you wan them to post immediately. You achieve that by setting the “Method” as “Add to Queue” or “Share Now” Or “Share Next” for each social network step.

    Once Buffer posts to the social networks, your post will appear as a native post, not a post that links back to your WordPress site.

    Here are some screenshots so you can see how it looks and works.

    The first is the post as it might appear on this site. Obviously this would be formatted differently to appear as a nice “social posts” category”.

    Then we have how the post appear in Buffer – with and without tags depending on the network. After that we have a Threads post, complete with “topic”, and a Bluesky post with the ALT text already populated.

    Finally we have an example of when the post is pushed all the way through to Bluesky. A native post with an image, tags, and not automatically linked to my WordPress site even though it originated there.

    And there you have it.

    Once setup, you can use your WordPress blog as the definitive repository for all of your social posts (not replies obviously) and you can post from anywhere as long as you have access to a browser.

    You could even take this further, and by defining other custom fields have even more granular control, including which platforms a post goes through, or even custom content per platform.

    Unfortunately you will have to be on a paid Zapier plan to do this. I found this out the hard way when I quickly burned through the “Two tasks per Zap” limit of the free tier, and paying nearly $28 a month for Zapier is not currently worth it when I could just post to my site and do a copy-paste to Buffer.

    I will be looking at other ways to do this, like seeing if I can edit what Jetpack posts, as it already has an interface for customizing what is sent to each network. Maybe I can have it strip out the Title and URL and replace the tags.

    Or maybe come up with some other solution altogether.

    Anyway, while I won’t be using this myself, it was a fun little project. I hope somebody gets some mileage out of it.

  • I’m all for exciting new social networks, but after spending a handful of minutes playing around with WordPress.com/Social, I simply don’t get it.

    If you’ve been thinking about starting your own small, private social network with friends or family, or you want a space to post thoughts freely, or to import your historical posts from Twitter, Mastodon, or Bluesky without handing your words over to someone else’s platform, this one’s for you.

    Ostensibly a theme with short-form updates, threaded replies and the kind of barebones functionality you expect from an early Twitter clone, it’s far, far less underneath.

    Posting is done via the usual dialogue box on the front end, or you can drop into the standard WordPress backend and bypass the 500-character limit. Which I did by posting 809 words of generated Lorem Ipsum.

    Being real here, as a theme, this is kind of cool – but if it’s supposed to be its own breakout network with its own signup page and importers from other social networks, then a lot more has to be done.

    It needs its own UI distinct from WordPress. I SHOULDN’T be able to drop into the WordPress backend and mess around. I should ONLY be able to post from the webpage, and I would hope eventually from an app. And how about a timeline of posts from other people without having to go to WordPress reader to see who I’m subscribed to?

    Yes, I get they are positioning this as a “timeline” for family and friends, but that makes the inability to post from a simple app, and the fact that they would have to signup or be invite like regular WordPress author (clunky AF) a bit much for easy adoption.

    Didn’t they do something similar with a theme called P2 before, which evolved into a shared workspace?

    It’s not like WordPress / Automattic have a shortage of skills, talent, resources or infrastructure to make this happen properly.

    They’re supposed to be converting all of Tumblr to WordPress, but maybe stepping into social ala Bluesky, Mastodon, and Threads is a better play?

    There’s potential here, and a “WordPress Social Network” would have a massive user base it could already draw on. Let me associate it with my existing WordPress site and have them live together.

    But, if this is a signal of intent to encroach on the social playing field, then this is a misstep – launched too early and too incomplete.

  • Shopify has a strong developer ecosystem, but it isn’t an excuse for a lack of basic functionality.

    I get that Shopify attempts to be the one-stop shop for well, online shops, by providing the storefront, payment processing, blogging, newsletter, and pretty much most aspects of your marketing.

    It’s a big ask to cover all of that from one platform, but as I’ve been working with clients who use the platform for their storefronts, I’ve been shocked by how much basic functionality is missing.

    A very simple example is social share buttons for product pages. There simply isn’t an option to add it to a product template without coding your own (which is beyond the scope of most small business owners) or using a plugin that you have to pay a monthly subscription for.

    Yes, it’s only $5 a month, but that’s 5 bucks on top of the $49 CAD ($168 if you have a POS), and processing fee of 2.8% – 3.5% plus 30 cents per sale. And that’s just the most basic plan.

    Now, let’s say you need to figure out local delivery. Again, there are apps for that, and you can pay anywhere from $15 to literally hundreds a month, but nothing from Shopify. As a small business owner, you’re installing and testing multiple apps, or trying to roll your own solution by setting up radii or zip codes around multiple locations.

    Zip codes may be great for calculating deliveries in a city, but try that in rural areas.

    No small business owner has the time to figure it out, and most, myself included, wouldn’t easily wrap their heads around doing it.

    It doesn’t stop there either. Many small businesses will end up paying for multiple apps, spending hundreds of dollars a month in subscriptions, to make up for sometimes obvious omissions from Shopify’s platform.

    I’m not knocking the app store ecosystem, or the developers who make a living from it, but I am saying that Shopify may be a little too reliant on it to provide basic functionality.

    By comparison, WordPress.com, Automattic’s paid version of WordPress, recently opened up the WordPress plugin ecosystem to all paid tiers. A huge number of plugins reproduce functionality that already exists within WordPress – they just do it differently, and some do it well enough to get you to pay for a license.

    Getting back to social sharing buttons. There are at least two different ways to add social share buttons (without coding or creating your own), even on the basic WordPress.com platform, and literally hundreds of alternatives on the app store, many free, and many with paid tiers of their own.

    But none of them are as stingy as the ones available on Shopify. WordPress plugins with paid tiers usually give you a lot of functionality, in the hopes you’ll pay for the more advanced features.

    For example, a social share plugin on WordPress may give you 30 different platforms to share to, and 3 different designs. The paid tier will give you 10 designs, and some added functionality like floating buttons and click tracking.

    On Shopify, you’re lucky to have 3 buttons with a watermark. And they can get away with this because Shopify doesn’t offer the base functionality.

    And Shopify doesn’t offer the functionality because they are disincentivized by their app store. They make money from having someone else fix the problem.

    Publishing an app will cost you $19 and 15% revenue share after the first $1,000,000 gross app revenue. There is also a 2.9% process fee on all billing, which I am sure Shopify takes at least some small part of.

    It may not sound like much. How could one developer hit a million bucks in gross app revenue with a social share app? What you have to realize is that developer revenue is calculated on the cumulative revenue of all apps. All revenue from all associate developer accounts is treated as one.

    With so many gaps in the main Shopify platform, even a small development team with a handful of little apps that each have a thousand customers could break the million-dollar threshold in a year or two.

    And if you’re a big company like Microsoft / Google / Intuit (gross company revenue of $100,000,000 USD or more), selling an Office / Workplace or QuickBooks integration, then you are above the threshold and have to pay the 15% on all revenue.

    The financial incentive for developers to give the absolute bare minimum on free tiers (to encourage sales) and for Shopify to not add basic features that they can earn a percentage off of via developer revenue is there. It may not be their plan, but it’s there.

    That feels wrong to me because it’s not in the interest of the small business owner, operating on razor-thin margins to begin with, and relying on Shopify to provide what they need to operate their business.

    I understand that many apps fill functionality gaps that the platform simply couldn’t provide. I’m 100% in favour of devs filling those gaps and making the money they deserve for it.

    Shopify bills itself as the “world’s best commerce platform”, and it may well be. It has 29% market share, with WooCommerce, Wix and Squarespace being among the largest rivals by market share, if not a direct capability comparison. It must be doing something right.

    But there are gaps that shouldn’t need filling. Yes, developers can charge for better solutions, and should be encouraged to develop and sell them, but the basic functionality should be present first.

  • There’s a disgusting irony in Google announcement that search queries on their platform hit an “all time high” in the first quarter of 2026.

    Search had a strong quarter with AI experiences driving usage, queries at an all time high, and 19% revenue growth.

    Part of me wants to scream, “Of course it did, Sundar”!

    It wouldn’t be a stretch to say people are searching more because the AI returned results are, at best, shit of questionable quality and, at a minimum, cannot be trusted. Therefore, you’re getting more search queries because users have to work harder to get a reliable answer.

    The other part of me finds it deplorable that Google is profiting from this while giving so little back to the websites.

    Thanks to AI overviews clicks through to publishers’ websites (you know – the place where Google took the information from) are down 15% to 60%. This is devastating for publishers, small businesses and a free internet.

    It will be interesting to see what happens when the ouroboros of AI and AI search inevitably makes publishing anything online financially nonviable. What then? How will growth continue without new content to steal and absorb?

    Content created by AI is already polluting AI results and datasets. Shit in, shit out! Right?

  • Regardless of your feelings about the legality or ethics of piracy, SuperBox (which are sold at places like Best Buy and Walmart) and a whole range of other cheap Android TV boxes are designed to steal your financial information, use your home network to create botnets and may even be used for industrial espionage.

    Via Krebs on Security:

    Superbox media streaming devices for sale at retailers like BestBuy and Walmart may seem like a steal: They offer unlimited access to more than 2,200 pay-per-view and streaming services like Netflix, ESPN and Hulu, all for a one-time fee of around $400. But security experts warn these TV boxes require intrusive software that forces the user’s network to relay Internet traffic for others, traffic that is often tied to cybercrime activity such as advertising fraud and account takeovers.

    I know. They sell them at Walmart, and Best Buy (no, I’m not linking to them), and even The Verge did an article about Superbox, so how bad can they be?

    Bad. Real Bad.

    I just learned about how dangerous these devices are via The Darknet Diaries, where Jack Rhysider interviews one of the hackers, “D3ada55”, who brought much of this to light. They discuss the investigation underway, the FBI’s warning about the BADBOX 2.0 botnet, and the insidious way they are marketed.

    Also covered is how they scan your network, can steal your info / financials / crypto, knock devices off your network and impersonate them to find other devices, and chew up your bandwidth for botnets.

    These things come with TeamViewer installed and set up for remote access, have strangely long Bluetooth antennas for scanning nearby devices, and more.

    Listen to the full scope of what these machines actually do, from the mouth of one of the researchers who exposed these devices for what they are.

    And please, before you decide to sail the wide pirate sea, make sure you do your research on the devices you use, or better yet, roll your own solution.

  • UPDATE: A couple of days after I wrote this post Automattic announced that all WordPress.com paid plans have access to plugins, which alleviates some of the issues I mentioned.

    Something struck me when reading Matt Mullenweg’s post, “WordPress Everywhere”, as he discusses the new browser-based WordPress implementation: WordPress export sucks.

    We make it easy not just to get your data in, but take it out too. We build businesses that lower churn not by locking you in (Wix famously has no export) but by making it easy for you to leave. If you love somebody, set them free.

    WordPress exports an XML file called WordPress eXtended RSS or WXR, and while it is awesome for importing from one WordPress instance to another, it’s not exactly convenient for anything else.

    Sure, other platforms should (and some do) build importers to bring your WXR data into their platform. And if you’re self-hosted, where you can install plugins, there are 3rd party plugins to format the data just the way you want it. Although they may or may not work.

    I’m trying to get my WordPress data out as Markdown files (a format which is damn well universal in 2026, used for everything from other website builders to personal knowledge bases.

    Alas, I’m hosted with WordPress.com, so I’m stuck with WXR or nothing.

    I pay for a Premium plan, and I’ll be damned if I’m tripling my monthly hosting cost and switching to a Business plan just to install and test plugins from 3rd-party sources.

    I’m also not going to, nor should the average end user be expected to, set up a local install, export from WordPress.com, import to local, and then test the output of various plugins just to get something basic like a functional markdown file.

    Pre-empting your argument here – I have done this and the last time I tried, failed to find an actively maintained plugin that actually does the job. Blog2MD hasn’t been updated in 4 years. Ultimate Markdown might do it, but now you’ve got to set up a dev environment and pay $59 a year for a license.

    I’m not even talking about exporting all the weird little WordPress metafields. I’m thinking about the basics such as post content, attached images (don’t have to be formatted correctly), tags, categories and links.

    If I can’t do it, you’re damn sure someone less technical than me will simply give up.

    And no, I’m not asking the fine folks at Automattic to build exporters for every file format, or platform imaginable, but Markdown is, as I said earlier, an almost universal format and almost everything can work with or convert to / from a .md file.

    Right now, if you’re on anything below the Business plan with WordPress.com and you want to drop your data into an offline tool like Obsidian or Logsec, you’re SOL.

    This is not setting someone free.

    Anywho, I’ll keep looking and trying.

  • I’m so sick of these AI fluff pieces showing up on the sites of supposedly reputable news organizations that feel like little more than paid advertising.

    Take this piece from The Guardian as a prime example. Yet another evacuation of verbal diarrhea to declare that AI isn’t the problem: you are, we are, I am! We are simply too stupid to understand it!

    “Some people hand everything over to the machine and stop thinking. Others won’t touch it at all.

    But there’s a third group. They learn to work with AI critically, treat it like a bright, enthusiastic intern that needs to be managed and supported to do their best work.

    The difference? It’s rarely technical ability. It’s curiosity. A willingness to experiment, get things wrong, and figure out what AI is actually good at.”

    And if you just pay the author Tom Hewitson money, he’ll teach you how to use AI properly, you silly portozoa, because he’s the founder and chief AI officer of General Purpose, an AI training company.

    But fuck me, I thought the point of the AI revolution was to make life easier? The machines were supposed to think for me. I was supposed to be able to ask for something and get the result I wanted. I shouldn’t have to expend energy teaching, tweaking, supporting (??), or suffer the frustrations of a middle manager who’s been handed a nepobaby with no experience and zero desire to be there.

    But at least we can agree with Tom that AI needs to be managed to get anything valuable out of it, right?

    Kind of.

    According to the researchers at Harvard Business Review (and reported by the Independent), this managing and supporting of AI tools is creating mental fatigue, a type of mental “fog” or “brain fry” (their term, not mine) caused by excessive use and oversight of AI tools. Not to be confused with burnout, this AI-induced brain fry is a more acute, cognitive strain.

    To quote one participant:

    “What finally snapped me out of it was realising I was working harder to manage the tools than to actually solve the problem.”

    Not only are we expending more time managing the AI than actually solving the problem ourselves, but the number of mistakes being made by those who actively used AI was also significantly higher than those who did not.

    “Among participants using AI at work, those experiencing brain fry reported making mistakes significantly more often – scoring 11 per cent and 39 per cent higher on the minor and major error frequency measures, respectively – than those who did not,”

    But I’m sure none of the 1,488 Marketing, Operations, HR, IT, Software Development, Legal and other professionals would have this issue if they just dedicated time out of their busy schedules to pay money to Tom for training in the subtle art of taking personal responsibility for the shortcomings of a technology that promises the moon but dramatically underdelivers at every turn.

    Yup, that’s the answer.

  • I’ve seen a plethora of “5-minute experts” pontificating on “Data Centers In SPAAAAAAAACCE Space”, touting it as the solution to AI’s power and cooling needs.

    Notably, the idea has gained considerable credibility since it was vomited up by the World’s Richest Idiot, Elon Musk. Perhaps this was an attempt to shift the narrative away from the shitshow that is Tesla, his begging to party with Epstein, and that none of his promises with regards to technology, or Mars colonization, ever bear fruit.

    Clearly, his ketamine induced halucinations genius, or Groks, doesn’t extend to basic thermodynamics as my favourite science educator and Temu Thor explains in his video “Space Data Centers Are Dumb“.

    Even if we could overcome all of the issues raised by Kyle (cost, size, power generation and heat dissipation), one thing I don’t see many people talking about when it comes to the infeasibility of “Data Centers in SPAAAAAAAACE” (yes, it’s a Muppet Show reference) is perhaps the biggest one of all – data transfer speeds.

    The current world record for the fastest data connection between a satellite in orbit and a receiving station on the ground was achieved by the experimental TeraByte InfraRed Delivery (TBIRD) system, designed and developed by NASA and the Massachusetts Institute of Technology Lincoln Laboratory.

    TBIRD uses an infrared laser light to transmit data and downlinked 4.8 terabytes of error-free data in 4 minutes and 57 seconds on a 200-gigabit-per-second data downlink.

    That is under perfect experimental conditions.

    Transmissions from satellites to other satellites are also, well, piss poor.

    Researchers at ETH Zurich have accomplished a significant leap in high-speed data transmission, as high as 424Gbit/s across a 53-km turbulent free space optical link. As a Gigabyte is equal to 8 Gigabits, 424Gbit/s is equivalent to 53GB/s.

    You see, modern data centers with optical fibre rolling right up on in there can have speeds up to 400 Gb/s, we’re close on 800 with 1.6 Tb/s on the horizon.

    To put it bluntly, unless we run a massive Ethernet cable up to each and every one of these data centers, then there is no way we’ll be able to transfer data at the speeds required to make them useful.

    AI is data hungry, and as it’s forcibly incorporated into everything, and if you’ve drunk the Kool-Aid, that means they’re going to process the data for everything – driving your car, performing surgery, curing cancer, being an interactive sexbot for incels, they will do it ALL, baby!

    If this comes to pass, then we will require even faster speeds than 1.6 Tb/s to and from the data center. We can’t rely on the theoretical and considerably slower speeds that only work under perfect weather conditions.

    I hate to bring up Elon again, but if Starlink has taught me anything, it’s that your sexbot will lose connection every time it rains. But hey, at least the dish will get wet…