|
Hi there!
Welcome to the 195th freek.dev newsletter!
We're witnessing an AI revolution unfold before our very eyes. Even though I don't know where it will take us, and there will be challenges for us as individuals and as a collective of developers, I'm optimistic about the opportunities ahead.
My buddy Mattias states that AI makes web development fun again and that it is no longer optional. I fully agree. These past few weeks I've built stuff in weeks that would have taken me months. I'm going to show some of it at the upcoming Laracon India.
In this newsletter, I've always linked to posts that sparked my interes. Mostly Laravel, PHP and webdev stuff. Now that I'm also diving into AI, you'll see some AI content show up too. I can imagine some of you are getting a real overload of that. That's why I'll keep including links to Laravel, JS and general programming content, because I believe that knowledge will stay important no matter how far AI takes us.
That being said, here are a couple of links I hope you'll enjoy as much as I did.
⭐ How to automatically generate a commit message using Claude
For years, my git history contains "wip" commit messages. I don't really often use git history myself, but my colleagues do. I now have a good solution;
⭐ SQL performance improvements: automatic detection & regression testing
The final part of Oh Dear's series on SQL performance. Mattias introduces phpunit-query-count-assertions, a package that catches N+1 queries, duplicate queries, and missing indexes in your test suite. Since implementing this at Oh Dear, we've eliminated 15% of our SELECT queries.
Sevalla is the all-in-one PaaS for your web projects (sponsored link)
Host and deploy your applications, databases, object storage, and static sites. Enjoy advanced deployment pipelines, a complete database studio, instant preview apps, and one-click templates. The pricing is simple: no hidden fees, no seat-based pricing, and you pay only for what you use.
⭐ Introducing Spatie Guidelines for Laravel Boost
A new small package in an attempt to let Claude generate even better code.
New in Parental v1.5.0: Becoming, Integers, and Eager-Loading
We released version v1.5.0 of Parental, our package that adds support for Single Table Inheritance (STI) in Laravel. This new version allows types to become other types and use numeric type columns instead of strings. It also adds new helper methods for eager-loading.
Running PHP 8.5 with Laravel Octane and FrankenPHP: The Missing Manual (Fix the 8.4 binary trap)
A quick but essential fix for anyone pushing the edges of the Laravel ecosystem. The default FrankenPHP binary provided by artisan octane:install is static and locked to PHP 8.4, which causes major headaches if your application relies on PHP 8.5 features or specific system extensions.
From dd() to Ray: A Debugging Workflow That Doesn't Break Your Flow
I fully agree (but I might not be totally objective here 🙂)
Livewire 4 Deep Dive: Components, Performance & New Directives
Livewire 4 introduces powerful new features that make building Laravel applications even better.
Behind the Terminal
Why I made my portfolio feel like a terminal, and how it works
Symfony 20 year!
This year, Symfony celebrates its 20 year anniversary. Let’s dive into some statistics of years of making web development history.
The rise of industrial software
The open question, then, is not whether industrial software will dominate, but what that dominance does to the surrounding ecosystem.
What gets lost when everything is effortless?
Not all friction is bad.
Party of One for Code Review
Some good thoughts on code reviews in the emerging age of AI.
Community links
In this section you'll find links submitted by others. Let me know if you did write or stumbled across a blog post, tutorial or video that might be interesting to appear in this section
Dealing with long-running processes the Symfony way (submitted by Mauro)
Tuning into brainradio.fm (submitted by Gustavo Karkow)
RegexParser: Static Analysis, Linter & Optimizer for PHP (submitted by Younes ENNAJI)
Tinkertown (submitted by Gustavo Karkow)
Stop Guessing: Debug Laravel Like You Actually Understand It (submitted by Trajche Nakov)
Using AI to Build a Laravel Feature with Junie in PhpStorm (submitted by Ash Allen)
Memoisation in Laravel Using the "once" Helper (submitted by Ash Allen)
How to Send Telegram Messages in Laravel (submitted by Ash Allen)
The State of Laravel Packages 2026 (submitted by Andrei-Daniel Petrica)
Old posts
Here are a couple of links from a while ago!
Stop Using Pseudo-Types
PHP version stats, January 2025 edition
Elegant Pipeline Cleanup with Laravel's finally Method
The email:dns rule might slow down your Laravel app
Using Laravel Tinker in Chrome DevTools
Building a micro dependency container, because why not?
PHP Fibers: How PHP is Finally Warming Up to Asynchronous Programming
How Geocodio keeps 300M addresses up to date
SQL NULLs are Weird!
Manually setting the intended URL for routes in Laravel
SQLite vs. MySQL: What are the differences between MySQL and SQLite?
Did you like this newsletter?
I take a lot of time curating the right links for you. You could do me a favor by either spreading the word and letting others know about my newsletter.
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
You are receiving this newsletter because you subscribed at freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|