|
Hi there!
Welcome to the 202nd freek.dev newsletter!
I'm putting in a lot of work polishing the final details at There There, the AI powered helpdesk that I'm building. We're already using it at both Spatie and Oh Dear. A couple of close buddies are also already on the platform. I'll probably open beta access near the end of this month. Want to try it out? Apply for early access.
That being said, here are a couple of links I hope you'll enjoy as much as I did.
⭐ Searching multiple columns with one URL parameter in laravel-query-builder
We just released v7.3.0 of laravel-query-builder, which adds a new way to group multiple filters under a single URL parameter.
Our hackathon project: Live at Spatie
At our latest hackathon, we built Live at Spatie, a Laravel and React wrapper around Owntone that lets the whole team queue music, see what's playing, and control the office speakers. The nicest touch is the Slack bot: thanks to an MCP server powered by laravel/mcp and OpenClaw, you can ask it to queue music right from Slack.
Oh Dear now has an nice MPC server to easily connect your AI to a kick-ass monitoring service (sponsored link)
Over the years, my buddy Mattias and I have built Oh Dear, the monitoring service we use to monitor all our other apps and sites. It's been around for ten years now, which is an eternity on the internet. We've recently added a MCP server with OAuth, so you can easily connect any AI to our Oh Dear.
Utilizing Claude Skills in client projects
In this post, Dries shows how they use Claude Skills to automate repetitive work in client projects, like generating Saloon requests, DTOs, and Livewire pages. It is a practical look at where these workflows save a lot of time, and where careful review still matters.
Integration testing our Laravel package with a real server and queue
The Flare team explains how they built end-to-end integration tests for their Laravel package using a real Testbench workbench app, HTTP server, and queue worker. The post also shows how they swapped the sender to write payloads to disk, then built helpers to assert traces, errors, and async job behavior.
The latest and greatest in postcardware at Spatie
Nick and Dries share how they built Kaartje, a digital postcard wall with a spinning 3D globe that places postcards near the sender's city. It's a fun behind-the-scenes look at the stack, the role AI played during the hackathon, and the performance work needed to render hundreds of postcards smoothly.
Flood Fill vs the Magic Circle
Sebastian reflects on Robin Sloan's distinction between software's flood fill and the magic circle of the physical world. It's a sharp piece on where AI coding feels limitless, and where paper, printers, post offices, and other real-world constraints still break the illusion of full automation.
How I write feature specs
Sebastian shares a practical three-step workflow for writing feature specs, from gathering notes with tools like Granola to using a thinking model to surface contradictions and scope. He then switches back to hands-on editing to shape the final spec and uses Spiral for a final pass without letting AI take over the writing.
How I manage my todo list
Peter Suhm shares a simple Todoist setup that separates tasks due on a specific day from tasks that just need to happen this week. The heart of the system is a single custom filter that combines today, overdue, and @this-week items into one view.
Reusing your Laravel MCP tools in the Laravel AI SDK
Learn how to reuse your Laravel MCP tools in the Laravel AI SDK using a simple proxy approach, helping you avoid code duplication and making it easier to build AI agents integrated into your Laravel applications.
Event sourcing with a little help from AI
A Claude Code skill that helps you design and generate event-sourced domain code for Laravel using spatie/laravel-event-sourcing
Splitting Laravel Boost guidelines across multiple files
Laravel Boost only reads a single core.blade.php per package, so extra sibling files get silently dropped. Here is the minimal pattern for splitting your guidelines into organized partials using a Blade view namespace.
On pricing
Seth Godin shares a compact set of pricing truths about value, story, and perception. It is especially good on why the right answer to "that's too expensive" is often a better story, not a lower price.
Using the ADR (Action/Domain/Responder) Pattern in Laravel
Learn what the ADR (Action/Domain/Responder) pattern is and how to apply it in Laravel with a simple, practical example.
Flaky Test Retries in Pest v4.5.0
Pest v4.5.0 adds first-class support for flaky tests with retries and a dedicated CLI filter. The release also brings a useful casing assertion for catching namespace and file path mismatches, plus a coverage option that hides uncovered files.
Idempotency: What, Why and How
A deep dive into idempotency, from the theory behind safe retries to a practical Laravel implementation using the Laravel Idempotency package.
RBAC in Laravel: A Practical Deep Dive
A deep dive into Role-Based Access Control, from the theory behind roles and permissions to a practical, team-aware Laravel implementation without external packages.
Community links
In this section you'll find links submitted by others. Let me know if you wrote or stumbled across a blog post, tutorial or video that might be interesting to appear in this section.
Authenticate any Eloquent model in your Laravel API (submitted by Zacharias Creutznacher)
Old posts
Here are a couple of links from a while ago!
A package to handle passkeys in Laravel
Impostor Syndrome – Maybe I’m Not Good Enough?
Real-world uses of TypeScript’s utility types
Five levels of handling images in Laravel
What nobody tells developers about documentation
Livewire and Inertia: how we love and use both at Spatie
PHP Benchmarks: 8.4 performance is steady compared to 8.3 and 8.2
Simplifying work with custom stubs in Laravel
Introducing PHP Operators
Enjoy this newsletter? Help it grow!
If you found this edition useful, here are two quick ways to support the newsletter:
👉 Write a short recommendation. Approved recommendations appear on the newsletter page for others to see.
👉 Forward this email to a colleague or friend who might be interested.
Alternatively, you could consider picking up one of the paid products my team and I have worked on:
If you have any questions, remarks or thoughts about this newsletter, simply hit reply!
Thank you so much for reading!
Freek
P.S. Know someone who'd enjoy this newsletter? Send them here to subscribe.
You are receiving this newsletter because you subscribed at freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|