CTO at https://xitter.cf/t.co/Z3EHfBZENz and transient fad enthusiast

Dublin
Joined December 2008
To be chipped from the opposition half once, Mr. Worthing, may be regarded as a misfortune; to be chipped from the opposition half twice looks like carelessness.
Blimey!! West Ham youngster Preston Fearon has scored two goals from inside his own half v Burnley U21. One with each foot too!
62
Think of Stripe's shared payment token as a gift voucher on your credit card with a $10 cap and a two-day expiry, locked to one merchant. A data broker trying to charge $500 gets rejected. #Stripe #AI #PHP
🤖 Made with AI
1
1
51
Bohs fans: it's the last season in Dalymount. We want a dramatic title race, settled by a late goal, in the last game there. Monkey's paw:
1
446
You don't need to run AI in your application to sell to AI agents. I joined @scottkeckwarren on @phparch's Community Corner to talk about what building for agentic commerce actually involves, and whether we can trust agents with our cards! Full interview: youtube.com/watch?v=jcH8pZPs…
1
5
309
HTTP 402 took decades to find its moment, being a reserved code since 1997. But once your API can take payments, other questions appear. Such as, should someone pay for a 404? Our football-data experiment made us confront that one. The answer depends on what you're selling!
1
1
21
The future is here, just not evenly distributed yet. Waiting for live agentic payments to reach your region? You can learn a lot by building in a test environment today. We discuss the payment flow, spending controls and lessons from our own experiments. youtube.com/watch?v=jcH8pZPs…
7
HTTP 402 "Payment Required" spent 20+ years mostly unused, or sent only by people mistyping 403s in their apps. Now it's how AI agents pay for things. I sat down with Ben Smith at @stripe to talk #MPP , agentic commerce, and what developers need to know: youtu.be/Nv-dRPwwVxo?si=JMto…
1
1
57
We got into: * Why we built a deliberately useless football API to learn MPP * Shared payment tokens: give your agent "$2, this shop only", not your credit card * How exactly agents can discover paid APIs * Agents buying their own compute, no sign-ups needed! Have a watch!
2
32
"An AI agent used my site" up to now has meant a screenshot, find the button, click, pray the DOM didn't move. It's brittle, and it burns a staggering number of tokens. WebMCP flips it: your site hands the agent tools to call directly. I tested it - ~27× fewer tokens used. 🧵
2
6
239
While WebMCP is new, it's certainly not a toy: Stripe recently brought WebMCP to their hosted checkout. The old browser-driving way cost ~1.8M tokens per purchase, 42% lower with WebMCP. I tried it on one of my own sites - average of ~27× fewer tokens, up to 82×, ~1/22 the cost.
1
1
61
It being new does mean agents are still catching up to the spec, so they need prodding to find the tools today (Codex took more than a few reminders, see the screenshot below!) What WebMCP is, the real numbers, how to switch it on, and the rough edges: conroyp.com/articles/making-…
1
44
Paul Conroy retweeted
I wanted to stop controllers calling external services, however deep in the call graph. So I built a PHPStan extension: mark external calls as 'slow', forbid 'slow' in controllers, and let it flag violations. Probably has many other uses too. github.com/DaveLiddament/php…
3
6
26
1,200
Paul Conroy retweeted
Lerd is a free, open-source local PHP development environment for Linux and macOS, think Laravel Herd, built for people who also run Linux. It runs nginx, PHP-FPM, your databases and services as rootless Podman containers, managed by systemd on Linux. There is no Docker daemon, nothing runs as root, and nothing is installed into your system PHP or your package manager's paths, so uninstalling leaves a clean machine. You get .test domains with trusted HTTPS, every PHP version side by side, a web dashboard, a terminal UI, a CLI and an MCP server for your AI assistant. #PHP #Laravel
8
30
4
158
10,066
When you've got bots taking your data, technical blocks are an option, but response poisoning can be far more effective retaliation. If the poisoned data looks legit, it's even harder for your adversary to spot & deal with. An old story where we did this: conroyp.com/articles/project…
Looks like Google may have switched from blocking scrapers to instead serving poisoned responses. Very interesting strategic move IMO. Far more damaging, and much more difficult to counter than getting blocked. Have to be honest - smart change.
1
2
168
Installing the full AWS SDK for #PHP just to perform a few S3 operations adds quite a lot of unnecessary weight. In serverless deployments and CI pipelines, that means more to package, upload, unpack and process, and can lead to less room within platform limits.
1
2
97
The AWS SDK includes a Composer hook that removes services your application doesn’t use. In a simple test for an app using only S3 and SQS, it reduced vendor/aws from around 68MB to just over 5MB, without requiring any changes to the application code.
1
1
40
Composer still downloads the full SDK before removing unused services. The saving is in the resulting deployment artefact. Still, a useful bit of housekeeping for keeping deployments lean, and configuring the hook is a very simple, composer-only change: conroyp.com/articles/reduce-…
28
Back to Vilnius for @BuildStuffConf this December! Always a highlight, and this year marks its 15th birthday. Also looking forward to seeing Dublin from the other side of the video portal again 🇮🇪🤝🇱🇹 #BuildStuff15 #buildstuffconf #AgeOfAgency
3
4
204
My talk is "Delete Your Dependencies: What the Browser Can Do Now". As web devs, we carry around plenty of assumptions about what browsers can and can't do. Some are still true, but many are not! The web platform has moved on, but our habits have't always followed.
1
1
24
We'll get hands-on w/built-in UI, local file access, screen capture, and physical devices run via the web. Real examples, current browser support, as well as the rough edges. Time to update our context windows! 📅 December 2-4 🎟 20% off: 2026SPEAKER_20 buildstuff.events
1
27