In this streaming session, you can see me build up the package from scratch. You can find the code seen in the stream in the spatie/laravel-remote repo on GitHub. If you want to learn how to build PHP and Laravel packages, consider purchasing our Laravel Package Training video course.
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.
"As a Laravel developer, this is the one newsletter I most look forward to. Freek has a talent for distilling packages or techniques down to something immediately useful - one tip can save you hours and even weeks. It's concise and practical and highly relevant."
At Spatie, each one of our team members loves music. Scattered across our office are a couple of HomePods. Everyone in our team is free to stream his favourite music for others to hear (of course at an acceptable volume so everyone can still work).
This is a great way to discover music. In my mind, any automated algorithm that picks music for you is trumped what your friends and peers suggest to you.
Because of the pandemic, this way of sharing music with each other was lost. That's why our team will from now on create monthly playlists. The process is easy: every month we will choose a theme for the playlist and each team member picks two or three tracks.
The first theme is "Late Night Something" (it's not "late night coding" because not everyone on our team codes.
Earlier this year, we released Ray, a desktop app that allows you to debug faster. Instead of dumping values to the browser or console, Ray allows you to display debugging information beautifully in a dedicated window.
Since launch, Ray helps you debug local projects. Today, we're adding the most requested feature to Ray: the ability to connect to remote servers. All output of the ray() call, will be sent securely from your remote server to the local app via SSH.
Using this feature, you can quickly investigate problems on your production servers that you are unable to recreate locally.
In this post 8 image loading optimization techniques are outlined to minimize both the bandwidth used for loading images on the web and the CPU usage for image display.
In this blog post, I'd like to share how we moved from classic to modern Spark for billing and Jetstream for team management. You'll also learn various ways how to customize Spark to your liking.
Quick @laravelphp tip: The `MailMessage` class has a `when` method that's useful to conditionally add things to the mailable. Great for adding optional lines. 🤠 pic.twitter.com/TGGb5J6zk2
Ruby veteran Chris Oliver explained to me the basics of how to create a Ruby Gem (aka a Ruby package) for Ray. After I explained how Ray works internally, he coded up the foundation of the package. You'll find the code in this repo on GitHub.
Yesterday, Matt Stauffer on Twitter was very open on some mental health issues he is coping with. In response Kai shared this older blogpost which resonated with me.