- Makers Make by SaaSykit
- Posts
- Laravel 12.40-41, Build Your Own Private, Self-Hosted AI Applications with Ollama & Laravel, A Guide to Laravel Queues, The State of AI, How to sell to engineers & more
Laravel 12.40-41, Build Your Own Private, Self-Hosted AI Applications with Ollama & Laravel, A Guide to Laravel Queues, The State of AI, How to sell to engineers & more
Hey Makers 👋
We’re down to the last call for the SaaSykit Cyber Monday deal — your final chance to grab 25% off SaaSykit Complete using the code BLACKFRIDAY2025 before it’s gone for good.
If you’ve been sitting on a SaaS idea or waiting for the right moment to start building, this is it. 🚀
And on top of that, the Laravel team just dropped two fresh packed releases, loaded with quality-of-life improvements and shiny new features that make building even more enjoyable.
Let’s jump into these interesting updates 👇
Laravel 12.40-41 updates
New Time & Duration Helpers
New
plus()/minus()named-argument methods added toIlluminate\Support\Carbon:
Carbon::now()->plus(months: 2, hours: 3);
Carbon::now()->minus(days: 12);New lightweight duration helpers returning
CarbonInterval:
use function Illuminate\Support\{milliseconds, seconds, minutes, hours, days, weeks, months, years};
minutes(10); // 10-minute interval
days(14); // 2-week intervalSchedule Tasks on Specific Month Days
New
daysOfMonth()scheduler method allows specifying multiple days:
$schedule->command('generate-reports')->daysOfMonth(1, 15, 28);
$schedule->command('generate-reports')->daysOfMonth([1, 15, 28]);Encoding Validation Rule
A new file encoding validation rule ensures uploaded files have the expected encoding:
Validator::validate($data, [
'file' => [
'required',
File::types(['csv'])->encoding('UTF-8'),
],
]);Encoding Validation Rule
A new file encoding validation rule ensures uploaded files have the expected encoding:
php artisan queue:pause database:default
php artisan queue:continue database:defaultNew
throwUnless()on HTTP ResponsesThe HTTP client’s
Responsenow includesthrowUnless()
$response->throwUnless($shouldContinue);
$response->throwUnless(fn ($resp) => $resp->status() === 200);New
artisan reload+ Provider-Defined Reload HooksA new
reloadcommand is available.Service providers can register their own post-deployment reload steps:
public function boot()
{
$this->reloads('reverb:restart');
}
From the Community
Imagine your team wants to bring AI into their workflow to automate routine tasks, extract insights from data, assist with content creation, or improve customer support. Smart move!
You can integrate AI into your system using APIs from OpenAI (the company behind ChatGPT), Anthropic (Claude), or Google (Gemini). But before you do, you need to reckon with two crucial questions…
When I was a developer, half of our frustrations were about technical debt (the other were about estimates that are seen as deadlines).
We always made a distinction between code debt and architecture debt: code debt being the temporary hacks you put in place to reach a deadline and never remove, and architectural debt being the structural decisions that come back to bite you six months later.
Tyro is an API package for building production-ready APIs in Laravel. It has a zero-config setup with authentication, authorization, privilege management, 40+ Artisan commands, and battle-tested security. You can use this package to quickly ship secure APIs in Laravel.
The Cloudflared for Laravel is a simple package to create and manage Cloudflare Tunnel for your Laravel projects. Paried with a companion Vite plugin for Cloudflared, you can easily test and debug your frontend on any device.
When your Laravel application starts handling real traffic, you'll quickly discover that some operations simply can't happen in real-time. Whether it's sending emails, processing images, generating reports, or calling third-party APIs, these tasks can turn a snappy user experience into a frustrating wait. This is where Laravel's queue system becomes essential.
Comparison between prominent technologies is just as prominent as the technologies themselves. Developers or engineers from different backgrounds tend to indulge in debates around whether the technology they use is better than the other or not. Discussions like this often do not produce any decisive results but here we are with another one.
Validation is an important part of any web application. It can help to prevent security vulnerabilities, data corruption, and a whole host of other issues that can arise when you're working with user input.
In this article, we're going to take a look at what validation is and why it's important. We'll then compare client-side validation with server-side validation and explore why you should never rely solely on client-side validation in your applications.
In popular project and source control systems, like GitHub, you can assign a person who should take care of a particular issue.
Now you can do this at Flare as well. In our latest release we've added support for assigning an error to a user of your team.
For those of you who don't know, SQLite is like a dynamically-typed language. There's no restrictions on what you can and can't store inside of a column.
That means if you have a INTEGER column in your database table, there's nothing stopping you from storing a string inside of it.
All about SaaS
The past year in AI has been defined by rapid shifts in capability, adoption, and developer behavior. Breakthrough reasoning models, the acceleration of open-source innovation, and a surge in AI-native applications have reshaped how we build and interact with intelligent systems. Today, we are releasing a new empirical study that examines these changes through a particularly comprehensive lens: more than 100 trillion tokens of real-world LLM usage from OpenRouter.
When ChatGPT went down one afternoon while I was preparing a presentation, I opened my document and my fingers froze. I couldn’t articulate why the frameworks connected to the examples I’d planned to use. My explanations lived in chat history I could no longer access.
There’s never been just one way to buy software. In ye olden times, if you liked some shareware, you’d mail off a cheque, or call up a hot-line, to get the full version. Later on, you could walk into a store and walk out with a shiny box, manuals, and disks.
For the past half-decade, AI labs operated under a delightfully simple principle: throw more GPUs at the problem, feed models more data, and watch performance climb. These “scaling laws” felt almost magical and predictable power-law relationships between compute, data, and model capability.
There are plenty of opportunities to invite people to your product ahead of the formal launch. Alpha, beta, etc.
My preference is only right at the end. Typically a week or two before we go live. When the product is in the very last throes of beta, barely beta. Essentially v0.99.
I started coding at 13 because I liked computers and video games. 5 years later I got a job at Shopify. After working there and at some startups for 3 years, I realized I was probably not destined for a career of staring at a screen for 12 hours a day. Luckily, 2 jobs ago, I had a boss who thought I was good at talking to people, and offered me the chance to move to technical sales. I hit 200% of quata in my first 2 quarters, and felt a similar kind of "problem solving high" I do when working on a difficult technical problem. Except this time, I was programming people instead of computers.
Videos
Keep building, keep rocking! 🤘