A new coat of paint for freek.dev original
It's funny that even something as simple as a blog app is never finished. One and a half years ago, I did a significant update my moving my blog from WordPress to a Laravel app. In August of last year, I also ditched my custom admin section in favor of Nova. Even though not that much time has passed, it was time for a refresh of the entire blog.
Join 9,500+ smart developers
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.
"Always fresh, useful tips and articles. Carefully selected community content. My favorite newsletter, which I look forward to every time."
A project at Spatie
My colleague Brent offers some insights on a big project we're currently working on at Spatie.
The month May marks the first year anniversary of a client project I've been working on at Spatie. I thought it useful to share some statistics with the community, and give you a feeling of what a "real life web project" might look like.
Read more [stitcher.io]
Live refactor: contributing to open source
In this video Jason McCreary creates a PR that adds a null driver to our laravel-newsletter package.
Caching the entire response of a Laravel app original
When a request comes in your app will return a response. To create that response, your application has to do some work. Most likely queries will execute. This all takes some time. Wouldn't it be nice if the same request comes in, we can return the response the application has constructed previously?
A rule to validate delimited data original
laravel-validation-rules is a package that contains handy custom validation rules that are being used in various client projects we made at Spatie. Last week I added a new validate rule called Delimited to the package.
In this blog post, I'd like to explain why we added it and how it can be used.
Video: getting started with event sourcing in Laravel original
The last few months I gave a talk on how to get started with event sourcing at several conferences and user groups. I took the time to record the talk at home. It's now published on YouTube so everybody can enjoy it.
Implementing event sourcing: improving the developer experience original
Recently we've released v2 of laravel-event-projector. The package is probably the easiest way to get started with event sourcing in Laravel. In v2 we've introduced two "invisible" features that improve the developer experience: auto-detection of event handling methods and auto-discovery of event handlers.
Implementing event sourcing: aggregates original
Recently we've released v2 of laravel-event-projector. The package is probably the easiest way to get started with event sourcing in Laravel.
One of the prominent new features is support for aggregates. While creating v2, I found it surprising that such a powerful concept could be implemented in so little code. In this short blog post, I'd like to explain how aggregates are coded up.
An important security release for laravel-query-builder original
Our laravel-query-builder package exposed a serious security issue: it allowed SQL injection attacks. Laravel Query Builder v1.17.1, which is now available, fixes the vulnerability. If you're using the package, stop reading now and upgrade to the latest version first. For Laravel 5.6, 5.7 and 5.8…
Laravel event projector v2 has been released original
Laravel event projector is a package that aims to be the entry point for event sourcing in Laravel. It can help you setting up aggregates, projectors and reactors. Earlier today our team released v2. This version streamlines the projectors and reactors from v1 and adds support for aggregates.
In this blogpost I'd like to explain a potential problem with traditionally built applications. After that we'll take a look at what projectors and aggregates are. Finally we'll walk through an example how you can create an aggregate laravel-event-projector.
Queueable actions in Laravel
Our team at Spatie released new package called laravel-queuable-action. On his blog, my colleague Brent explains why we created it and how you can use it.
By introducing the concept of actions, we're able to separate responsibilities between classes better: jobs are used for data serialisation and executing tasks asynchronously; but they are not concerned with business logic anymore.
.
Read more [stitcher.io]
A Laravel package to flash messages original
For the past few years, we've been using the laracasts/flash package to flash messages in all projects. In case you don't know: a flash message is a message that is being passed from a request to only the next request. The Laracasts package does its job pretty well. It has support for multiple flash messages, overlay messages. It comes with bootstrap styling out of the box and a few messaging levels preconfigured.
We've noticed that in our projects we only use a tiny bit of functionality from the laracasts/flash. That's why we whipped up our own lightweight package called spatie/laravel-flash. In this blog post, I'd like to introduce it to you.
A package to create personal data exports original
One of the good things that GDPR brought us was the right to data portability. Shortly put, this means that an app should be able to export all data that it has for a user.
Because we have multiple apps at Spatie that need to create such an export, we decided to extract our solution to a package called laravel-personal-data-export. In this blog post, I'd like to introduce the package to you.
A package to handle enums
Recently we released a new package called enum. In a new post on his blog Brent tells you what the benefit of working with enums is and how our package differs from the alternatives.
Today I want to explore some of the difficulties we encounter when solving problems like enums in userland. I'll talk about my personal take on enums, and we'll ponder on core support.
Read more [stitcher.io]
An auto theme for Laravel Webtinker
? laravel-web-tinker now has an auto theme. Currently it only works in Safari Technology preview. Hopefully support for this will come to the stable editions of all major browsers. Thanks @willemvbockstal for the PR! ?https://t.co/gbUvh4nIIwhttps://t.co/jwDKHsgtur
— Freek Van der Herten (@freekmurze) February 12, 2019
Read more [twitter.com]
A package to use Artisan Tinker in your browser original
Laravel comes with a very handy tinker command out of the box. Unfortunately running multiple lines of code on the command line, or editing the code you just executed, can be a bit bothersome. That's why we created a new package called laravel-web-tinker that allows you to run arbitrary code in your…
The Laracon EU 2018 videos have been released.
The past few days videos have been added to the Laracon EU channel on YouTube. It now contains recordings of all talks given at the 2018 edition of the conference.
Here's a playlist that contains all videos of the 2018 editions.
Below you can watch the talk I gave on our medialibrary.
laravel-backup v6 has been released original
laravel-backup is a Laravel package that can backup your application. It can create a zip containing a dump of your database together with other files that you can select. Using the power of Laravel's filesystem abstraction this zip can than be uploaded to one or more remote filesystems. The package…
Preventing spam submitted through forms original
When adding a form to a public site, there's a risk that spam bots will try to submit it with fake values. We recently released a new package, called laravel-honeypot, that can detect these spammy requests. How honeypots work The majority of spam bots are pretty dumb. You can thwart most of them by…