Doom Emacs: Configuration framework for GNU Emacs
Modular framework with lazy loading and vim keybindings.
Learn more about doomemacs
Doom Emacs is a configuration framework built on top of GNU Emacs that provides an opinionated, performance-oriented foundation for text editing and development. It implements a modular architecture where functionality is organized into discrete modules that can be selectively enabled, with package dependencies automatically resolved through a declarative configuration system. The framework employs aggressive lazy-loading strategies and deferred initialization techniques to minimize startup time, loading most packages and their configurations only when explicitly needed rather than at launch. It integrates evil-mode as its default modal editing layer to provide Vim-style keybindings and motion commands, while maintaining compatibility with traditional Emacs workflows. The system uses a custom package management layer that wraps the native package.el and extends it with additional caching, compilation optimizations, and reproducible build capabilities.
Declarative package management
Uses straight.el to manage packages declaratively with support for pinning to specific commits and installing from non-ELPA sources. Configuration can be rolled back to previous releases and is designed to be reproducible across systems.
Modular organizational structure
Separates configuration concerns into modules that can be independently enabled or disabled. Includes a standard library of elisp utilities to reduce boilerplate in custom configurations.
Evil-mode integration
Provides optional vim emulation with ports of popular vim plugins including vim-sneak, vim-easymotion, and vim-unimpaired. Uses a Spacemacs-style leader key keybinding scheme adaptable to both vim and vanilla Emacs users.
;; ~/.doom.d/init.el
(doom! :input
:completion
(company +childframe)
(vertico +icons)
:lang
(javascript +lsp)
(python +lsp +pyright)
json
markdown
:tools
magit
lookup)Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
pino
Low-overhead streaming JSON logger for Node.js.
json-server
Zero-config REST API server from JSON files.
grafana
Query and visualize metrics from multiple data sources.
excalidraw
React canvas library with encrypted collaborative drawing.
qr-scanner
Webcam and image QR detection with native API fallback.