finds.dev← search

// the find

folke/lazy.nvim

★ 21,208 · Lua · Apache-2.0 · updated Jun 2026

💤 A modern plugin manager for Neovim

lazy.nvim is the de facto plugin manager for Neovim, having largely displaced packer.nvim. It handles installation, lazy-loading, dependency ordering, lockfiles, and bytecode caching — the full lifecycle. If you're configuring Neovim from scratch in 2024, this is what you reach for first.

The lazy-loading system is genuinely well-thought-out: you can trigger loads on events, filetypes, commands, or keymaps without writing boilerplate. The lockfile (lazy-lock.json) makes your plugin state reproducible across machines, which packer never managed cleanly. Bytecode compilation of Lua modules at startup measurably cuts load times on large configs. The built-in profiler (`:Lazy profile`) tells you exactly which plugin is costing you milliseconds, which is rare in this space.

The configuration API has grown complex enough that first-timers often cargo-cult specs from other people's dotfiles without understanding what `event`, `ft`, `cmd`, and `keys` actually do — and the error messages when you get it wrong aren't always helpful. Rockspec support via luarocks is bolted on and finicky; it works until it doesn't, and debugging luarocks failures inside Neovim is unpleasant. The community specs layer (`lua/lazy/community/`) is an interesting idea but still thin — it hasn't become the shared config library it could be. Migrating a large existing config from packer or vim-plug is a manual process; there's no migration tool.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →