I really want to switch to @t3dotcodes but I can't figure out the orchestration layer. My little homegrown ADE has a built in build, review, merge flow.
Loving the integrated browser! Since it's a full Chrome streamed from the launchd service I get the exact same view on my phone too. I can ask the agent to interact with a desktop website from my phone.
These are all features in the Codex app already… I don't care, this is fun.
Vibecoded the terminal app I've always wanted. github.com/markhuot/watchtow…
So excited to be using @pestphp's browser testing in Craft Pest now! Makes testing JS functionality so easy. And with factories creating the world to test we get pretty reliable screenshot regression testing too!
Every time I have to work in a stateful back-end I'm reminded how much "easier" stateless is. There's a whole class of memory bugs you just don't have to worry about when the request and its entire memory heap is thrown out at the end of the request.
Improving console testing in @craftcms Pest has been high on my list. Finally got around to it so you can now test any console action and assert: the exit code, stdout, and stderr all without cluttering up/messing with the Pest console log.
Not going to lie. I'm loving queue handling in `craft-pest` now. It's sort of an e2e test masquerading as a unit test but I don't care. The unit of work is saving an entry. I want to test that saving an entry calls the correct queue jobs.
Oooo, React Server Components in v19 are opening up to anyone thanks to the `use` hook. Can't wait to make 🌶️ use of this from PHP.
Is it crazy that I would love a Terraform as a Service. Something where I can interact with a UI to make all the changes I would normally make in Cloudflare or AWS UIs but those changes are persisted to .tf files and synced to some SCM for me?
Any @CraftCMS developers know of a good way to type an EntryQuery for custom fields?
I have CustomFieldBehavior typed on to craft\elements\Entry so I can $entry->customField without issue.
But now I want to Entry::find()->customField($value)->one()











