In this section you can read posts I've written myself.
Triaging feedback on GitHub using issues and discussion
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.
Stay up to date with all things Laravel, PHP, and JavaScript.
You can follow me on these platforms:
On all these platforms, regularly share programming tips, and what I myself have learned in ongoing projects.
Every month I send out a newsletter containing lots of interesting stuff for the modern PHP developer.
Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.
Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.
Moving PHP and Laravel tests from Travis CI to GitHub Actions
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.
Building the Imagick PHP extension from master
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…
My current setup (end 2020 edition)
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.
A better way to work with a backtrace in PHP
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!
Media Library Pro makes uploading files to a Laravel app a breeze
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.
Store strongly typed settings in a Laravel app
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.
Encrypting and signing data using private/public keys in PHP
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.
Learn all new PHP 8 features by watching this free video course
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.
spatie/once v3 has been released, now uses a PHP 8 WeakMap
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.
Casual Conversation Call #2 with Christoph Rumpel
Here's the recording of a casual conversation between Christoph Rumpel and me we had last week.
The best PRs we got in October
At Spatie, we want to stimulate contributing to our open source stuff. That's why we said that we'd give away some of our paid products for free to authors of the best PRs we got in October. In a way, it's our own small version of Hacktoberfest.
In this blog post, I'd like to announce the winners.
The problems with traditional form uploads
When handling uploads, a traditional input type of file has some downsides. In this streaming session I did yesterday, I explain those problems and share how they can be fixed using the upcoming Media Library Pro.
Laravel Worldwide Meetup #4: GitHub Actions & Unconventional Autoloaders
Here's the recording of Laravel Worldwide Meetup #4. Ryan Chandler showed a cool GitHub Action workflow to test a Laravel app. Next, Liam Hammet demonstrated some unconvential things you can do with PHP autoloaders.
Exploring PHP 8 features
In preparation for creating the Front Line PHP video course I needed to make myself familiar with the features that PHP 8 brings to the table. In this stream you can see me trying out some of these features for the first time.
Adding a subscription form to the web views of Mailcoach
After sending a new edition of my newsletter, I usually tweet out a webview URL together with a URL where people can subscribe to the newsletter. A webview is a hard to guess URL that people who didn't subscribe can visit to read the content of the newsletter.
Introducing Laravel Backup Server
I'm proud to announce the release of our newest package Laravel Backup Server. This paid package can backup several servers at once. When a backup contains files also present in a previous backup, deduplication using hard links will be performed. Even though you will see full backups in the…
Selling digital products using Laravel part 10: Miscellaneous interesting tidbits + outro
We've already covered a lot of ground in this series. Let's finish by highlighting some miscellaneous interesting tidbits.
Selling digital products using Laravel part 9: Serving ads on GitHub
Our company has created a lot of open-source packages. At the moment of writing, we have over 200 packages, which have been downloaded nearly 100 million times. Because we think the package users might be interested in our paid offerings as well, we've put a small ad in the readme of each repo. In this blogpost I'll explain how we manage these ads using Laravel Nova and S3.