I built a self-hosted deploy tool that looks like tmux (and can be driven by an AI agent)
I deploy a handful of projects to a handful of my own servers. Not enough to justify Kubernetes, too many to keep doing ssh , git pull , docker comp…
Latest DevOps news from Tech News
I deploy a handful of projects to a handful of my own servers. Not enough to justify Kubernetes, too many to keep doing ssh , git pull , docker comp…
If your Laravel application suddenly throws "Stripe webhook signature verification failed" — the Stripe PHP SDK's SignatureVerificationException , u…
Originally published at hafiz.dev A recent r/laravel thread asked how teams share .env secrets with teammates and across environments . One of the m…
Every Laravel + SPA tutorial eventually hits the CORS error, and the usual fix is a dev-server trick: proxy the API through Vite, pretend the proble…
Here's my entire user-management controller. Five endpoints, and the longest method is four lines: class UserController extends Controller { public…
The most expensive Laravel production mistakes are the ones that work perfectly on your laptop. Locally you have one server, no cache files, no load…
Laravel AI SDK 1.2: Agent Skills, Cohere & Smarter AI Workflows Artificial intelligence is becoming a practical part of modern web development.…
I've made music as theverychap since 1994. It started on an Amiga A1200 with OctaMED, and the earliest stuff is likely what you'd expect from that:…
Disclosure: I'm the author of Warp Table, a commercial Filament plugin. The measurements below come from its public demo, which you can use to run t…
A customer gets charged twice. A report email goes out three times. The logs show App\Jobs\SyncInvoice has been attempted too many times even though…
PHP's default password hash only reads the first 72 bytes of your password. Last week, a plan to make it refuse anything longer split the list, beca…
A customer deploys their app at 14:00. Their webhook endpoint is down for four minutes while it happens. Your app sends them invoice.paid at 14:01,…
The big bang rewrite is the most confident decision an engineering team can make and one of the worst. The pitch is always reasonable. The current s…
Most Laravel APIs I review have the same shape. There is a controller, there is a FormRequest, and somewhere in a folder nobody has opened in four m…
Pick a password longer than 72 bytes for a PHP app on the default hash. PHP keeps the first 72 and throws the rest away, without a word. Then it let…
A job that sends an email takes half a second. A job that calls a generative model takes as long as the provider feels like, and sometimes a lot lon…
🚀 Laravel Preview Environments: Why Every Pull Request Could Have Its Own App Imagine opening a pull request and immediately getting a URL where any…
Originally published at hafiz.dev A recent r/laravel thread was titled "250 migrations in 3 years. What's yours at?" The standard answer is one comm…
A full-page cache stores the whole rendered response, so an entry is as large as the page it holds. Our Redis monitor showed response-cache entries…
The Problem: The App Dies There was an incident that caused our application to fail because our Redis cache went down. It was in the middle of movin…
Pterodactyl changed the game for self-hosted game server management. For years, it has been one of the most recognizable open-source panels for mana…
Password-based authentication is a legacy security model. Phishing, credential stuffing, and weak password management continue to be the primary att…
The Laravel AI SDK is Laravel's first-party package for building AI-powered application features without turning your codebase into a collection of…
Downloading a single photo from Facebook is easy enough. Downloading an entire album is a different story. If an album contains dozens of photos, sa…
Recently I came across another discussion about Laravel's memory usage and I can't say that it was exactly new to me, I've worked with Laravel and L…
What happens when your PHP application processes an untrusted PDF with an external binary? Most of us never think about it. A user uploads a file, a…
You locked HTTPS. You hardened login. Backups are on a calendar. Bots still hammer admin login and public forms all day. Credential stuffing does no…
Doppar 4.0 is out today. I want to start this post with something I haven't said out loud before. Doppar 3.0 was a good framework, but if you put it…
Open your Laravel app on a phone with two bars of signal and watch the network waterfall. On HTTP/1.1, the browser opens six TCP connections and que…
Why Every Laravel application starts out tidy. Then it grows, and one day app/Http/Controllers has eighty files in it, billing sits beside the blog,…