Skip to content

Latest commit

 

History

History
124 lines (83 loc) · 7.9 KB

File metadata and controls

124 lines (83 loc) · 7.9 KB

Setting up Zed: A thoughtful checklist

Moving from PHPStorm (slow and frustrating) to Zed (fast and simple)

Why this matters

When you ask someone how they set up their editor, "I just asked AI" doesn't help anyone. We need actual steps we can follow and understand. This is that checklist.

The checklist for Zed

First impressions (does it pass the basics?)

  • Can you create a new file with Cmd+N? — Yes! Unlike VSCode, this just works.
  • Is the UI calm by default? — Pretty good, but you'll want to turn off some panels.
  • Can you split panes easily? — Yes, Cmd+K then arrow direction.
  • Does file search work fast? — Blazing fast. Cmd+P just works.
  • Does zoom only affect code? — YES! Finally. Cmd+Plus/Minus zooms only the code pane.

Core functionality check

  • Turn off AI/copilot nonsense — Settings → Assistant → Disable. No mysteries.
  • Set your tab width — It's in settings as JSON (good!). Use real tabs so everyone can display them at their preferred width.
  • Multi-cursor with Cmd+D — Works exactly like Sublime. This is crucial.
  • Command palette with Cmd+Shift+P — Yes, everything's there.
  • Project-wide search that ignores vendor/node_modules — Built-in, automatic. Cmd+Shift+F.

PHP development needs

  • PHP syntax highlighting — Works out of the box.
  • Can you navigate to definitions? — Yes, but you'll need to install Intelephense [1].
  • Does it handle includes/requires? — It'll syntax highlight them and you can open the files, but it won't auto-complete paths or warn you if a file doesn't exist like PHPStorm does. You'll type the paths yourself (which honestly makes you more aware of your file structure).
  • Can you search without waiting? — Instant. No indexing delays like PHPStorm.

Team collaboration setup

  • Can you share settings? — It's just JSON files (~/.config/zed/settings.json). Perfect for git.
  • EditorConfig support? — Yes, respects .editorconfig files.
  • Prettier integration? — You can add it, but it's manual trigger (good!).
  • Can you turn OFF format on save? — Yes, this is important.

What you're giving up (and why it's OK)

  • Integrated terminal — Not built in. Use a dedicated terminal like iTerm or Hyper. This is actually better. (we only use Hyper because it zooms better and works better for our videos)
  • Complex refactoring — PHPStorm wins here, but how often do you really use it?
  • Database browser — Use TablePlus or phpMyAdmin.
  • Git integration — Basic only. Use Tower or command line.
  • Debugging — External setup required. Worth it for the speed.

The reality check

  • Does it start in under 2 seconds? — Yes, usually under 1 second.
  • Can you work without waiting for indexing? — Yes, no "please wait" dialogs.
  • Does it use less than 500MB RAM? — Yes, usually 200-400MB vs PHPStorm's 2-4GB.
  • Can you explain every setting? — Yes, it's just JSON. No magic.

The verdict

If you can check most of these boxes, Zed is ready to replace PHPStorm for your daily work. You lose some IDE magic, but you gain:

  1. Speed — Everything is instant
  2. Simplicity — Settings you can understand
  3. Focus — No distractions, just code
  4. Reliability — It doesn't crash or slow down over time

Most importantly: your coworker who "just asked AI" to set it up? Now you can both follow the same checklist and get the same result. That's the whole point.

Laravel + Inertia/Vue development needs

Once you move past basic Laravel into Inertia/Vue territory, you need your editor to understand multiple languages in the same project:

The new requirements

  • Vue single-file components (.vue files) — Does it understand template/script/style blocks?
  • TypeScript support — If you're using TS (you probably should be).
  • Import path resolution — Can it understand @/Components/Button.vue imports?
  • Tailwind CSS intellisense — Autocomplete for class names (or turn it off if it annoys you).
  • Vue template syntax highlighting — Does it understand v-for, :prop, @click?
  • Component prop validation — Will it warn you if you pass wrong props? (Probably need Volar [2])

What actually matters for Inertia

  • Can you jump between Laravel routes and Vue pages? — Not automatically like PHPStorm's Inertia plugin, but search is fast enough.
  • Does it understand Inertia's page props? — Basic TypeScript will help here if you type your props.
  • Can you navigate from Blade to Vue components? — Manual search, but it's instant.

Reality check for full-stack Laravel/Vue

  • Will it be as smart as PHPStorm + Vue plugin? — No. PHPStorm understands the whole stack deeply.
  • Is it fast enough to make up for it? — Yes. Search and switch between files instantly.
  • Can you work effectively? — Yes, if you know your codebase structure.
  • What's the learning curve? — You'll rely more on search and less on "magic" navigation.

The trade-off: You lose some IDE intelligence but gain speed and simplicity. For many developers, being able to search and edit without waiting is worth more than perfect autocompletion.

Things only PHPStorm can really do

Let's be honest about what you're giving up. These are things PHPStorm does that lightweight editors like Zed, Sublime, or VSCode struggle with or can't do at all:

PHP debugging with Xdebug

  • Step-through debugging — Set breakpoints, step line by line, inspect variables. PHPStorm makes this easy with zero config. Other editors need complex setup and it rarely works smoothly.
  • Conditional breakpoints — "Only stop here if $user->id === 5". PHPStorm just does it.
  • Debug remote servers — Debug production issues with SSH tunnels. PHPStorm has this built-in.
  • Evaluate expressions on the fly — Change variable values while stopped at a breakpoint.

Deep code intelligence

  • Refactoring that actually works — Rename a class and it updates everywhere including string references in config files. Other editors will miss spots.
  • Understanding Laravel magic — PHPStorm knows that User::find() returns a User model. It understands facades, service containers, Eloquent relationships.
  • Database integration — Write SQL, see results, autocomplete table/column names, all without leaving the editor.
  • Smart duplicates detection — Finds duplicate code blocks across your entire project.
  • Code generation — Generate getters/setters, implement interfaces, override methods with correct signatures.

The question to ask yourself

Do you actually use these features? Be honest. If you're doing dd() debugging and rarely refactoring, you might not need them. If you're debugging complex issues daily and doing major refactors, stick with PHPStorm.

Most developers use 20% of PHPStorm's features. If you're in that camp, Zed's speed might be worth more than features you never touch.

Notes

[1] Language Server (LSP) — A language server is a separate program that understands code structure for a specific language. It runs in the background and tells your editor things like "this function is defined in that file" or "this variable has this type" or "you have an error here." Think of it as a brain that understands the language, while the editor just displays text. PHPStorm has all this built-in (which is why it's huge and slow). Zed lets you add only the language servers you need — Intelephense for PHP, typescript-language-server for JS/TS, rust-analyzer for Rust, etc. This keeps Zed fast and simple.

[2] Volar — The Vue language server. Like Intelephense but for Vue files. Understands Vue's template syntax, props, emits, etc. You'd install this to get smart Vue support in Zed.