A two-year retrospective on Emacs Solo, a daily-driver Emacs configuration that uses zero external packages. The project recently underwent a major architectural refactor splitting the config into two layers: init.el for configuring built-in Emacs features only, and a lisp/ directory containing 35 self-contained custom modules. These modules reimplement popular packages like ace-window, olivetti, diff-hl, eldoc-box, and others in small, understandable Elisp files. The post walks through every section of init.el, describes all 35 modules, previews upcoming Emacs 31 features that will simplify the config, and shares lessons learned about Emacs's built-in capabilities, Elisp development, and contributing upstream.
Table of contents
The Refactor: Core vs. ExtrasThe Core: What init.el ConfiguresThe Extras: 35 Self-Contained ModulesEmacs 31: Looking ForwardWhat I've LearnedConclusionAcknowledgementsSort: