- Makers Make by SaaSykit
- Posts
- Laravel 11.23, Pest 3.0, o1, Founder mode, SaaSykit Tenancy, and more!
Laravel 11.23, Pest 3.0, o1, Founder mode, SaaSykit Tenancy, and more!
Laravel 11.23 released!
Laravel v11.23 released: Latest version includes new features and improvements from the Laracon US 2024 keynote.
Key highlights:
Taylor Otwell's new features: Introduces tools like
chaperone()
,defer()
, andCache::flexible()
to improve app performance and code flexibility.New documentation highlights: Updated guides on concurrency handling, contextual container attributes, automatic parent model hydration (
chaperone()
), and deferred function helpers.Dimension validation rules: Adds
minRatio()
andmaxRatio()
for more precise image dimension validation.Backed Enum support in Gates: Enhances authorization checks by using enums with Gate methods and Authorize middleware for cleaner code.
Skip Middleware for jobs: Allows jobs to be conditionally skipped in queues using
when()
andunless()
methods.Eloquent
findOrFail()
: Improves model lookup in collections, throwing exceptions when models aren't found.
We've shipped the framework features I demoed at @LaraconUS. 🚀
Here's what's included... 🧵
— Taylor Otwell ☁️ 🦹 (@taylorotwell)
3:58 PM • Sep 12, 2024
Pest v3.0 is released!
Pest v3.0 was released last week. Here are the key features introduced:
Mutation Testing: Introduces small code changes to check if your tests detect them.
Arch Presets: Predefined rules for testing your application's architecture.
New Configuration API: Simplified and more intuitive configuration API.
Architectural Testing Improvements: New expectations,
@pest-arch-ignore-line
, and other enhancements.Additional Features: Constants in Type Coverage, improved static analysis, and more.
SaaSykit Tenancy - It was a BIG week for SaaSykit!
Last week, SaaSykit Tenancy was released!
I spent the last few months building SaaSykit Tenancy, which is a multi-tenant variation of SaaSykit, that’s meant to provide a great starting point for multi-tenant SaaS projects.
SaaSykit Tenancy offers features like:
Seat-based subscriptions: Define subscription plans with a certain number of seats, and your SaaS users can subscribe to these plans. Once they do, a tenant will be created for them with the number of seats they subscribed to.
Flat-rate subscriptions: You can choose to offer your users the ability to have a tenant, invite users, assign roles & permissions, etc without having to subscribe to a plan with a certain number of seats. This is useful if you want to offer a flat-rate subscription plan. You can also limit the number of users that can be invited to a tenant.
One-time purchase orders: You can offer your users the ability to purchase one-time products, and once they do, a tenant will be created for them.
User Invitations: Tenant admins can invite other users to their tenant, and assign them roles & permissions. Upon invitation, the invited user will receive an email with a link to accept the invitation.
Team Management: Tenant admins can manage their team by assigning roles & permissions to team members, and remove them if needed.
Roles & Permissions: Define roles & permissions that can be assigned to users in a tenant, those will be available to the tenant admins to assign to their team members.
Automatic Billing: Once a user subscribes to a plan, billing will be synced automatically. Billing will be based on the number of seats if they have a seat-based subscription plan, or flat-rate if they have a flat-rate subscription plan.
Events: Listen to events that are fired when a user is added to a tenant, removed from a tenant, or invited to a tenant, so you can take actions accordingly.
Tenant dashboard: Each tenant has its own dashboard where the tenant admin can manage their team, subscriptions, and more.
Same user can be in multiple tenants: A user can be invited to multiple tenants, and can switch between them easily from the dashboard.
Plus all the other beauties from SaaSykit.
OpenAI to launch reasoning models (o1)
OpenAI has developed a new series of AI models designed to focus on deeper reasoning and problem-solving in areas such as science, coding, and math. The first model in this series is being released in ChatGPT and through the API as a preview, with regular updates and improvements anticipated.
New at SaaSykit
Laravel is a powerful and elegant PHP framework that can help you build robust and scalable web applications. However, like any tool, it’s only as good as the developer using it. Poor practices can quickly turn your elegant codebase into an unmanageable circus. In this article, we’ll explore common pitfalls and how to avoid them, ensuring your Laravel application remains clean, efficient, and maintainable…
From the Community
At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'm not going to try to reproduce it here. Instead I want to talk about a question it raised.
The theme of Brian's talk was that the conventional wisdom about how to run larger companies is mistaken. As Airbnb grew, well-meaning people advised him that he had to run the company in a certain way for it to scale…
Some time ago I made a YouTube series called Code Reviews. From that series and other reviews, I've collected the 9 most common repeating mistakes Laravel beginners make.
Not all of those are really serious flaws, most of them are just not the most effective ways to code. Then it's an open question why do you use a framework like Laravel and don't actually use its core features in full?
Laravel 10 has released the Laravel’s Process facade, which make running external commands super easily.
This uses Symfony Process under the hood, and adds a TON of quality-of-life improvements.
What might you run commands for? I’ve personally used it to run docker
commands on an early version of Chipper CI, and recently have seen it used to run ffmpeg
commands to edit media files. There’s a lot of times when it makes sense to reach out beyond PHP!
In this post, I will show you how to create factories for models that have polymorphic relationships with other models in your app.
This post assumes that you are familiar with polymorphic relationships. If that’s not true, head to the documentation to learn more…
Laravel's database implementation provides a good way of working with multiple databases while abstracting away their inner workings. You don't have to consider minor syntax differences when using a query builder or how each database handles specific operations slightly differently.
However, when we want to use more database functionality than Laravel provides, we must fall back to raw SQL expressions and write database-specific code. The Query Expressions package builds on new features introduced in Laravel 10 to solve that problem. All provided implementations abstract some SQL functionality that is automatically transformed to the correct syntax with the same behaviour for your used database engine. And if your version is still supported by Laravel but is missing a feature, it is emulated by the implementations. So you can even do things that were not possible before…
Laravel is a web application framework built with PHP. It’s a framework that uses providers and dependency injections for code organization. It follows a model-view-controller design pattern. Laravel reuses the existing components of different frameworks, which helps in creating a web application. Thus, the application is designed to be more structured and pragmatic…
Chaperone, Enum Support & Circular Model References in Laravel
Configuring (and viewing!) logs in Laravel
Effortless Continuous Deployment for Laravel with GitHub Actions
Quote of the day
Failure is simply the opportunity to begin again, this time more intelligently.
Psst, are you building a SaaS?
SaaSykit is a Laravel-based boilerplate with everything you need to build an awesome SaaS.
Keep building, keep rocking! 🤘