Tempest 3.0
Tempest 3.0 has been released with a new exception handler, PHP 8.5 as minimum requirement, improved CSRF protection using browser headers, database performance improvements, and closure-based validation rules.
Read more [tempestphp.com]
Tempest 3.0 has been released with a new exception handler, PHP 8.5 as minimum requirement, improved CSRF protection using browser headers, database performance improvements, and closure-based validation rules.
Read more [tempestphp.com]
PHP 8.0 introduced attributes, and they're a great way to add structured metadata to classes, methods, properties, constants, and parameters. The concept is solid, but the reflection API you need to actually read them is surprisingly verbose. What should be a simple one-liner ends up being multiple lines of boilerplate every time. And if you want to find all usages of an attribute across an entire class, you're looking at deeply nested loops.
We just released spatie/php-attribute-reader, a package that gives you a clean, static API for all of that. Let me walk you through what it can do.
Join 9,500+ smart developers
Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.
"Freek publishes a super resourceful and practical newsletter. A must for anyone in the Laravel space"
No spam. Unsubscribe anytime. You can also follow me on X.
A comprehensive guide to making your Laravel app work well with AI agents. Covers llms.txt, markdown responses, structured data, and coding guidelines.
Read more [hafiz.dev]
Geocodio shares practical advice on getting engineering teams to adopt AI tools like Claude Code, addressing the growing gap between eager adopters and skeptical engineers.
Read more [www.geocod.io]
The title is a tad hyperbolic, but this blogpost provides a nice overview of how the Laravel PDF package works under the hood.
Read more [jpcaparas.medium.com]
We just published a new package called Laravel OpenAPI CLI that turns any OpenAPI spec into dedicated Laravel artisan commands. Each endpoint gets its own command with typed options for path parameters, query parameters and request bodies.
Let me walk you through what the package can do.
Hafiz Riaz walks through building a document analyzer agent with the Laravel AI SDK. The tutorial covers structured output, streaming responses, and tool use, all in about 30 minutes.
Read more [hafiz.dev]
What if you could write your terminal prompt and shell commands with a language you're already familiar with?
We just published a new package called Laravel Markdown Response that lets your Laravel app serve markdown versions of your HTML pages. Your existing controllers and views stay exactly the same.
Let me walk you through what the package can do.
My Oh Dear co-founder Mattias Geniar was a guest on the WP Legends podcast. They talked about how we built Oh Dear over the past eight years, common misconceptions about monitoring, and how AI is changing developer workflows.
I only switched to Zed last week (you can see my full setup on my uses page), so I'm still learning the ropes. One thing I ran into is that its external formatter configuration is global. You configure one formatter command for PHP, and that's what gets used in every project you open.
The problem is that not all of my projects use the same formatter. Some use Pint, some use PHP-CS-Fixer directly. My Zed config originally pointed to ./vendor/bin/pint, which meant it silently did nothing in projects that don't have Pint installed.
Let me walk you through how I solved this.
Our laravel-responsecache package speeds up your app by caching entire responses on the server. When the same page is requested again, the cached response is served without hitting your controller at all.
We just released v8, a new major version with a powerful new feature: flexible caching. It uses a stale-while-revalidate strategy, so that every visitor gets a fast response, even when the cache is being refreshed.
Let me walk you through it.
Dan Hollick created a beautifully illustrated reference manual that explains how the technology behind software actually works.
Read more [www.makingsoftware.com]
After posting a screenshot, I often get questions about which editor, font or tools I'm using. Instead of replying to those questions individually I've decided to just write down the settings and apps that I'm using.
We just released laravel-screenshot, a new package to take screenshots of web pages in Laravel apps.
It uses a driver-based architecture, so you can choose between Browsershot (which requires you to install Chromium) and Cloudflare Browser Rendering (which can be used on environments like Laravel Cloud).
Let me walk you through the package.
Pete Koomen argues that most AI apps are "horseless carriages," bolting AI onto old paradigms instead of letting users shape the prompts that drive them. He makes the case that the best AI apps should be agent builders, not just agents.
Read more [koomen.dev]
– x.com - submitted by Aaron Francis
Aaron Francis shares how he used Claude to create an entire launch video for his new app, without using any traditional motion graphics software. No Remotion, no MCPs — just clever prompting and iteration.
Read more [x.com]
Laravel's built-in authorization is great when permissions are defined in code. With gates and policies, you can write logic like this:
// Defined in code, requires a deploy to change
Gate::define('edit-posts', function (User $user) {
return $user->is_admin;
});
But in some projects roles and permissions are dynamic: created by users, managed through an admin panel, or changed at runtime without deploying code. Our Laravel Permission package can help you dynamically create roles and permissions.
We just released v7 which doesn't bring any new features, but cleans up the internal code and modernizes it. Let me walk you through what the package can do.
Laravel Fuse is a circuit breaker package for Laravel queue jobs. When an external service like Stripe or Mailgun goes down, instead of letting thousands of jobs timeout (30s each), the circuit opens after a configurable failure threshold and jobs fail instantly. It supports three-state circuit breaking (closed/open/half-open), intelligent failure classification (429s and auth errors do not trip the circuit), peak hours config, and a built-in status page.
Read more [github.com]
Amit Merchant walks through practical use cases for the Laravel AI SDK: mining user data with Eloquent models as context, building a code review bot that comments on PRs, and creating adaptive quiz systems for EdTech apps. Nice examples of agents, structured output, and conversation memory beyond the typical chatbot demo.
Read more [www.amitmerchant.com]