Introduction
Welcome to the first issue of my new series! At the end of each month, I aim to write a round up of the some of the month's news from the Laravel and web development community.
This month, we have a new Laravel documentary trailer, some cool new products and packages and 6 new releases of Laravel.
If you have any ideas of particular news you'd like me to cover in the future issues, make sure to let me know!
Laravel Origins: The Documentary
The trailer for an exciting new documentary called "Laravel Origins: The Documentary" was released this month. The documentary is set to be launched on 2nd March and will be all about the history of Laravel and how it got started.
Personally, I'm looking forward to watching this documentary when it's released. For the past 4 years of my life, building websites and web apps with Laravel has been my primary source of income. So, I think it'll be really inspiring to hear how the framework went from just an idea in someone's head into a framework that's used by thousands of develpers around the world.
If you haven't already seen the trailer, you can check it out here:
"Saloon" PHP Package
I've seen a lot of talk online this month about a cool new PHP package called Saloon by Sam Carre.
As it's described in the GitHub repo, Saloon is "a PHP package that helps you write beautiful API integrations. It introduces a standardised, fluent syntax to communicate with third party services and has out of the box support for Laravel".
It provides an object oriented approach that you can use for building requests to APIs. To understand it a bit more, let's take a look at the basic example in the documentation:
1use App\Http\Saloon\Requests\GetForgeServerRequest;2 3$request = new GetForgeServerRequest(serverId: '123456');4 5$response = $request->send();6$data = $response->json();
As you can see, it allows you to bundle your requests into objects. In my own personal projects, I try and use an approach similar to this because I find it manageable and testable. So, it's really cool seeing a package like this that will be feature-rich and tested. It's definitely something that I will be using in my future projects.
If you're interested in checking out the package, you can check out the GitHub repo and documentation. And don't forget to give Sam a follow on Twitter to keep up to date with the package!
"Unlock" Launched
At the beginning of January, Philo Hermans released Unlock. It's a new SaaS (software as a service) that you can use to handle the sales, licensing and distrubtion of your software.
The service aims to take away the stress of handling the distribution of your apps, so that you can focus on your code and building awesome new features for your users. It has plug & play support for Electron, PHP (Composer), Python (PyPI), and NodeJS (NPM).
At the moment, I don't have any paid products, so I don't have a need for this service. But, if I create a paid product or PHP package in the future, I'll definitely be using this. So, if you're thinking of releasing any new software this year, I'd recommend checking out Unlock and seeing if it's right for you.
"Showcode Desktop" App Launched
During January, Steve Bauman released Showcode Desktop. It's a downloadable, desktop version of showcode.app. I've used the web version myself multiple times for creating code snippets.
Steve is actively adding new features to Showcode and, it appears that everytime I look at the site, there's a new cool feature that's been added.
At the time of writing this post, you can download Showcode Desktop for $19.99. That will get you updates for a year, offline and unlimited tabs & templates. However, judging from how many new features have been added recently, I'd expect there to be even more new additions to the desktop app to be added regularly.
If you're interested in downloading Showcode Desktop, you can purchase it and download it here from Unlock (yes, the Unlock we were just discussing above).
"Peppermint v0.2" Tagged
Towards the end of January, Jack Andrews tagged v0.2 of his project Peppermint. This project is actually quite exciting, so I thought it would be worth sharing to you all.
Peppermint is an open-source, self-hosted ticket management/help desk solution built with Next JS. The project is still in it's early stages, but the latest version has some new improvements, such as:
- Support for personal and ticket-related file uploads.
- Markdown support for ticket creation.
- Improved ticket detailing.
- A UI/UX overhaul using Tailwind
- Personal notebooks
- Full mobile responsiveness
It looks like Jack also has plenty of new features lined up to add soon. So, make you sure to head over to the Peppermint GitHub repo and drop a star to show your support!
My News
Switching to Fathom Analytics
This month, I decided to make the switch from Google Analytics to Fathom Analytics for my website's analytics. It's something that I'd been meaning to do for a while but kept pushing to the bottom of my to do list. But, after reading their "Your website analytics are breaking the law", I decided to finally make the jump. I've only been using the service for less than a month, but so far, I'm loving the simplicitly of the dashboard and how easy it is to navigate.
Building a Chrome Extension
As part of my goals for 2022, I decided that I was going to spend a more time getting to grips with more advanced JavaScript. So, as part of this goal, I started building a small Chrome browser extension called Mango Two.
Mango Two is a browser extension that you can use for generating short URLs. It's not intended to be a new, fancy product; it's purely an educational project for myself. But, once it's in a releasable state, I'll make sure to make the GitHub repo public so that other people can contribute to it and improve it.
So far, the extension is being built with TypeScript. To generate and serve the shortened URLs, it uses a simple API that I have built using Laravel and my own Short URL package.
I've already found this to be a valuable learning experience because I've had a chance to delve into different TS/JS concepts like promises and the different build tools that exist. The best part is that by the end of the project, I'll also have a cool fully functioning browser extension that you can download to use yourself.
Updating Packages for Laravel 9
This month, I also updated my Short URL and Laravel Exchange Rates packages to support Laravel 9.
Short URL was updated to v6.3.0 and Laravel Exchange Rates was updated to v5.0.0.
Open-source Contributions
Another of my goals for 2022 was to contribute more to open-source projects than I did in 2021. So far, this month, I managed to make 4 pull requests to other people's projects that were merged:
- laravel/forge-docs
- Added steps for upgrading Nginx (#73)
-
laravel/docs
- Added 'sole' method to Laravel 9 upgrade guide (#7593)
-
laravel/framework
- Updated code to use
str_starts_with
(40349)
- Updated code to use
-
rezaamini-ir/migrator
- Moved config and routes out of 'src' folder (#20)
Laravel Releases
During January, there were 6 new Laravel versions that were tagged and released: 6.20.44, 8.78.0, 8.78.1, 8.79.0, 8.80.0, 8.81.
If you're interested in checking out the entire changelog for each of the releases, I recommend checking out the release notes for each one on GitHub. Here are the main additions that were added in the releases:
8.78.0
Added:
- Added
schedule:clear-mutex
command (#40135) - Added ability to define extra default password rules (#40137)
- Added a
mergeIfMissing
method to the Illuminate Http Request class (#40116) - Added
Illuminate/Support/MultipleInstanceManager
(40913ac) - Added
SimpleMessage::lines()
(#40147) - Added
Illuminate/Support/Testing/Fakes/BusFake::assertBatchCount()
(#40217) - Enable only-to-others functionality when using Ably broadcast driver (#40234)
- Added ability to customize json options on JsonResource response (#40208)
- Added
Illuminate/Support/Stringable::toHtmlString()
(#40247)
8.78.1
Added:
- Added
pipeThrough
collection method (#40253)
8.79.0
Added:
- Added onLastPage method to the Paginator (#40265)
- Allow method typed variadics dependencies (#40255)
- Added
ably/ably-php
to composer.json to suggest (#40277) - Implement Full-Text Search for MySQL & PostgreSQL (#40129)
- Added whenContains and whenContainsAll to Stringable (#40285)
- Support action_level configuration in LogManager (#40305)
- Added whenEndsWith(), whenExactly(), whenStartsWith(), etc to Stringable (#40320)
- Makes it easy to add additional options to PendingBatch (#40333)
- Added method to MigrationsStarted/MigrationEnded events (#40334)
8.80.0
Added:
- Allow enums as entity_type in morphs (#40375)
- Added support for specifying a route group controller (#40276)
- Added phpredis serialization and compression config support (#40282)
- Added a BladeCompiler::render() method to render a string with Blade (#40425)
- Added a method to sort keys in a collection using a callback (#40458)
8.81.0
Added:
- Added
Illuminate/Support/Stringable::scan()
(#40472) - Allow caching to be disabled for virtual attributes accessors that return an object (#40519)
- Added better bitwise operators support (#40529, def671d)
- Added getOrPut on Collection (#40535)
- Improve PhpRedis flushing (#40544)
- Added
Illuminate/Support/Str::flushCache()
(#40620)
Conclusion
Hopefully, this post should have shown you at least one cool new thing from the web dev world in January 2022.
If you enjoyed reading this post, I'd love to hear about it. Likewise, if you have any feedback to improve the future ones, I'd also love to hear that too.
If you're interested in getting updated each time I publish a new post, feel free to sign up for my newsletter below.
Keep on building awesome stuff! 🚀