Hi there!
Welcome to the 187th freek.dev newsletter! Here's your monthly dose of links to cool stuff about Laravel, PHP and related technologies.
⭐ Flare's new performance monitoring is now in closed beta. We're slowely adding people, if you want to test it out, get an invite by subscribing to our mailing list.
⭐ A package to handle one-time passwords (OTP) in Laravel apps
Our new package gives you everything you need to build a secure one-time password auth flow.
⭐ A package to handle passkeys in Laravel
We’ve released another new package that makes adding passkeys to a Laravel app as easy as it can be.
Typo-Tolerant, Blazing Fast Search for Laravel (sponsored link)
Typesense is the free, open-source search engine for forward-looking Laravel devs. Make it easy on
people: Tpyos? Typesense knows we mean typos, and they happen. With ML-powered typo tolerance,
semantic search, and Laravel Scout integration, Typesense helps your customers find what they’re looking
for—fast. Check out Nuno Maduro's exploration of Typesense and Laravel or check them out on GitHub.
Introducing PHP Operators
Here's a fun little sideproject from my colleague Seb. This web app is built with Laravel, Alpine.js, and Tailwind CSS. Content is stored in Markdown files and loaded with our sheets package.
Five levels of handling images in Laravel
We'll cover resizing, image optimization, and UI enhancements and show how Spatie's packages and products can make the whole process easier, more efficient, and even a bit fun.
Livewire and Inertia: how we love and use both at Spatie
If you held an individual Spatie employee at gunpoint (please don't) and forced them to pick a favorite, you'll get a 50/50 split. But when we look at the choice at hand as a team, it becomes easier to determine the right fit.
PHP Benchmarks: 8.4 performance is steady compared to 8.3 and 8.2
Tests performed by Tideways show that, in general, the performance between 8.2, 8.3 and 8.4 does not move much for a Laravel, Symfony and WordPress demo application.
Simplifying work with custom stubs in Laravel
Stubs are fake implementations of interfaces or classes that simulate the behavior of real services.
Do not call toArray() to get all items from a Laravel Collection
Something that you’ll need to often is casting the collection back to a regular array. Like me, you might be tempted to use toArray() for this. But that might be the wrong method to call.
Real-world uses of TypeScript’s utility types
Utility types are types that modify other types. You can think of them as functions, but they operate on types instead of values.
What nobody tells developers about documentation
Users don’t know what your product does, how to use it, or why they would use it. You need docs to explain this.
Settling the File Structure Debate
Group by type or context / process? One of these methods will crush your project's growth. Find out which!
Unorthodox decoration
Everyone knows the classic decorator pattern—but have you met its duck-typed cousin? Discover how to extend Laravel behavior without interfaces, the clever way.
Think of an Elephpant
Find out how we can champion PHP as a community and help bring it to the attention of more developers
Type Preferences
A short post about my preferences around type safety and static analysis.
Impostor Syndrome – Maybe I’m Not Good Enough?
After more than 9 years working with Laravel—leading a dev team and architecting solutions—I still sometimes feel like I’m not doing enough.
It's never just that simple
When you say "just," you're skipping over all the invisible complexity.
Developer Tooling #002
Some cool tools selected by Patrick.
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
Running Multiple PHP Versions on a Single EC2 Instance (submitted by Moisis Hadjiagathangelou)
Showcase: Filament Jetstream Plugin by Stephen Jude (submitted by STEPHEN JUDE)
Scoping Eloquent Relations Using the Context Facade (submitted by Gustavo Karkow)
Allowing GitHub Actions to SSH into Your Server (submitted by Moisis Hadjiagathangelou)
Intro to AI: What are LLMs, AI Agents & MCPs? (submitted by Karan Datwani)
Old posts
Here are a couple of links from a while ago!
Laravel Under The Hood - The Strategy Pattern
Primitive Obsession: what it is, how to spot it and, how to fix it!
Encrypting Queued Jobs, Notifications, Mail, and Listeners in Laravel
Optimizing PHP for performance
Form Validation with Type Inference Made Easy with Zod, the Best Sidekick for TypeScript
Disabling Composer's default timeout inside of scripts
vue-ray 2.0 is out - full Vue 3 composition api support
Elevate Your Laravel Eloquent Queries with Tappable Scopes
How Ahrefs Gets a Billion Dollar-Worth Infrastructure With a 90% Discount
Protecting your email address via SVG instead of JS
How to build a writing habit
How we stopped a DDoS attack at Laracon
How to create Wireables in Livewire?
Clearing Ray output
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:
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 freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|