Tidbits from Brian - Issue #55
My thoughts on EmDash, Cloudflare's "successor" to WordPress? 🤔
On April 1st, Cloudflare launched EmDash (not an April Fool’s joke). They deemed this the successor to WordPress. I wanted to share my thoughts, as it's definitely an interesting project. I’m a huge fan of Cloudflare products and use their services daily.
What is EmDash? It’s a TypeScript CMS based on Astro that runs on Cloudflare Workers. The main difference is that plugins run in isolated sandboxes with only the permissions they declare. This has security advantages over WordPress plugins that have unrestricted access to your database and filesystem. 🔒
Also, from a performance perspective, it’s quite different, as it’s technically serverless. Cloudflare Workers spin up on each request and scale to zero when idle. It only bills for CPU time (time spent doing actual work). Most small sites will probably cost around $5/month.
You can try out the admin interface in the EmDash Playground. Notice anything familiar looking? 😅
While it sounds amazing, I think their enthusiasm is a little over the top in terms of it taking over WordPress. I actually agree with many of the counterarguments that Syed (thread) and Chris shared (post).
I work with thousands of WordPress clients every year. If someone stops using our product, I always ask them why. Only around 5% of them are “I’m moving away from WordPress.” The most common response these days is actually “I’m closing my business.” I just don’t see a lot of folks leaving WordPress.
Cloudflare mentioned in their post that 96% of security issues for WordPress sites originate in plugins. I don’t disagree with that, but I think they forget one of the reasons WordPress has been so successful is due to the fact that there are thousands of plugins and themes you can use to do whatever you want.
I also agree with Syed that Cloudflare itself isn’t perfect. In fact, I’ve dealt with more Cloudflare issues this past year than WordPress security issues. And we all know that when Cloudflare goes down, it takes half the internet with it.
Everyone I see using Astro, talking about EmDash, etc., is a developer. I just can’t see the typical WordPress user base adopting it (at least in its current state). You definitely need an understanding of things like Cloudflare Workers, R2 storage, Astro, Git, TypeScript, etc. With AI, learning is easier than before, but there is still a technical barrier. 📚 In the WordPress space, there is a pretty big gap between developers and what I call “WordPress implementors.”
EmDash isn’t really an open-source play. Cloudflare wants more D1, R2, and Workers usage. It’s really a platform play to get you in their ecosystem. This isn’t surprising; most companies take this approach.
Do I see EmDash as a threat to WordPress? Not really. But it’s always good to have more options and competition. It helps fuel creativity. I just think that EmDash, at the moment, is probably only targeting a small subset of folks. But I can only speak from my perspective and the discussions I have with clients.
Updates ✍️
We pushed out two updates for our Perfmatters WordPress plugin. Here are a few of the changes:
Added support to automatically optimize and lazy load Elementor Atomic YouTube elements and legacy video widgets when Perfmatters iframe lazy loading is turned on. YouTube preview thumbnails are also supported, as well as Elementor image overlays if set for the video. ⚡
Added request-level caching to excluded and forced lazy loading attribute arrays to prevent unnecessary calls.
Added multiple stripos and str_contains (PHP 8) checks in lazy loading image and iframe functions to prevent expensive regex scans if tags don’t exist. 🚀
Added new should_skip_request method in core LazyLoad class with request-level caching to prevent duplicate checks for WooCommerce pages and post-specific meta options.
Added support to various General class functions to respect ?perfmattersoff. This makes troubleshooting with the query string more accurate.
Added filters back to turn off WordPress’ lazy loading and auto-sizing styles when Perfmatters lazy loading is turned on.
Added built-in JS and CSS exclusions for WooCommerce’s dynamically added woocommerce-js body class.
Refactored LazyLoad class into multiple subclasses for better maintainability. 📂
Removed duplicate list normalization step before replacement across LazyLoad classes to reduce loop overhead.
Renamed previous Images class to ImageDimensions to make room for new Images lazy loading subclass.
Fixed an issue where certain lazy loaded tags were getting replaced globally in the document instead of only at the specific tag match instance.
Made some adjustments to our code snippets error handler initialization logic to avoid unnecessary handling if no relevant code snippets are active.
Made additional plugin UI styles adjustments in preparation for WordPress 7. 🎨
Updated our exception_handler method with more specific error logging when our handler is dealing with an error outside of our code snippets.
Updated Disable RSS Feeds tooltip text to reflect the recent header changes in the previous update.
Fixed an error that would occur when UTF-8 stylesheets with specific multibyte characters were parsed for used CSS. 🔣
Fixed multiple incorrect form label IDs that showed up when creating a new code snippet.
Fixed an issue with Disable Self Pingbacks functionality that was introduced after the functions.php refactor.
Fixed an issue where a JS or CSS file preloaded dynamically by handle would not serve the minified version of the file in certain cases. 🗜️
Fixed an issue where the inline stylesheet fallback was not always converting relative URLs correctly if certain characters were present in the string.
We’re also excited that we finally acquired the perfmatters.com domain (after a decade of trying). 🎉 We’ll continue using perfmatters.io for the time being. But things may change down the road. A redirect is now in place. ⤴️
Geopolitics could cause .io domains to disappear. 😨 The treaty is signed, but not yet in force; the ISO hasn’t moved on the “IO” code. This might all work out fine; otherwise, there would be a 5-year phase-out period. For us, better safe than sorry. We already had the .dev domain as a backup.
Interesting things 🔎
Misc.
Introducing Tolaria, a free and open source macOS app for managing markdown knowledge bases. This looks interesting.
Chrome finally got vertical tabs! I was excited to try this again, but after two full days, I went back to horizontal tabs. I work primarily on a laptop. I think if I were on a bigger monitor, it might make more sense. Or I just can’t break my habits. 😅
Love this TuneLink app from Tom. I’m regularly sharing music with friends and family, and not everyone uses the same platform. Saves searching and clicks.
New Waymo partnership could help Phoenix fix potholes faster. If they are already on the roads anyway, this makes a lot of sense. Could see this gaining traction pretty fast.
NASA published its moon base user guide (source). 🌓 Hard not to nerd out a little over this.
Give a Link → Get a Feed. Add any public account from social media to ByeDoom and quickly get a feed that you can add to your favorite RSS reader.
WordPress
WordPress 7.0 has a new release date of May 20th! Mark your calendars. 🗓️
Someone bought 30 WordPress plugins and planted a backdoor in all of them. Check out everything Austin uncovered. 80 WPFactory plugins were also temporarily closed on WordPress.org.
Speaking of Austin, have you tried his Cove product? It’s a tiny CLI that spins up local sites in seconds — automatic HTTPS, one-click admin login, zero Docker. Pretty cool!
Kyle published his annual State of the WordPress Agency survey. A few things I found interesting:
Agencies with zero recurring revenue are unprofitable nearly 60% of the time, but once recurring hits just 25% of revenue, that drops below 10%. The cliff is steep, and the threshold is surprisingly low.
Agencies offering accessibility services are twice as likely to hit $200k+ (26.6% vs. 11%), yet only 1 in 4 agencies offer it. That’s a pretty wide gap.
GeneratePress has launched a public feedback board along with a roadmap. If you’re a customer, you can log in and vote on what you would like to see next. 🗳️
WordPress manifesto - 15 years in, here’s what’s actually broken. A good read.
7 things Metorik learned from 65 million WooCommerce orders. A few that stood out:
The average WooCommerce order value is $105, but drops 18% on weekends.
WooCommerce refund rates have nearly halved, from 2.4% in 2023 to 1.4% in 2025.
Are WordPress plugin businesses in trouble? 😨 Justin shares his thoughts.
We aren’t perfect, unfortunately. We recently patched two security issues in Perfmatters. NerdPress did an excellent job highlighting how they protected their clients while working with us. I think this is an excellent example of how a plugin developer and agency (both of which prioritize quality support) can come together quickly to resolve problems.
Woo has confirmed four bugs in WooCommerce Subscriptions that silently disabled automatic payments for some stores. A few developers reported losing thousands in revenue. 📉
A heads up if you’re using the Wordfence Login Security plugin. They are closing it down in July. Would recommend the Two Factor plugin from the WordPress team as a possible replacement.
Marketing
Tim from Ahrefs has an interesting theory on Google’s loss of traffic share. It’s going to paid traffic, not AI. Google pushes AI Overviews, organic traffic drops... and businesses respond by giving Google more money for ads. 💰
How to create a DIY Tweetdeck (X Pro) replacement using Chrome tab groups and split view. I miss X Pro already!
Performance
Query Monitor 4 is out, and the improvements and new features are great! I’ve used this for years to debug performance on WordPress sites.
Performance of the plugin is better on large sites.
Zero external dependencies. No more jQuery, no reliance on wp globals, and no enqueuing of assets, just a self-contained 100 KB Preact-powered bundle.
New timeline panel provides a useful visual overview of the events that occur during a page load. Database queries, HTTP API requests, PHP errors, timings, logs, etc.
You can preload important stylesheets and fonts, but it won’t improve your page speed if third-party scripts block all rendering. Great tip from Matt!
AI crawlers are degrading CDN cache hit rates for human traffic, so Cloudflare is exploring AI-aware caching algorithms and separate cache tiers to serve both traffic types efficiently. ⚡
Native lazy loading will soon support video and audio tags. We’ve supported video tags in Perfmatters for years, but glad to see this becoming the norm. It means a faster web for everyone.
If you have a large-scale WordPress site at Pantheon, Elasticsearch is now in beta. Their next-generation CDN, powered by Cloudflare, is also in beta. 🌍
WooCommerce 10.7.0 has some great performance improvements!
Shared Dictionaries: compression that keeps up with the agentic web. This is something to watch. However, at the moment, it makes more sense for those rapidly deploying builds. Not as much for static resources that change less frequently (such as jQuery). However, we’re keeping an eye on this.
30 WordPress and WooCommerce performance tips at the config level. 🚀
AI
CEOs are obsessed with token maxxing. A hilarious video. 🤣
The Gemini Mac app is here! It’s 100% native Swift. I swapped my web app for this.
Cloudflare has a site, Is Your Site Agent-Ready? Aditya is working on a new WordPress plugin (in beta) called RankReady to address this.
Introducing ChatGPT Images 2.0. I played around with it, and it’s impressive. They also launched GPT‑5.5.
A Claude-powered coding agent reportedly deleted a company’s production database and backups in 9 seconds. 😱 What a read! And also a cautionary tale of why you need to be careful with permissions and security. Thankfully, Railway was able to restore things.
Pressable launched its MCP, which connects your Pressable account to AI tools to let you manage your sites through a conversation rather than the dashboard.
Cursor 3 is a new agent-focused workspace that lets you run multiple AI agents in parallel, locally or in the cloud.
Google released Gemma 4, a new family of open models that outperforms much larger models and is designed to run on-device hardware from phones to workstations.
Claude Opus 4.7 (with particular gains on the difficult tasks) is now generally available.
Claude launched Managed Agents, a suite of composable APIs for building and deploying cloud-hosted agents at scale.
If you're in the Scottsdale, AZ area, hit me up, and we can grab lunch! 🥗👋










