March 9, 2026
Built‑in or bust?
Two Years of Emacs Solo: 35 Modules, Zero External Packages, and a Full Refactor
No add‑ons, no mercy: one Emacs rebel sparks awe, envy, and “masochist” memes
TLDR: A solo dev hit two years running Emacs with no add‑ons and split their setup into clean “core vs extras.” The comments swung from admiration and code‑stealing plans to “masochist” jokes and debates over built‑in vs add‑on code helpers like Eglot for C++, spotlighting a tug‑of‑war between control and convenience.
Two years, 35 home‑built tools, and not a single add‑on: the creator of “Emacs Solo” just refactored their setup into two layers—core tweaks in one file and homemade extras in another—so anyone can copy the pieces they like without chasing dependencies. For the uninitiated, Emacs is a power‑user text editor; this dev vowed to rely on only what ships with it or code they wrote themselves.
The crowd reaction? Equal parts slow clap and side‑eye. One fan cheered the honesty—“I wrote it, I understand it”—praising the zen of owning your tools. Another called the project a “paragon of masochism”… then admitted they were jealous. A third confessed they’ll “steal some lisp,” because who doesn’t love legally borrowing genius? Meanwhile, a practical debate flared: can built‑in Eglot (Emacs’s native code helper) keep up with third‑party LSP tools for C++? Translation: does the simpler, baked‑in option match the fancier add‑on for code hints and navigation? Cue a thread about the Language Server Protocol and C++ headaches.
And for dessert, a naming meltdown: “Why are we so bad at naming things?” Users joked about “DIY Emacs speedruns,” the “no‑MELPA monk,” and survivalist coding. Love it or laugh at it, the community agrees on one thing: this is peak “if you want it done right, do it yourself.”
Key Points
- •Emacs Solo reaches two years with a strict “no external packages” policy, relying only on core Emacs and custom Elisp.
- •A major refactor split the configuration into two layers: init.el for core settings and lisp/ for self-contained modules.
- •init.el configures only built-in packages using use-package with :ensure nil and is organized with outline-mode.
- •The lisp/ directory contains 35 custom modules, each a provide/require Elisp file loaded via load-path and require.
- •The separation improves maintainability, clarity between core vs. custom code, and ease of reuse and sharing.