On November 23, 2025 at 17:48
Check out my updated /uses list with the latest gear and software changes from 2025: https://kaspars.net/uses
Check out my updated /uses list with the latest gear and software changes from 2025: https://kaspars.net/uses

The #FAIR plugin for WP doesn’t like iOS Safari. Probably an outdated regex on user agent?
Amazing how little PHP can do so much! https://serverless.industries/2025/07/06/antiframework.en.html
I also do 99% of prototyping in PHP.
Fun idea from @christian

Turns out HTTP Host headers can have a trailing dot (totally valid too) and nginx will happily forward it to php-fpm making $_SERVER['HTTP_HOST'] have a trailing dot which then fails all WP multisite domain lookups…
First time seeing this on a fresh nginx + php 8.4 setup.

How do you profile PHPStan runs for performance issues?
It appears to be spawning a child process even if maximumNumberOfProcesses is set 1 which makes the core logic invisible to XDebug profiler.


Trying out the new VS Code fork from Google.
Requires Google login to actually use it… not sure I like this direction.




Electric Penny Bicycle https://kaspars.net/blog/electric-penny

Feels like half the web is down now…
Cloudflare and other MITM proxies with TLS termination have access to your WP usernames and passwords, and every WooCommerce transaction (including customer billing and address data).

Version 3.0.0 of the Minit plugin for WordPress now defers the script bundle by default and uses this trick to support scripts with "after" logic (which require the parent to be loaded).
Learn more here: https://github.com/kasparsd/minit
Responded to @kasparsd:
OK, found it. It is coming from this plugin https://wordpress.org/plugins/replace-image/

Has anyone seen WP add ?_t=… to image URLs? Couldn't find anything in the codebase where this is happening.
This is causing WP to fail at generating the srcsets.
Improve the local development experience for your team and point *.local.yourproject.com to 127.0.0.1 using the public DNS.
Here is how to configure it: https://kaspars.net/blog/public-dns-local-development-url
Everyone on Twitter now…
The whole re-auth flow is completely broken. I'm using the correct key and it still goes into this infinite loop.
Has anyone created a /metrics REST API endpoint for WordPress that reports data about the WP instance — object cache reads/writes/memory (from memcache/redis/apcu), php-fpm stats, system load, disk space, etc.
Ideally, with Prometheus and OpenTelemetry output formats.


New on blog: Custom Email Address for Kids Google Account https://kaspars.net/blog/google-account-custom-email
Here is a tip — you don't need the defined( 'ABSPATH' ) checks in class files that don't run any code. PHP will simply do nothing when a class definition is loaded.
I've noticed that AI is prone to adding it because of how WP core uses outside of class files.
Cmd+Z for restoring recently closed tab is really nice. That key combo is muscle memory for global undo.
TIL: Zen browser and others use Cmd+Shift+T to do that.
“Knowing what matters for a specific thing is called being an expert.
Knowing what matters over the course of a human life is called being wise.”

Finally managed to document the fix for Dell flickering issue with macOS: https://kaspars.net/blog/fix-dell-monitor-flickering-mac