• Makers Make by SaaSykit
  • Posts
  • Pest v4.0 is out, Livewire 4: The Future of PHP Components, 6 Weeks of Claude Code, Preventing Churn & more

Pest v4.0 is out, Livewire 4: The Future of PHP Components, 6 Weeks of Claude Code, Preventing Churn & more

Hey Makers 👋

Laravel keeps moving at full speed with two fresh releases: 12.25 and 12.26, bringing more polish and improvements for your projects.

On our side, SaaSykit just leveled up with support for Filament v4.0, TailwindCSS v4.0, and DaisyUI v5.0, so you can stay modern while building faster. 😍🎉🎉

And with summer winding down, the building season is kicking off. If you’ve been sitting on the idea of starting your own SaaS, now’s the perfect moment to grab a SaaSykit license and turn that idea into something real.

Let’s get into the updates! 👇

Laravel 12.25 & 12.26

  • Copy Errors as Markdown
    Error pages now include a Copy as Markdown button. It copies exception details (message, stack trace, request, etc.) in Markdown format for quick sharing or AI debugging.

  • Allowed URLs in Stray Requests
    You can now whitelist certain URLs when preventing stray requests in tests:

Http::allowStrayRequests([
    'http://127.0.0.1:13714/*',
]);

$pending->allowStrayRequests([
    'http://127.0.0.1:13714/*',
]);
  • Wayfinder in Starter Kits
    React and Vue starter kits now ship with Wayfinder, giving type-safe Laravel route helpers in your frontend:

import { update } from "@/actions/PostController";

<form {...update.form.put(1)}>
    {/* <form action="/posts/1?_method=PUT" method="post"> */}
</form>
  • withHeartbeat() for LazyCollection
    Run a callback at intervals while enumerating large collections—useful for refreshing locks during long jobs:

$lock = Cache::lock('reports', now()->addMinutes(5));
$lock->acquire();

Reports::pending()
    ->lazy()
    ->withHeartbeat(now()->addMinutes(4), $lock->reacquire(...))
    ->each($this->generate(...));

$lock->release();
  • Pretty JSON Output
    A cleaner way to dump JSON from collections, models, and more:

collect([1, 2, 3])->toPrettyJson();
// [
//   1,
//   2,
//   3
// ]

From SaaSykit

Building a Laravel app that has both a traditional web front-end and a modern API? Then you’ve probably stumbled across this annoying issue: when an API call fails, Laravel returns a full HTML error page, not the JSON your frontend app expects.

From the Community

Browser testing in Pest 4 unlocks the ability to run tests in your browser using modern tools like Playwright without having a separate test suite for unit and end-to-end tests. Combining browser and unit testing creates cohesion in your testing framework and unlocks new possibilities!

Caleb takes the stage to address one of the most pressing issues in the Livewire's ecosystem: fragmentation. With three different ways to create Livewire components (traditional, Volt functional, and Volt class-based), the community had become divided, and newcomers were left confused about the "right" way to build components.

Laravel's Task Scheduler offers an elegant solution for managing automated processes within your application. This powerful system replaces traditional cron job management with an expressive, programmatic approach to recurring task automation.

We run our Laravel projects within Docker containers for local development, and I like to specify exact PHP extension requirements in my composer.json file.

It is wild to think that it has been only a handful of weeks.

Claude Code has considerably changed my relationship to writing and maintaining code at scale. I still write code at the same level of quality, but I feel like I have a new freedom of expression which is hard to fully articulate.

Ever tried adding an AI assistant to your Laravel app… but gave up the moment you saw 12 tabs of confusing docs, complex tooling, and token limits? 😵‍💫

You’re not alone.

But what if I told you there’s an easier way?

When we use trait in your class in PHP, PHP allows us to override the methods in the trait. But if we want to override the variables in the trait, things change a bit here. Because PHP does not allow changing the default value of the variables in the trait by overriding them. To illustrate this, let’s assume that we have a class and a trait as shown below.

Livewire developers continuously seek methods to enhance component efficiency and boost application performance. One essential technique involves leveraging computed properties with caching capabilities to prevent expensive re-computations.

All about SaaS

What if other investors think like Arian? Founders might be forced to ask themselves something terrifying: Should I be spending more time on X?

We decided to follow up with Arian and dig into his thinking. In an email sent to a16z speedrun, he offered an interesting framework for thinking about posting on social as a founder: It makes the process of doing diligence on very early stage companies easier for investors.

There is currently a disease spreading quickly through the technology industry: long-term commitments.

Enterprise software that requires a 2-3 year contract. Individual products that require 1 year subscriptions. Consumer products that are nearly impossible to cancel. Countless other tactics to make sure that once you start paying for something, you don’t stop.

What happened?

Color co-founder and CEO Othman Laraki built a billion-dollar company in an industry he had zero professional experience in. Here, he shares four product-building tactics that helped him learn the healthcare industry.

When you’re just starting, your product is usually focused. It does one or two jobs well.

And that’s exactly how it should be.

But as your product grows, so do its capabilities. It starts to solve more problems and cover more use cases.

That’s when your homepage alone is not enough anymore, and it makes sense to introduce product pages.

Instead, the solution is to focus on ruthless prioritization and execute at the largest scale. Identify the few changes that deliver massive results across your entire site. Don't optimize for the sake of optimization just because you've read that it's a best practice on X or LinkedIn. Instead, align your SEO with your product's unique strengths, turning your website into a growth engine that attracts the right customers. This is about working smarter, which is how you achieve the most results.

Continue the article

Everyone told you to stop selling features and start selling solutions.

Then they told you to stop selling solutions and start selling "outcomes." Then they said: “No-no-no. You’re selling a transformation, not just an outcome.”

Nice reframes, but whatever. But they still miss the single biggest risk your buyer is taking.

And it’s costing you lost deals.

Continue the article


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.