Sitemap

Why I Stopped Using Laravel Sail…

3 min readMay 18, 2025

--

As a Laravel developer working across multiple projects at once, I initially loved how easy Sail made it to spin up a Docker environment. But the more projects I added, the more issues I ran into.

Eventually, I had to ditch Sail for something faster, leaner, and easier to manage — especially when dealing with 5+ projects at the same time.

Here’s why, and what I built instead.

The Problem With Laravel Sail in Multi-Project Workflows

Sail is great for a single Laravel project. But if you’re working on several simultaneously or switching between them frequently, it starts to get painful.

1. High Resource Usage

Every Sail project launches its own set of containers (MySQL, Redis, etc.). That means:

  • More RAM and CPU usage
  • Conflicts unless you manually set different ports in each .env
  • Constant up/down switching between projects

2. It Eats Disk Space

Each project builds its own Docker image. Over time, this eats up disk space fast.

Just recently, I ran:

docker system prune

And freed up 45GB of disk space — mostly from old Sail images and volumes.

3. It’s Slow

Every new project rebuilds everything from scratch, even if your environments are nearly identical.

🔍 I Looked for Alternatives

I explored tools like:

  • Herd
  • Laravel Valet
  • Longhorn

But:

  • Most are Mac-only
  • Some are paid
  • Others are too limited for Docker-based workflows

I wanted something:

  • Lightweight
  • Cross-platform
  • Docker-native
  • Centralized and reusable across all projects

✅ Introducing Larasaur

Since I couldn’t find what I wanted, I built it myself.

🔗 Larasaur GitHub Repo

Larasaur is a minimal Docker dev environment that supports all your Laravel projects from a single shared setup. You save time, resources, and disk space.

📦 Folder Structure

Here’s what your directory structure could look like:

~/projects/
├── dev-env/ ← Larasaur lives here
├── x/
│ ├── a-laravel/
│ └── b-laravel/
├── y/
│ ├── c-laravel/
│ └── v-laravel/
└── z/
├── h-old-laravel/
└── b-new-laravel/

🚀 Getting Started

  1. Clone the repo :
git clone https://github.com/mohaphez/larasaur.git ~/projects/larasaur
cd ~/projects/larasaur
bash install-dev-shortcuts.sh
  1. Start the shared environment:
up
  1. Add a Laravel project:
cd ~/projects/x/a-laravel
addsite

This creates a local Nginx config and sets up a .local domain like:

http://a-laravel.local
  1. Done! Now just run addsite for every new project, followed by restart if needed.

🙌 Why Larasaur Works Better

  • ✅ Centralized Docker environment
  • ✅ One-time image build — no duplicate containers
  • ✅ Minimal disk usage
  • ✅ Works with any Laravel version
  • ✅ No need to install PHP/MySQL/Redis locally

Now, I only use Sail when a project requires a custom stack (like PHP 7.4 or other unique needs).

🔚 Final Thoughts

If you’re tired of Sail draining your system and duplicating setups, Larasaur might be exactly what you need.

It’s simple. It’s fast. And it just works.

🧪 Open-source, free, and built from real-world pain.

Let me know in the comments if you try it — or if you have ideas to improve it!

--

--

Hessam.T
Hessam.T

Written by Hessam.T

Full stack developer and software engineer passionate about web development, constantly seeking to expand knowledge and skills

No responses yet