Why I Keep Blogging With Emacs Every time the author sees a simple static site generator for blogs, they feel tempted to build their own: a blogging engine about 2,000 lines of code that they could fully understand, extend, and share. Instead, they use Emacs’ Org mode and its standard publishing functions to export articles to HTML. Although this process can be brittle and opaque—even the author doesn't fully understand what happens when they run the export command—the convenience is hard to give up. The Complexity Behind Org Publishing Org's HTML export involves thousands of lines of Emacs Lisp code: ox-html.el (HTML exporting): ~5,000 lines ox-publish.el and ox.el (general export framework): ~8,000 lines org-element.el (Org parsing): ~9,000 lines Total complexity exceeds 20,000 lines, making custom exploration or rewriting daunting. The Key Feature: Babel Integration Unlike other lightweight markups, Org through Babel can execute embedded code blocks on export. It runs code in many languages, enabling: Inline code execution producing output (tables, images) directly in the final document. Session management allowing code reuse across blocks. Variable injection between markup and code. Org generates inline styles, eliminating the need for JavaScript syntax highlighters. The author mainly uses Babel with R for plotting, merging data, visuals, and text drafting simultaneously, which is an invaluable convenience. The Trade-Off Building a simple 2,000 line static blog engine would be a fun project. Recreating Babel-like features would stretch into months of work, impractical given limited time. Hence, despite complexity and occasional confusion, the author sticks with Emacs and Org mode for their blogging. --- If you enjoyed this insight into the author's workflow, you can support their writing by buying them a coffee. They credit their wife for invaluable support and welcome comments via email or subscription for updates on Entropic Thoughts.