Moving from PHPStorm to Zed for Laravel development
– x.com
Chris Mellor wrote a practical guide on setting up Zed as a Laravel IDE, covering PHP extensions, Pint formatting, Blade support, and how it compares to PHPStorm.
Read more [x.com]
– x.com
Chris Mellor wrote a practical guide on setting up Zed as a Laravel IDE, covering PHP extensions, Pint formatting, Blade support, and how it compares to PHPStorm.
Read more [x.com]
A thorough walkthrough of building a RAG system in Laravel using the new AI SDK, Postgres for vector storage, and Livewire 4 for a streaming chat UI. Covers everything from what RAG is and how semantic search works to embedding documents and querying them.
Read more [tighten.com]
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.
No spam. Unsubscribe anytime. You can also follow me on X.
"Always fresh, useful tips and articles. Carefully selected community content. My favorite newsletter, which I look forward to every time."
Daniel Coulbourne walks through building an MCP server with the official laravel/mcp package. He built one for his blog in about 20 minutes, then used it to write and publish the post you're reading.
Read more [thunk.dev]
A practical look at why you should populate essential data from migrations instead of seeders. Once your app is live, manually running seeders becomes a deployment risk. Migrations are deterministic, automatic, and roll back cleanly.
Read more [spatie.be]
Christoph Rumpel reflects on how AI tools are changing the way developers work. The core message: take the shortcuts that cut out mechanical work, but don't outsource the parts that make your work yours.
Read more [christoph-rumpel.com]
We just released v7 of spatie/laravel-query-builder, our package that makes it easy to build flexible API endpoints. If you're building an API with Laravel, you'll almost certainly need to let consumers filter results, sort them, include relationships and select specific fields. Writing that logic by hand for every endpoint gets repetitive fast, and it's easy to accidentally expose columns or relationships you didn't intend to.
Our query builder takes care of all of that. It reads query parameters from the URL, translates them into the right Eloquent queries, and makes sure only the things you've explicitly allowed can be queried.
// GET /users?filter[name]=John&include=posts&sort=-created_at $users = QueryBuilder::for(User::class) ->allowedFilters('name') ->allowedIncludes('posts') ->allowedSorts('created_at') ->get(); // select * from users where name = 'John' order by created_at desc
This major version requires PHP 8.3+ and Laravel 12 or higher, and brings a cleaner API along with some features we've been wanting to add for a while.
Let me walk you through how the package works and what's new.
– grith.ai
A deep dive into "Clinejection", where an attacker injected a prompt into a GitHub issue title, which an AI triage bot interpreted as an instruction. The resulting chain led to cache poisoning, credential theft, and a compromised npm package that silently installed a second AI agent on 4,000 developer machines.
Read more [grith.ai]
We gave all the settings screens in Flare a fresh coat of paint. Consistent layouts, better forms, improved navigation and plenty of small details that make the experience calmer and more focused.
Read more [flareapp.io]
We're proud to release v3 of laravel-site-search, a package that crawls and indexes your entire site. Think of it as your own private Google. Point it at a URL, let it crawl every page, and get full-text search results back.
Previous versions required Meilisearch as the search engine. That works well, but it means running a separate service.
With v3, your application's own database is all you need. It supports SQLite, MySQL, PostgreSQL, and MariaDB out of the box, and it's the new default.
Let me walk you through it.
Sometimes you need to access a private property or method on an object that isn't yours. Maybe you're writing a test and need to assert some internal state. Maybe you're building a package that needs to reach into another object's internals. Whatever the reason, PHP's visibility rules are standing in your way.
Our spatie/invade package provides a tiny invade function that lets you read, write, and call private members on any object.
You probably shouldn't reach for this package often. It's most useful in tests or when you're building a package that needs to integrate deeply with objects you don't control.
Let me walk you through how it works.
A handy overview of the Ray configuration options in Laravel. You can automatically send duplicate queries, slow queries, exceptions, and dump output straight to Ray without adding any ray() calls to your code.
Read more [myray.app]
A walkthrough of building a useful Claude Code status line that shows your current repo, git branch, staged/unstaged changes, and context window usage percentage. The context percentage is the most valuable part: it helps you know when to compact or start a fresh session before quality degrades.
Read more [www.aihero.dev]
Larry Garfield argues that the AI coding conversation focuses too much on individual productivity and ignores the broader societal costs.
Read more [www.garfieldtech.com]
Every page in Oh Dear now works on mobile. Not just slapped-on media queries, but reworked layouts: a floating action button for navigation, dedicated mobile card views for monitor lists, scrollable tables with fade hints, and bigger touch targets throughout. Over 160 Blade templates were touched.
Read more [ohdear.app]
– hbr.org
A Berkeley Haas study of 200 employees found that AI makes workers take on more, not less. The productivity gains are real, but exhausting.
Read more [hbr.org]
Brian Lovin explains how to turn caps lock into a Hyper key that simulates pressing all four modifier keys at once. Use it for instant app switching, Raycast quicklinks, and custom window layouts.
Read more [brianlovin.com]
In this Tideways video, Brent's blog post on writing faster PHP is put to the test with real profiling data.
Joel Clermont shares a simple trick to determine if a test is covering your application logic or just testing Laravel itself. If you can comment out a chunk of your code and the test still passes, it's probably not worth keeping.
Read more [masteringlaravel.io]
We just released v10 of laravel-backup, our package that creates backups of your Laravel app. The backup is a zip file containing all files in the directories you specify, along with a dump of your database. You can store it on any of the filesystems Laravel supports, and you can even back up to…
A simple scoring system for deciding what to build next. Score each idea on Strategic Heft, Income potential, and Perspiration (effort), then rank them to find your highest-ROI opportunities.
Read more [deployempathy.substack.com]