Personal / 3 min read
I still remember how this started. Facebook. Opera Mini. A Nokia E75. A tiny screen, a slow connection, and one small thing that changed everything: ".php" flashing past for a seco...
PHP / 2 min read
A spare-parts import receives the code " ax-204 ". The database expects "AX-204". This small example is a good place to understand the pipe operator before putting it into a much l...
{ }
PHP / 2 min read
A dashboard wants the most recent event in an array. The convenient last-value helper works, but "there was no event" and "the last event has a null payload" are different states....
{ }
Deployment / 2 min read
A deployment folder contains several backup archives, but nobody has tested whether the database and uploads can be restored together. File existence proves that an artifact was wr...
{ }
Deployment / 2 min read
A shared layout accidentally emits the homepage as the canonical URL for every article. The article's title and content are distinct, but its canonical signal points elsewhere. Gen...
{ }
Deployment / 2 min read
An admin form works locally and returns 500 after deployment with composer install --no-dev. The template may be calling a helper supplied only by a development dependency. A place...
{ }
Deployment / 2 min read
The website runs on PHP 8.4 while cron resolves php to an older binary. The same repository can then fail only in scheduled tasks with syntax errors or missing extensions. Web PHP...
{ }
Deployment / 2 min read
A blog image is present on disk, its URL is correct, and the browser still shows only alt text. A 403 response points to access being denied, which is different from a missing-file...
{ }
Laravel / 2 min read
A visitor submits a project inquiry and sees "Message sent." The application is configured with a log mailer, so the message was only written to a local log. The form's success mes...