Engineering,
taught
&
leadership,
practised.
I'm Steven — CTO at Digitonic, a PHP engineer since 2010 and a keen golfer with a terrible handicap. This is where I write it all down.
Latest from the journal
Tailwind v4 Logical Properties: Ship RTL Layouts Without a Single rtl: Override
The logical utilities have been in Tailwind all along. Here is the full verified set, the conversion order that doesn't break your layout halfway, and what is still physical in v4.
json_validate() vs try/catch json_decode(): Checking JSON Without Building It
json_validate() landed in PHP 8.3 and immediately got used in the one place it makes things worse. Here is what it is actually for.
Generate Speech from Text in Laravel with the AI SDK's Audio Class
The Laravel AI SDK turns text-to-speech into four lines and hands you a Storage path instead of a byte string. Here is the whole surface — voices, queueing, serving — plus the hash cache that stops you paying twice for the same sentence.