The Laravel 12 Starter Kit Shift 🤔
Picture this: You open your terminal, run laravel new my-project
, and… surprise! 🎭 The usual starter kits you relied on—Breeze and Jetstream—are nowhere to be found. Instead, Laravel 12 now offers a different approach: full project templates hosted on Packagist.
Before Laravel 12, the official installer would set up a blank Laravel project and then install Breeze or Jetstream as a dependency, running breeze:install
or jetstream:install
. But in Laravel 12, the new starter kits aren’t installed as dependencies anymore—they’re predefined repositories. Now, when you select a starter kit, the installer runs composer create-project
, fetching a full Laravel template project instead.
And the kicker? 🥁 When using laravel new
, the suggested starter kits are React, Vue, and Livewire. Breeze and Jetstream were completely removed.
Now, don't get me wrong—the new starter kits are awesome! They come pre-configured with ShadCN, modern UI components, and a polished setup that makes building apps even smoother. But at the same time, it sucks that we lost Breeze and Jetstream as official options. Many developers were still using them, and now they had no direct way to install them like before. Naturally, this upset a lot of people. 😡
My Attempt to Fix It (And the Closed PR) 🙃
Like many, I found this change frustrating. So, I thought: Why not just add an option to allow users to provide their own starter templates? That way, people who wanted Breeze, Jetstream, or custom setups could still use them seamlessly.
I opened a PR in the official Laravel installer to introduce a custom starter option, allowing developers to specify their own Packagist-hosted templates. Simple, right? 🤷
Unfortunately, my PR was closed by Taylor. The reason? Laravel already had enough starter kits, and they couldn’t maintain more options.
I was a bit disappointed, to be honest. 😕 But hey, he’s the maintainer. He knows best, and I understood that he had a lot on his plate. 🍽️
Still, I wasn't ready to drop the idea just yet. 💡
Building LaravelFS: A Better Laravel Installer 🏗️
Since Laravel's official installer wasn’t going to support custom starters, I decided to build my own alternative: LaravelFS. 🎉
What LaravelFS Does Differently 🔥
- Brings back Breeze and Jetstream: You can now select them just like before.
- Adds a custom starter option: You can provide your own Packagist-hosted template.
- Introduces a "Templates" feature: Save and reuse your project setup preferences.
How It Works 🛠️
1. Installing LaravelFS:
composer global require hichemtab-tech/laravelfs
2. Creating a new project (with all the missing options restored!):
laravelfs new my-project
You'll be prompted to choose your starter kit, database, test library (Pest or PHPUnit), and additional options like SSR, TypeScript, and dark mode. 🌙
-using The official Laravel installer :
- using My installer:
3. Saving a setup as a template:
laravelfs template:new
This runs the same prompts as laravelfs new
, but instead of creating a project, it saves your selections as a reusable template. 📝
4. Using a saved template:
laravelfs use my-template
No more repeating the same prompts every time—just use your template and get started instantly! 🚀
A Curious Coincidence… 🤨
Now here’s where things get interesting.
Just a few days after my PR was closed and I released LaravelFS, another contributor opened a new PR with almost the exact same idea: allowing custom starter kits in the Laravel installer.
This time, however, the PR was accepted. Taylor even tweeted excitedly about it. 😃
Now, I’m not saying anything… but it does make me wonder: What was different? Same purpose, same need—but a different outcome. 🤷♂️
Conclusion: LaravelFS and Community-Driven Solutions 💡
At the end of the day, LaravelFS exists because developers wanted more control over how they set up their projects. 💪
I don’t hold any hard feelings—maintaining an ecosystem like Laravel isn't easy, and tough decisions have to be made. But this experience was a great reminder that if something gets rejected, that doesn’t mean it’s a bad idea. Sometimes, you just have to build it yourself. 🏗️
LaravelFS is open-source, and I’d love for more people to try it out and contribute! What do you think? Have you felt the impact of Laravel 12’s starter kit changes? Let’s talk about it! 🎤🔥
Top comments (0)