spatie

All my posts about spatie.

The making of the WWSD videos original

by Freek Van der Herten – 3 minute read

We published a fun series of videos as a promo for our Black Friday sales. These videos are inspired by the more recent apple announcement videos. Let's take a look behind the scenes to see how they were made! The WWSD videos We used WWSD to name our week of Black Friday discounts. It stands for…

Read more

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.

Introducing PHP 8.2: all new features and changes original

by Ruben Van Assche – 9 minute read

PHP 8.2 has been released. It is a minor release compared to 8.0 and 8.1. This can be partly attributed to the departure of Nikita Popov as one of the most significant contributors to the PHP language. The PHP language has a lot of maintainers and isn't built by one person, but Nikita was one of the most active of them. Features like union types, typed properties, named arguments, and arrow functions, to name a few, were all added by Nikita.

Read more

πŸš€ Mailcoach Cloud is now available: affordable email marketing for bloggers, Artisans, and entrepreneurs original

by Freek Van der Herten – 24 minute read

We're proud to announce that Mailcoach Cloud has been launched. Using Mailcoach, you can create beautiful email campaigns, set up drip campaigns (or any email automation), and send transactional emails.

Mailcoach works well, whether your email list has 5 or 500 000 subscribers (yes, Mailcoach has been used for lists of that size), or even more. And thanks to our sharp pricing, Mailcoach is the most affordable solution compared to our competitors in most scenarios.

Privacy-minded people will appreciate that open- and click tracking is off by default. And to people that require full GDPR compliance, we can proudly say that everything is hosted on EU servers owned by EU companies.

If you decide to subscribe, you can use this coupon code for one month free: ONEMONTHFREE. You can help us get the word out, by retweeting our launch tweet, or upvoting us on Product Hunt.

In this blog post, I'd like to share why we've built Mailcoach, how you can use it, and how we have built it.

Let's dig in!

Read more

A package to manage dynamic servers original

by Freek Van der Herten – 6 minute read

I'm proud to announce that our team has released a new package called laravel-dynamic-servers.

This package can help start and stop servers when you need them. The prime use case is to spin up extra working servers to help you process the workload on queues.

In this blog post, I'd like to introduce the package to you.

Read more

Creating installer commands for Laravel packages original

by Freek Van der Herten – 5 minute read

One of the joys of using packages in the Laravel ecosystem is how easy they are to install. Packages can be pulled in using Composer, and Laravel will automatically discover them.

In this post, you'll learn how to easily add an install command, making it even easier for package users to start using a package.

Read more

Introducing our new Laravel Options package original

by Ruben Van Assche – 2 minute read

When developing web applications, you probably encounter a lot of places where someone needs to select one or more options in a select or multi-select. These select boxes always need a list of options with labels and values.

In one of our projects, we had options being generated in lots of places. Sometimes these lists of options were the same, leading to a lot of code duplication. Even worse, in some cases, different formats were used to output the same options.

That's why we've created a new package called spatie/laravel-options. It will take a resource which can create options such as an enum, a list of models or even a plain array. And will always create a standardized array of options you can use within your frontend application.

Read more