Laravel 8.40, weekly updates, and 🔥 tip

Laravel 8.40

No release this week as Dries is on vacation. However, there was a security release last week for Laravel 8.40.

A Pull Request for this release was automated for subscribers to a Shifty Plan. If you don't have one of those, be sure to bump your constraint and run composer update to get this security release.

Weekly Journal

Last week Jess and I continued to work on the secret project. At this point it is functionally complete, albeit ugly. So this week we'll focus on making it a bit prettier.

I'll also schedule some alpha testers for next week to get their opinion on the current version to see if there's anything else we'd want to rework before moving to private beta testing.

Yesterday I officially launched the Tailwind Shifts. While these have been available since March, they were continually being tweaked based on user feedback (and dogfooding). At this point they have been run over 100 times.

Of course, just like any Shift, I will continue to make tweaks based on user feedback. But at this point I consider them stable and ready for everyone to use.

As noted on Twitter, I don't expect the Tailwind Shifts to move the needle. Yet I saw an opportunity to scratch my own itch and offer an upgrade path going back to the beginning of Tailwind.

I also think Tailwind has good crossover with the Laravel community and is growing on its own. One of my goals since going full-time with Shift has been to support frameworks beyond Laravel, so Tailwind may be the first of those.

This week I plan to continue to prettify the secret project, as well as finish one of the lingering Human Shifts.

🔥 Tip

I've been writing a lot of collection chains lately. Anytime I write these I always feel like there's a better way - some one-liner I'm missing.

While that may be true, I found knowing the symmetry between the methods to be more important. That is, many of the collection methods have an inverse.

For example, whereIn verse whereNotIn, isEmpty versus isNotEmpty, except vs only, etc.

I find in the absence of that perfect one-liner, spending time to use the method which matches the tone better communicates the intent of these otherwise dense blocks of code. This is something I talk about heavily in BaseCode.