freek.dev newsletter #192

Hi there!

Welcome to the 192nd freek.dev newsletter!

Here are a couple of links I hope you'll enjoy as much as I did.

⭐ SQL performance improvements: analysing & fixing the slow queries (part 2)
Mattias delves into optimizing SQL queries using indexes, focusing on MySQL 8.0. He explains how indexes work, how to analyze slow queries using MySQL’s EXPLAIN keyword, and the impact of different index configurations on query performance.

⭐ Ray v3 is coming
My colleague Dries is doing great work in creating a new major version of my favourite - I might be biased - debugging tool.

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.

⭐ Apply for the AI monitoring beta at Oh Dear Would you know if your checkout form stopped working overnight? Or if a recent deploy broke your login flow? Traditional monitoring can't catch these issues - it only tells you if your site is up, not if it actually works. Using the upcoming AI check on Oh Dear, you can can describe any check you want using natural language.

What’s New in PHP 8.5?
A good overview of everything coming in PHP 8.5.

Things I wish I knew when I started programming
Brent Roose has written an excellent book. This time on his programming journey and the lessons learned along the way. It's not too long, I personally read it in one sitting, and liked it very much.

The Downsides of Dynamic Method Calls in PHP
Dynamic method calls can be useful, but they also come with some risks that you should be aware of.

Http::batch with hooks in Laravel 12.32
Laravel 12.32 introduces Http::batch, a clean way to send concurrent HTTP requests with lifecycle hooks for progress, success, failure, and finalization.

Scaling Request Logging from Millions to Billions with ClickHouse, Kafka, and Vector
After Geocodio unsuccessfully attempted to optimize with ClickHouse alone, they implemented a solution using Kafka for durable storage and Vector for efficient data ingestion.

Convenient Content Security Policies with Spatie Laravel CSP 3 Presets
Shawn Hooper enjoys the new presets we recently added to our Laravel CSP package.

The State of PHP in 2025
The State of PHP 2025 survey by JetBrains examines how developers use, prefer, and rely on PHP, showing how this long-standing web language continues to modernize through new frameworks, improved tooling, and AI-assisted workflows.

Seven Real-World Examples of Using the Pipe Operator in PHP 8.5
I'm really looking forward to PHP 8.5's pipe operator. Here are a few nice use cases.

Deferred Queue Driver in Laravel 12.35
Laravel 12.35 introduces the deferred queue driver, allowing queued jobs to run right after the HTTP response is sent.

Building a procedurally generated game with PHP
A few experiment by Brent. His process involves using noise generation, specifically the xxHash algorithm, to create a cohesive world map with smooth transitions between land and water using linear interpolation (LERP)

A cartoonist's review of AI Art
Matthew Inman's take on AI Art. Some good points, and beautifully illustrated as always.

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

Laravel where LIKE queries, before & after Laravel 11/12 (submitted by Nabil Hassen)

Check If a String is Valid JSON in PHP (submitted by Ash Allen)

Build a realtime Multiplayer Game with Laravel, Livewire & Reverb (submitted by Bert De Swaef)

The match Expression in PHP (submitted by Ash Allen)

Read and load a CSV file into an array in PHP (submitted by Nabil Hassen)

the world's strictest laravel/php starter kit… (submitted by Nuno Maduro)

HTML is beautiful (submitted by Chris Rhymes)

New laravel-rclone package arrived (submitted by Tim Geisendörfer)

Failover Queue Driver in Laravel 12.34 (submitted by Nabil Hassen)

Laravel Smarter Tips (submitted by Liam Hammett)


Old posts

Here are a couple of links from a while ago!

Fake it till you make it: testing transactional emails with Mailcoach in Laravel

Property Hooks Are Coming To PHP 8.4


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:

  • All spatie products
  • Oh Dear
  • Mailcoach
  • Flare

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

Online version • Past editions • Unsubscribe