• Makers Make by SaaSykit
  • Posts
  • Laravel 11.14-15 Released, Laravel Echo improvements, Scalable Growth, Finding "Good" Demand & more

Laravel 11.14-15 Released, Laravel Echo improvements, Scalable Growth, Finding "Good" Demand & more

Hey Makers 👋

Hope your week’s been full of progress, whether you’re polishing your onboarding flow, tweaking pricing, or preparing to launch your SaaS. 🚀

Laravel’s been rolling out some quiet but clever updates lately. Nothing massive, but a few features can help you write cleaner, more predictable code, which is exactly what you want when you're building a neat a SaaS product :-)

Let’s dig into the highlights 👇

  • Arr::from() — Consistently Convert to Array
    A new Arr::from() helper ensures you get a plain array no matter what’s passed in:

Arr::from(collect(['title' => 'Laravel Rocks'])); // → ['title' => 'Laravel Rocks']
Arr::from($jsonableInstance); // Uses Jsonable interface
Arr::from($arrayableInstance); // Uses toArray() if applicable
  • Context::except() and Context::exceptHidden()
    Need to exclude certain keys from the context? Now you can:

Context::add('debug', true);
Context::add('token', 'abc123');

$data = Context::except(['token']);
// → ['debug' => true]
  • Container::currentlyResolving()
    Gain visibility into what the container is resolving during contextual resolution:

$binding = $container->currentlyResolving();
// Useful for conditional logic inside contextual bindings
  • Locale-Aware Number Parsing
    Parse number strings from different locales with ease:

Number::parse('1.234,56', locale: 'de'); // → 1234.56
Number::parseInt('1.000', locale: 'de'); // → 1000
Number::parseFloat('9,99', locale: 'fr'); // → 9.99
  • Default Enum Value on Request
    Retrieve enums from the request with a fallback value:

$sortOrder = request()->enum('sort', SortOrder::class, SortOrder::ASC);
  • Str::hash() Helper
    Hash strings fluently with the new hash() method:

$token = str('api-key-42')->hash('xxh128')->substr(0, 8);
// → 'e3f1c9ab'
  • current_page_url in Pagination
    Paginator responses now include the full current page URL:

$data = $paginator->toArray();
$url = $data['current_page_url'];
  • Assert Redirects to Controller Actions
    New method to assert controller redirects in your tests:

$this->get('/go-home')
     ->assertRedirectToAction([HomeController::class, 'index']);

From the Community

The Laravel team has just shipped some big improvements to Laravel Echo, a JavaScript library for real-time event broadcasting.

Laravel enhances data handling capabilities with the AsCollection::of() method, enabling developers to transform JSON columns into strongly-typed collections of value objects automatically. This feature brings structure and maintainability to complex data storage scenarios.

Laravel simplifies Fluent object value handling with the introduction of the array() method, providing a clean approach to convert values into arrays without manual casting or collection manipulation.

Working with Fluent objects often requires ensuring values are returned as arrays, especially when dealing with configuration data or dynamic properties. Previously, this involved manual casting or collection methods. The new array() method streamlines this process.

In my career, I have consumed hundreds of REST APIs and produced dozens. Since I often see the same mistakes repeated in API design, I thought it might be nice to write down a set of best practices. And poke fun at a couple widely-used APIs.

Much of this may be "duh", but there might be a few rules you haven't considered yet.

Duplicate form submissions or requests can be a common issue in web applications, often leading to unintended consequences. Laravel offers a straightforward solution to prevent these duplicates by using atomic locks. In this blog post, we will dig into the implementation of atomic locks to ensure that a form submission is processed only once. Furthermore, we will also explore how atomic locks can prevent the dispatching of the same job multiple times.

VSCode is gaining more traction thanks to Cursor, an AI-powered code editor. But if you are switching from PHPStorm to VSCode, you might be missing some of the features. Thankfully, some extensions can help:

All about SaaS

A flurry of tech acquisitions in the last few weeks has insiders tentatively optimistic that the multi-year M&A doldrums may finally be in the rearview. And behind the scenes, investors say outreach from acquirers is very active, especially in AI.

Today’s Memo is an updated version of my previous guides on topical authority, one that takes the Google leaks, documents revealed in Google lawsuits, my recent UX study of AIOs, and the latest shifts in the search landscape into account. I think this is one of these concepts that can fly under the radar in the AI and Search conversation - but it’s actually important.

When we began StartPlaying we had one scalable growth channel.

For us, the channel was paid ads. Both Google and Facebook ads worked. When we were small, the CAC was low, the market wasn't saturated, and IOS updates hadn't yet supported privacy over lower CPCs.

So, ads were a brilliant way to scale.

Recently, I led a workshop hosted by the Stanford GSB Asian Alumni Chapter called “Power Unlocked: Confidence, Presence, and Career Clarity.” I gave a short talk, then spent the next hour taking participant questions about real-life situations. Some had managers who didn’t have their back. Others were debating major career moves. Still others felt sidelined by someone they trusted. Each had a story and we unpacked them live, even well after the session ended.

Months ago, the brilliant Vince Jeong challenged me to think about different “dimensions” of demand - what makes demand “good” or “intense”? What is “lukewarm” demand? I have been thinking about this a lot, examining a bunch of different startups’ growth patterns and sales calls - in addition to exploring this in my own work on Waffle and Finding Pull - and have come up with two criteria


Videos

Keep building, keep rocking! 🤘

Psst, are you building a SaaS?

SaaSykit is a multi-tenancy Laravel-based boilerplate with everything you need to build an awesome SaaS.