Hi there!

Welcome to the 143rd freek.dev newsletter! It's the final one for 2021.
I do hope you had a great year, and will enjoy some time celebrating past achievement and welcoming the new year with friends and family.

In this newsletter, you'll find my recap of 2021. I've been writing recaps for a couple
of years now. Much like photos, a recap gets more fun to read, the older it gets.
It's amazing how fast you forget past challenges and achievements.

I highly encourage you to write an honest recap as well with all good and bad things that might have
happened the past year. Should you decide to do this, feel free to send me a link, and
I'll mention it at the end of my recap.


Here are a couple of links of which I hope you'll enjoy that as much as I did.

A recap of 2021
Now that we are in the final days of 2021, let's take a look back at
that stuff my team and I did in 2021.

Send Spatie a Christmas card
Here's something fun my colleagues Alex and Willem have created.

Lean Admin - Laravel package for building custom admin panels (sponsored link)
Lean Admin is a TALLstack-based package for building admin panels using extremely expressive
code - yet still fully customizable and extensible. Join the waiting list to get a discount when
it launches in a few weeks.

A Laravel package to monitor the health of your application
I'm proud to announce that we've released a new package called Laravel Health.
As the name implies, this package can be used to monitor the health of your Laravel
application. It offers many checks out of the box, and an easy way to create custom checks.

How we improved Oh Dear in 2021
Here's a recap of everything we did in 2021 to make Oh Dear the best all-in-one monitoring service.

Better support for Livewire in Flare and Ignition
The default Laravel error page now has a dedicated Livewire tab.

A bash function to run tests for both PHPUnit and Pest
I wish I had created this function sooner.

Fixing the dreaded "'pcre2.h' file not found" error when installing imagick
I hope you won't need this.

Create a Solana dApp from scratch
Loris Leive wrote a very comprehensive series on how to get started developing for Solana

Grinding to $1,000,000 in revenue over 6 years
Here's the story behind JMac's efforts making Laravel Shift a success.

Laravel Pseudo-Daemons
Here's a cool technique by Aaron Francis where he uses artisan commands to create daemons.

Silently validating a Laravel request
In some cases, the Laravel validator gives out too many details. What if we want to use the power of the validator without giving anything in the response?

Heaps explained in PHP
Quick access to the highest or lowest value of a dataset.

12 must-see talks if you want to become a better Laravel developer
I usually don't link to this kind of lists, but this one is great. Every one of the videos mentioned is a gem.

What's new in Tailwind CSS v3.0
Another impressive, feature rich release by the Tailwind team. Here's a rundown of all the new features.

Filtering Carbon Period For Flexibility And Performance
Here's a nice way to go about filtering Carbon instances

20 years of Bram.us
Bram has been running his excellent blog for 20 years now. Bram.us was the blog that inspired me to start with a blog of my own.Highly recommend to check it every once in a while if you're into webdev (which I guess you are since you're reading this on freek.dev).



Community links

In this section you'll find links submitted by others.
Let me know if you did write or stumbled across a blog post, tutorial or video that might be interesting to appear in this section


Hiding Sensitive Arguments in PHP Stack Traces (submitted by Chris White)

New Laravel Relationship Method - latestOfMany - Problem and Solution (submitted by Ashish Dhamala)

Livewire explained: Defer VS Debounce VS Lazy (submitted by Jonne Roelofs)

Blade, Requests, Routing, and Validation: New features since the Laravel 8.0 release in September 2020 (submitted by Pascal Baljet)

Uploading files with javascript in Laravel Livewire (html2canvas screenshot example) (submitted by Jonne Roelofs)

Handling Large Payload for Testing API (submitted by Lloric Mayuga Garcia)

Automating MySQL backups to S3 using Laravel (submitted by Adithya)

Livewire Explained: Emitting events using emit, emitUp and emitTo (an event based Guessing game) (submitted by Jonne Roelofs)

Laravel Geographical Calculator (submitted by karam mustafa)

Wrapping Signature Pad and storing base-64 with Alpine.js and Laravel Livewire (submitted by Jonne Roelofs)

What should I test? (submitted by Chris Rhymes)

Multiple Apis With ForwardsCalls Trait And Code Refactoring Tip - Laravel Hidden Feature (submitted by Ashish Dhamala)


Old posts

Here are a couple of links from a while ago!

Installing Blackfire on Laravel Vapor

A Blade component to render Webmentions

Triaging feedback on GitHub using issues and discussion

GitHub discussions are now in public beta

A recap of 2020

Refactoring the mailcoach codebase to domains

It’s not legacy code — it’s PHP



Did you like this newsletter?

I take a lot of time curating the right links for you. You could do me a favor by either spreading the word and letting others know about my newsletter.

Alternatively you could consider picking up one of the paid products my team and I have worked on:

All spatie products
Oh Dear
Flare

For each of the above you can use this coupon code to get a discount:
DISCOUNT-FOR-FREEK-DEV-READERS

If you have any questions, remarks or thoughts about this newsletter, simply hit reply!
Thank you so much for reading!




Freek

You are receiving this newsletter because you subscribed at https://freek.dev
Unsubcribe from this newsletter
This mail was sent using Mailcoach