How to customize Jetstream and Laravel Spark original
by Freek Van der Herten – 17 minute read – Edit
Originals — posts I've written myself.
by Freek Van der Herten – 17 minute read – Edit
by Freek Van der Herten – 4 minute read – Edit
We've released a new package called spatie/laravel-prefixed-ids. In this post, I'd like to tell you all about it.
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.
"Freek’s newsletter is one of the best ways to stay updated with the Laravel and PHP ecosystem. It consistently highlights useful packages, tools, and ideas from the community, especially the amazing work coming from Spatie. As a Laravel developer building SaaS and web platforms, I find it extremely helpful to discover practical tools and insights that improve my development workflow."
by Freek Van der Herten – 9 minute read – Edit
When a site is down, Oh Dear sends a notification every hour. Since last year, our notifications can be snoozed for a fixed amount of time (5 minutes, 1 hour, 4 hours, one day).
In the evenings and weekends, our users might not want to receive repeated notifications. That's why we've added a nice human touch: all notifications can now be snoozed until the start of the next workday.
In this blog post, I'd like to share some of the code that powers this feature. We'll focus on how the start of the next workday is calculated.
by Freek Van der Herten – 3 minute read – Edit
Using our laravel-mail-preview package, you can quickly display mails that are sent by your Laravel application in your browser.
Today, we've released v5 of the package. In this blog post, I'd like to tell you all about it.
by Freek Van der Herten – 3 minute read – Edit
In almost every Laravel package, there is a ServiceProvider class responsible for registering bindings package resources such as config files, views, migrations, ...
While preparing a workshop that I gave on package development, I watched some videos of our own Laravel package training video course again. While watching the videos on using the service provider again, I had the idea to simplify how resources can be registered.
Meanwhile, I've fleshed out the idea and release it as a new package called laravel-package-tools. In this blog post, I'd like to introduce the package to you.
by Freek Van der Herten – 17 minute read – Edit
I'm proud to announce the immediate release of Ray, a desktop app that vastly improves your debugging experience. Ray is a dedicated window to send dumped values to. It has a lot of features that help you find and fix bugs faster.

Ray is available for macOS, Windows and Linux.
In this blog post, I'd like to share why and how we've built Ray. If you just want to know what Ray is, head to the Ray homepage.
by Freek Van der Herten – 1 minute read – Edit
These past few months, my team and I have worked on something that we think will be very usefull for PHP and Laravel devs.
At 14:30 CEST you can see me release it live in this stream on YouTube.
I've already shown our project to a couple of friends. This is what they said:
This is a really innovative and exciting project in a space that doesn't have many options.
— Jess Archer (@jessarchercodes) January 7, 2021
And with very promising Linux support in the pipeline too! 😍
We're definitely talking about a daily developer experience improvement! https://t.co/tDHgsn7NiG
For amateur developers only! https://t.co/srNgSM21ym
— Michael Dyrynda (@michaeldyrynda) January 6, 2021
Get ready for something awesome! https://t.co/1nr5VbO4nY
— James Brooks (@jbrooksuk) January 6, 2021
I already had the chance to take a look at it. It looks very promising. I think you will like it :) https://t.co/viITNC8QSt
— Stefan Bauer (@stefanbauerme) January 6, 2021
by Freek Van der Herten – 35 minute read – Edit
What a year this has been. I guess that in January, nobody suspected that we'd got ourselves a worldwide pandemic on our hands.
For many people, 2020 has been a pretty rough year. While the pandemic also impacted me, I think that the problems I have only exist in my head. Nobody around me had health or financial troubles, and I also don't have any complaints on those fronts. That makes me a very lucky man.
In this blog post, I'd like to reflect on the things I did in 2020.
by Freek Van der Herten – 1 minute read – Edit
by Freek Van der Herten – 2 minute read – Edit
Yesterday, GitHub launched discussions as a public beta. We've been using the feature for a couple months. In this blogpost, I'd like to share how we will use discussions for our repos.
by Freek Van der Herten – 3 minute read – Edit
Earlier this year, Travis CI announced a new pricing model that effectively ends the generous open-source offering they had for many years. It seems that, even though there were some plans to provide free resources for OSS projects in the future, all activity for OSS projects has stopped.
At our company, we create a lot of open-source projects and packages. Beginning 2020, we already moved most of our stuff to GitHub actions.
Sure, you can read the GitHub actions docs to start learning the possibilities, but in my experience, it might be better to see some examples of practical uses cases. Here are some interesting links that might help you get started with GitHub actions.
by Freek Van der Herten – 2 minute read – Edit
At the time of writing there is no version of Imagick compatible with PHP 8. Fortuntely, the version on the master brach of the Imagick repo seems to work. Here's how you can use it. Clone the repo somewhere on disk Follow the steps mentioned here to create the extension. cd <directory of cloned…
by Freek Van der Herten – 11 minute read – Edit
After tweeting out a screenshot, it often get questions around which editor, font or color scheme 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.
by Freek Van der Herten – 4 minute read – Edit
To get the backtrace in PHP, you can use the debug_backtrace function. By default, it can be hard to work with. Using our newly released spatie/backtrace package, this becomes much simpler.
Let's dive in!
by Freek Van der Herten – 14 minute read – Edit
I'm proud to announce that Media Library Pro is now available. Media Library Pro is an add-on package for our free Media Library base package. It contains a set of Blade, Vue and React components that make it easy to upload files to media library and to manage files inside of a media library collection.
In this blog post, I'd like to introduce Media Library Pro to you.
by Freek Van der Herten – 4 minute read – Edit
We have released a new package, called spatie/laravel-settings, that allows you to strongly type settings in a Laravel app. In this blog post, I'd like to introduce the package to you.
by Freek Van der Herten – 2 minute read – Edit
For a project, I needed to make sure that a particular piece of data actually came from a specific source. There are already many packages that allow you to do this, but most are not fun or easy to use. That's why we created a new package called spatie/crypto to do this.
by Freek Van der Herten – 1 minute read – Edit
Together with my colleague Brent, I've created Front Line PHP, a book and video course on building modern applications with PHP 8. You can purchase the book here.
The video course is entirely free. Head over to our website to see videos on all new major PHP 8 features.
by Freek Van der Herten – 3 minute read – Edit
I've just released a new major version of the spatie/once package. This version uses the WeakMap class which is introduced in PHP 8. In this short post I'd like explain why this change was made.
by Freek Van der Herten – 1 minute read – Edit
Here's the recording of a casual conversation between Christoph Rumpel and me we had last week.