|
Hi there!
Welcome to the 201st freek.dev newsletter!
Here are a couple of links I hope you'll enjoy as much as I did.
⭐ Generate Apple and Google Wallet passes from Laravel
I've had a lot of fun creating this new package called Laravel Mobile Pass. It can generate mobile passes for both Apple and Google. On of it's most cool features is that you can just update a pass on a user's phone by updating a Eloquent model in your app.
⭐ Announcing laravel-sluggable v4 with self-healing URLs
The spatie/laravel-sluggable package has been around for close to a decade. A slug is the readable part of a URL that identifies a record. The major feature of this version is self healing URLs.
⭐ There There: an AI helpdesk we're building at Spatie
We do a lot of customer support at Spatie ourselves, and we always wished our helpdesk would actually help. So we're building There There: a helpdesk where AI handles the grunt work so humans can give the thoughtful answers people actually want, and we're already using it for Flare, Mailcoach, and Oh Dear. Early access opens soon, sign up at there-there.app to be among the first.
Laravel Route Binding Behind the Curtains
A deep dive into how Laravel transforms raw route segments into models, scoped children, enums, and custom bound values before your controller runs.
How to monitor your Laravel app for critical vulnerabilities using Oh Dear
This practical guide shows how to use spatie/laravel-health together with Oh Dear to detect vulnerable Composer dependencies in production and get alerted quickly. It also shows how adding composer audit in CI gives you an extra early warning layer.
Lock a shared test database for parallel test processes
AI coding agents love to run tests in parallel processes.
That's great until multiple processes try to use the same local test database at once. A small file lock can serialize access and stop those runs from stepping on each other.
Running GitHub Actions on a Mac Mini
Matthieu Napoli explains how he replaced GitHub-hosted CI with self-hosted runners on a Mac Mini at home. The setup is simple, fast, and a good look at the trade-offs around isolation, caching, and parallelism.
Porting Mac OS X to the Nintendo Wii
An absurd and very fun technical deep dive into getting Mac OS X 10.0 running natively on a Nintendo Wii. It covers the hardware investigation, boot process, kernel patching, and driver work needed to pull it off.
Understanding Traceroute
A clear walkthrough of how traceroute works under the hood. It explains the TTL trick, the ICMP replies routers send back, and even rebuilds the core idea in Rust.
Enhancing our API for better agentic consumption
We've shipped several improvements to the Oh Dear API to make it work better with AI coding agents. The updates include historical check runs, dashboard links in every response, and markdown-friendly documentation.
In Praise of --dry-run
Henrik Warne makes a good case for adding a --dry-run mode to commands that change state. It gives you a fast, safe way to verify configuration, inspect behavior, and test workflows without side effects.
How Will LLMs Transform Us? AI as a Tool in the Future of Development
This article frames AI as a tool to support, not replace, developers, emphasizing the importance of staying in control of how and when it’s used. It encourages a thoughtful approach where developers leverage AI for efficiency while maintaining ownership of decisions and outcomes.
What Paddle doesn't tell you about implementing metered billing
How to implement calendar-month metered billing on Paddle using zero-value subscriptions, one-time charges, and a homemade invoice grace period.
Introducing TypeScript Transformer 3
Ruben explains the full rewrite behind TypeScript Transformer 3 and why the new architecture makes the package much more flexible. The post covers the new transformer pipeline, AST-based output, improved type parsing via PHPStan, and a watch mode for faster development.
Talking about Laravel, Oh Dear, and AI
In this interview, I talk about Laravel, application monitoring, and how AI is changing the way developers work.
Scotty vs Laravel Envoy: Spatie's New Deploy Tool Is Worth the Switch
Hafiz compares Scotty with Laravel Envoy and explains why Spatie's new deploy tool is a nicer fit for SSH-based deployments. He walks through the plain bash format, improved terminal output, migration path, and zero-downtime deployment workflow.
Spatie Guidelines as AI Skills
We turned our internal coding guidelines into reusable AI skills, so coding assistants can follow the same conventions their team uses. The package works with Laravel Boost and the broader skills.sh ecosystem, and ships with skills for Laravel PHP, JavaScript, version control, and security.
The Great CSS Expansion
A comprehensive look at how new CSS features are replacing JavaScript libraries. Anchor positioning, the Popover API, scroll-driven animations, view transitions, customizable selects, and more. The article estimates around 322 kB of JavaScript that can potentially be replaced by native CSS.
Validating Array Inputs in Laravel Without the N+1
Validate nested array inputs in Laravel form requests without the N+1. Prefetch lookup data in prepareForValidation and check items in memory.
Community links
In this section you'll find links submitted by others. Let me know if you wrote or stumbled across a blog post, tutorial or video that might be interesting to appear in this section.
Your SQLite database is silently getting wiped on every Forge deploy (submitted by Zacharias Creutznacher)
Old posts
Here are a couple of links from a while ago!
Running PHP tests in parallel on GitHub actions
DevOps With Laravel: Queues and Workers in Production
Impact, agency, and taste
Think of an Elephpant -
Type Preferences
Laravel Observers vs Event Listeners: What’s the Difference?
Optimize Bulk Insertions with Laravel's New fillAndInsert() Method
Enjoy this newsletter? Help it grow!
If you found this edition useful, here are two quick ways to support the newsletter:
👉 Write a short recommendation. Approved recommendations appear on the newsletter page for others to see.
👉 Forward this email to a colleague or friend who might be interested.
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
P.S. Know someone who'd enjoy this newsletter? Send them here to subscribe.
You are receiving this newsletter because you subscribed at freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|