- Makers Make by SaaSykit
- Posts
- Laravel 11.38, SaaSykit Trials Without Payment Details, Building an Image Pipeline with Laravel, How to Differentiate Your Product & more
Laravel 11.38, SaaSykit Trials Without Payment Details, Building an Image Pipeline with Laravel, How to Differentiate Your Product & more
The new year has already started strong, filled with positive resolutions and exciting developments! 😍
SaaSykit just got even better! You can now offer trials without requiring credit card details, making it easier than ever for users to try your product. Plus, to keep things fair and secure, you can now limit the number of trials each user can access to prevent abuse. 🚀
Laravel 11.38 released 🚀
Laravel 11.38 is mostly a bugfix release with a few interesting functionalities that would make your life easier!
Add
finally
method to pipeline helper
This feature adds thefinally
method to pipeline helper, so we can specify a callback to be executed regardless of the outcome of the pipeline.
// before
try {
$result = Pipeline::send($deployment)
->through([PipeOne::class, PipeTwo::class]) // one of the pipes does not call the $next or throws an exception...
->then(fn () => $deployment->deploy());
} finally {
// perform clean up...
}
// after
$result = Pipeline::send($deployment)
->through([PipeOne::class, PipeTwo::class]) // one of the pipes does not call the $next or throws an exception...
->finally(fn () => /** perform clean up */)
->then(fn () => $deployment->deploy());
Add fluent
Email
validation rule
This feature adds a fluent, extendable Email rule object
// Before
$request->validate([
'email' => ['required', 'string', 'email', 'strict', 'dns'],
]);
// After
$request->validate([
'email' => ['required', 'string', Rule::email()->strict()->dns()],
]);
Add
FormRequest::array($key)
andFluent::array($key)
Previously, to retrieve a value from request as anarray
you had to manually cast the result yourself, now you can get an array directly.
// before
public function store(UserRequest $request)
{
$values = $request->collect('...')->all();
// ...
}
// after
public function store(UserRequest $request)
{
$values = $request->array('...');
// ...
}
Support DB aggregate by group
This new version adds new methods:countByGroup
,minByGroup
,maxByGroup
,sumByGroup
andavgByGroup
. I did not create the aliasaverageByGroup
.
New At SaaSykit

Images are crucial for modern web applications, but unoptimized images can slow down your site and impact user experience.
In this guide, we’ll cover how to set up a workflow to handle image optimization in your Laravel application, making use of Intervention Image's awesome features.
From the Community
Monolithic architecture is a software design approach in which all aspects of application are woven together to form a big fat module and therefore developed, deployed, and maintained as a single unit.
If you want your Laravel application to be as efficient as possible, you’re probably already calling withoutRelations()
within the constructor of your Jobs and Events.
With the release of Laravel 10.19, there’s a new attribute called WithoutRelations you can apply on individual properties or even a whole job class.
Let’s first take a look at how you might be doing this today.
In Laravel, validating forms is key to maintaining the safety and accuracy of user data. The FormRequest component simplifies this by keeping the validation rules in a dedicated class, rather than in the controller. This also makes the code neater and allows for special functions related to the request, like fetching a model or changing a data type of a field.
Laravel's View::share method provides a straightforward way to make data available across all views in your application, perfect for handling global settings, user preferences, or common UI elements.
When building Laravel applications, you often have data that needs to be available in all (or most) of your views - things like user information, application settings, navigation menus, or footer content. While you could pass this data from each controller to each view, that would lead to repetitive code. Laravel's View::share method solves this by allowing you to define data once and make it automatically available in all views.
When you need to create a collection with a specific number of calculated elements, Laravel's times method provides an elegant solution. This method is particularly useful for generating sequences, time slots, pagination links, or any scenario requiring numbered iterations.
When building web applications, redirecting users between different parts of your application is a common requirement. While Laravel offers several ways to handle redirects (like using named routes with route()->name()
), the action()
method provides an alternative approach focused on controller actions, offering unique advantages for certain scenarios.
Laravel's API Resources provide elegant methods for conditionally including attributes in your responses, allowing you to create flexible and efficient APIs that adapt to different contexts and permissions.
When building APIs, you often need to customize your responses based on different scenarios - such as showing certain fields only to admins, including related data only when requested, or adapting the response format based on the endpoint. Laravel's API Resources provide powerful methods to handle these cases through conditional attributes.
All about SaaS
Your positioning strategy consists of two choices:
Who is your target customer segment?
What is your differentiation?
Having covered the first choice, we’ll now focus on choosing your differentiation.
Differentiation is essentially answering how you stand out and offer a different and better solution for a customer’s particular use case (or how you improve on a given product category).
There have been some big announcements in AI monetization recently:
OpenAI launched ChatGPT Pro at $200 per month for a single user, 10x the price point of ChatGPT Plus.
Sam Altman later took to X to say that OpenAI is losing money on these subscriptions — “people use it much more than we expected” — and that he “personally chose the price”.
AI startup Sierra, founded by Salesforce’s former co-CEO and already valued at $4.5 billion, announced they’re all in on outcome-based pricing.
I recently launched a free 21-day email course called, The $1000 New Business Challenge.
The idea is pretty simple: Give people one small action each day to start their first business or side hustle, and share the steps needed to make $1,000.
Last week, a founder in the challenge reached out to show me his new coaching business storefront. At the top was this broad tagline:
"I help leaders learn to lead with impact, master their craft, and drive success."
Ben Rometsch, the founder of Flagsmith, created a bootstrapped SaaS success story. Feature flags are transforming software deployment by decoupling releases and enhancing control. And Ben bootstrapped this deceptively simple-looking part of engineering into a significant software business.
And then there’s the open-source part of all that. The Open Feature project is setting new standards in software development, akin to OpenTelemetry. Ben shares insights into this collaborative open-source initiative and takes you on a decade-long journey running a software agency in London, where creativity thrived, leading to the creation of a cost-effective, open-source feature flag tool now used by major companies.
It's not PC to say that cold outbound or anything is dead, but manners aside, looking at the data, here is what's undeniable:
The below image is a screenshot from the website of one of the most reputable cold outbound agencies. They're good. Like, very.
Videos
Keep building, keep rocking! 🤘
If you want your 2025 to be wild, start building a SaaS.
— Ahmad Mas (@AmasCreates)
10:01 AM • Jan 8, 2025