The Emacs package ecosystem is vast — MELPA alone has over 5,000 packages. That’s exciting but also overwhelming. Here are the 10 packages that give you the most value for the least configuration.

1. Vertico

Modern, minimal vertical completion UI. Replaces the default minibuffer completion with something you’d actually want to use.

(use-package vertico
  :ensure t
  :init (vertico-mode))

2. Consult

Search and navigation commands that integrate with Vertico. consult-ripgrep, consult-line, and consult-buffer will change how you navigate code.

(use-package consult
  :ensure t
  :bind (("C-s" . consult-line)
         ("C-x b" . consult-buffer)
         ("M-g g" . consult-goto-line)))

3. Marginalia

Adds helpful annotations next to completion candidates — file sizes, docstrings, keybindings.

(use-package marginalia
  :ensure t
  :init (marginalia-mode))

4. Orderless

Flexible completion matching. Type any part of what you’re looking for in any order.

(use-package orderless
  :ensure t
  :custom (completion-styles '(orderless basic)))

5. Magit

The best Git interface ever made. Not an exaggeration. Once you use Magit, you’ll never want to go back to the command line for Git.

(use-package magit
  :ensure t
  :bind ("C-x g" . magit-status))

6. Org-mode

Technically built-in, but worth mentioning because it’s often why people come to Emacs in the first place. Notes, tasks, literate programming, and more.

7. Which-key

Shows available keybindings in a popup. Essential for discoverability when you’re learning.

(use-package which-key
  :ensure t
  :init (which-key-mode))

8. Corfu

In-buffer completion popup. Fast, minimal, works with Eglot’s LSP completions out of the box.

(use-package corfu
  :ensure t
  :init (global-corfu-mode))

9. Eglot

Built-in LSP client (since Emacs 29). Minimal configuration, just install a language server and go.

;; Eglot is built-in, just hook it up
(add-hook 'python-mode-hook #'eglot-ensure)
(add-hook 'js-mode-hook #'eglot-ensure)
(add-hook 'rust-mode-hook #'eglot-ensure)

10. Doom Themes

Even if you don’t use Doom Emacs, the theme collection is excellent. doom-one and doom-gruvbox are crowd favorites.

(use-package doom-themes
  :ensure t
  :config
  (load-theme 'doom-one t))

Putting It All Together

All of these packages work together harmoniously. Vertico + Consult + Marginalia + Orderless form a completion framework that rivals anything in VS Code, and Magit + Org-mode are the power tools that keep experienced users on Emacs for decades.