Hi there!

Welcome to the 144th freek.dev newsletter!

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

Where does my validation live?
Validation takes on many shapes and forms. In this post, Frank walks you through all the possibilities.

Accessing private properties in PHP
PHP has a few ways to access private properties this: reflection, closures and array casting.

Automatic human translations for Laravel apps with TranslateCI (sponsored link)
Are you hiring translators, working out of shared docs, or just not localizing your Laravel app?
You can set up TranslateCI in less than 10 minutes and automate your Laravel app translations forever.

Overriding vendor classes
Ever found yourself wanting to make a small tweak to a PHP file in a Composer dependency? Here's how to do it without forking the entire package.

Create beautiful Open Graph images with Browsershot and Tailwind CSS
For Artisan School, I wanted to create custom Open Graph images for each video page. When somebody shares a link on social media, platforms like Facebook and Twitter use the OG image to represent the shared link. I'll show you how to use Browsershot and Tailwind CSS to generate and save the OG images.

Hosting all your PHP packages together in a monorepo
A monorepo helps manage the complexity of a big codebase. Here's how you can create and manage such a monorepo.

Inertia Server-Side Rendering on Laravel Vapor
How to use Inertia's SSR features in a serverless environment like Laravel Vapor.

How to Train Your Keyboard
We are going to walk through creating a system to bring uniformity to our apps with a single set of keyboard shortcuts. We'll start by learning how to install and configure the required apps, then, later on, I'll introduce the system of keyboard shortcut organization I use every day.

Why I’m Using HTTP Basic Auth in 2022
If you're going to use basic auth, make sure that you use HTTPS.

Exceptional Naming
Kevlin Henney makes the case for not suffixing class names, or files with the type of object it contains.

No code reviews by default
At Raycast, the dev team only requests code reviews when they think it's necessary.

Using Ziggy with Inertia Server-Side Rendering
Aaron Francis clearly explains how you can make Ziggy work with Ineratia's shiney new SSR feature.


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


Facades are singletons (submitted by René Sinnbeck)

Jeffrey Van Rossum Year in Review (submitted by Jeffrey van Rossum)

Reflecting on 2021 and ideas for 2022 Jan 04, 2022 (submitted by Barry van Veen)

New book: Laravel The Modular Way (submitted by David Carr)

Combining Laravel Jetstream Teams with Spatie Permission (submitted by Tim Geisendörfer)

Double-entry accounting for software engineers (submitted by Robin Dirksen)

End of an era (submitted by Tom Witkowski)


Old posts

Here are a couple of links from a while ago!

Websites should be more like Star Wars

Writable getters in JavaScript

Highlight Laravel Blade Templates with Highlight.php

Introducing Ray: a debugging tool for pragmatic developers

Announcing our secret project

A new major version of Flysystem



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