Speeding up the Spatie package installation workflow 🐟

spatie/one-package-to-rule-them-all is probably the biggest package we've ever built at Spatie

Today we're introducing a package that's a real gamechanger. This one will probably speed your current workflow by 200%. Let's take a look at it!

spatie/one-package-to-rule-them-all is probably the biggest package we've ever built at Spatie. That's because it includes every package built at Spatie to date.

The coffee breaks required when composer was installing new dependencies are gone

Over are the days, you had to add a Spatie package to composer manually. Now, you include spatie/one-package-to-rule-them-all in your project, and you have all the Spatie packages available to you. It's not possible anymore to make a mistake between `installing` and `requiring` a composer package. The coffee breaks required when composer was installing new dependencies are gone, productivity will rise again.

How does it work?

The most crucial file within the package is the composer.json. I think we really did something groundbreaking here. Usually, we're thinking hours about the required dependencies a package needs to find the most minimal set of dependencies. This time we decided to take a different approach. Why add only a few dependencies if we could add every Spatie package available?

Though the idea is simple, the execution was absolute hell. Some of our older packages require PHP 7 or even PHP 5.6 ewww. We wanted to make this package a first-class PHP 8 citizen, but that would mean we couldn't include the older packages with unsupported PHP versions.

Luckily after a few long coffee breaks with the whole team, we've found the solution. Instead of requiring these older packages, we can simply suggest them to you if you want to install them.

I think this package is going to change the Laravel landscape forever. Try it out by once and for all installing the package:

composer require spatie/one-package-to-rule-them-all

And let us know what you think!

PS: do not forget to run the php artisan package:inspire command