Setting up a code editor for Laravel development can be time-consuming. After switching to Zed - the lightning-fast editor from Atom's creators - I spent weeks configuring it perfectly for Laravel.
Today, I'm open-sourcing that configuration as Zed for Laravel - a one-command installer that sets up everything you need.
π€ What's Zed?
If you haven't heard of Zed yet, it's a high-performance code editor built in Rust with:
- β‘ Blazing fast performance - noticeably faster than VS Code
- π€ Built-in multiplayer - collaborate like in Google Docs
- π― Minimal & focused - less bloat, more productivity
- π Free & open-source
Perfect for Laravel development once properly configured.
π― The Problem
When I first tried Zed for Laravel, I hit several roadblocks:
- Laravel Pint wouldn't format on save
- No Laravel snippets out of the box
- Blade syntax needed configuration
- Artisan commands required manual terminal work
- Extensions had to be found and installed individually
Each issue took hours to solve. So I packaged all solutions into a single installer.
β¨ Features
π¨ Dual Theme System
Choose your visual experience during installation:
Default (One Dark)
- Clean, familiar colors
- Standard syntax highlighting
- Great for getting started
Catppuccin blur (Custom)
- 30+ syntax overrides optimized for PHP/Laravel
- Bold keywords for quick scanning
- Italic types for elegant distinction
- Bright green functions (Laravel helpers pop!)
- Reduced eye strain for long sessions
π 130+ Smart Snippets
PHP Snippets (50+)
// route + Tab
Route::get('uri', [Controller::class, 'method'])->name('name');
// model + Tab
class ModelName extends Model
{
use HasFactory;
protected $fillable = ['name'];
}
// hasMany + Tab
public function posts()
{
return $this->hasMany(Post::class);
}
// request + Tab
class StoreUserRequest extends FormRequest
{
public function rules(): array
{
return ['field' => 'required|string|max:255'];
}
}
Full list: controllers, models, migrations, factories, tests, policies, jobs, events, listeners, middleware, seeders, and more.
Blade Snippets (40+)
<!-- @foreach + Tab -->
@foreach ($items as $item)
{{ $item->name }}
@endforeach
<!-- component + Tab -->
<x-alert :type="success">
Message here
</x-alert>
<!-- @auth + Tab -->
@auth
<p>Welcome, {{ auth()->user()->name }}</p>
@endauth
All Blade directives included: @if
, @forelse
, @switch
, @extends
, @section
, @include
, @can
, @error
, and more.
Livewire 3 Snippets (30+)
// livewire-component + Tab
class ComponentName extends Component
{
public $property;
public function render()
{
return view('livewire.component-name');
}
}
// livewire-validate + Tab
#[Validate('required|string|max:255')]
public string $email = '';
// livewire-on + Tab
#[On('user-updated')]
public function handleUserUpdate($userId)
{
// Handle event
}
Full Livewire 3 support with properties, lifecycle hooks, events, wire directives, computed properties, and forms.
β‘ Laravel Pint Integration
Automatic code formatting on every save. The kit uses a reliable bash wrapper:
{
"formatter": {
"external": {
"command": "bash",
"arguments": [
"-c",
"cat > {buffer_path} && ./vendor/bin/pint --quiet {buffer_path} && cat {buffer_path}"
]
}
}
}
Respects your project's pint.json
configuration and Laravel coding standards.
π§ 25 Artisan Tasks
Press Cmd/Ctrl + Shift + T
to access:
Development:
- Artisan Serve
- Artisan Tinker
- Artisan Route List
- Artisan Queue Work
Database:
- Artisan Migrate
- Artisan Migrate Fresh (with seeding)
- Artisan Migrate Rollback
Testing:
- PHPUnit (all tests)
- PHPUnit (current file)
- PHPUnit (parallel)
- PHPUnit (with coverage)
- Pest (all tests)
Code Quality:
- Pint Format (all files)
- Pint Format (dirty files only)
- Pint Test (check without formatting)
Frontend:
- NPM Dev (Vite)
- NPM Build (production)
Dependencies:
- Composer Install
- Composer Update
- Composer Dump Autoload
π Auto-Installing Extensions
Four essential extensions install automatically on first launch:
- PHP - Full language server support
- Laravel Blade - Template syntax highlighting
- Env - .env file syntax support
- Tailwind CSS - IntelliSense for Tailwind classes
No manual searching or clicking required.
β¨οΈ Optimized Keybindings
Laravel-friendly keyboard shortcuts:
Shortcut | Action |
---|---|
Cmd/Ctrl + Shift + I |
Format with Pint |
Cmd/Ctrl + Shift + T |
Run Artisan task |
Cmd/Ctrl + T |
Toggle terminal |
Cmd/Ctrl + Shift + P |
Command palette |
Cmd/Ctrl + B |
Toggle sidebar |
All familiar shortcuts that feel natural.
π Installation
Quick Install
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/croustibat/zed-for-laravel/main/scripts/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/croustibat/zed-for-laravel/main/scripts/install.ps1 | iex
What Happens
- β Backs up your existing Zed configuration
- π¨ Prompts you to choose a theme (Default or Dracula Pro)
- π Installs all configuration files
- π Installs 130+ snippets
- β‘ Configures Laravel Pint
- π§ Sets up Artisan tasks
- π Queues extensions for auto-install
Time: ~30 seconds
Restart Zed and you're ready to code!
Manual Installation
Prefer doing it manually? Full instructions in the installation guide.
π Complete Documentation
The kit includes comprehensive guides:
- Installation Guide - Quick start and troubleshooting
- Features Overview - Detailed feature breakdown
- Configuration Guide - Customization options
- Extensions Guide - Managing extensions
- Theme Guide - Theme comparison and customization
π‘ Why I Built This
After years with VS Code, I wanted something faster. Zed's performance is incredible, but the Laravel setup was fragmented across GitHub issues, forums, and documentation.
I wanted a single source of truth - one command that sets up everything perfectly.
π― Perfect For
- Laravel developers wanting to try Zed
- Zed users starting Laravel development
- Development teams needing consistent setup
- Anyone tired of slow editors or complex configuration
πΊοΈ Roadmap
Planning future releases:
v1.1 - Extended snippets
- Pest-specific snippets
- Inertia.js (Vue/React)
- API Resource snippets
v1.2 - More themes
- Nord (arctic calm)
- Gruvbox (retro groove)
- Tokyo Night (cyberpunk)
v2.0 - Advanced features
- Laravel Pint config generator
- Project scaffolding templates
- Team sync features
π€ Contributing
This is an open-source project and contributions are welcome!
GitHub: https://github.com/croustibat/zed-for-laravel
Ways to contribute:
- β Star the repository
- π Report bugs or issues
- π‘ Suggest features
- π€ Submit pull requests
- π Improve documentation
- π¬ Help others in discussions
π Getting Started
Ready to try it? Here's a quick start:
# 1. Install Zed for Laravel
curl -fsSL https://raw.githubusercontent.com/croustibat/zed-for-laravel/main/scripts/install.sh | bash
# 2. Choose your theme (I recommend Dracula Pro for Laravel)
# 3. Restart Zed
# 4. Open your Laravel project
# 5. Try a snippet: type 'route' and press Tab
# 6. Save a PHP file to see Pint auto-format
# 7. Press Cmd+Shift+T to run Artisan commands
That's it! You're configured for Laravel development.
π Links
- GitHub: https://github.com/croustibat/zed-for-laravel
- Zed Editor: https://zed.dev
- Laravel: https://laravel.com
- Laravel Pint: https://laravel.com/docs/pint
π Acknowledgments
Thanks to:
- The Zed team for creating an amazing editor
- The Laravel community for feedback and inspiration
- Catppuccin theme creators for the beautiful color scheme
- All contributors who help improve the project
π Final Thoughts
Switching editors is always a bit scary. Will I lose productivity? Will I miss features?
With Zed for Laravel, the transition is smooth. Everything works on day one. The speed improvement alone makes it worth trying.
Give it a shot! If it's not for you, uninstalling is just deleting ~/.config/zed/
. No commitment, no vendor lock-in.
Happy coding! π
What editor do you use for Laravel development? Have you tried Zed? Let me know in the comments!
Tags: #laravel #php #zed #productivity #webdev #opensource #developer #coding
Top comments (1)
Is it correct that I didn't see debug configuration?