Emacs Discoverability
July 19, 2025

One of the most distasteful things I find when looking at the Microsoft Visual Studio Code or the IntelliJ plugin ecosystem is the star rating system of the extensions. While I get the reasoning behind such a system, like allowing newcomers to the ecosystem find and install packages they need, from the looks of it, it just seems like a place for users to vent their frustration. It doesn’t help that such a system can be easily gamed as most rating systems are.

So for example, I can understand a five star review meaning “I’m a happy user.” What about a four star review though? Is the user occasionally encountering some minor bugs? Or is there a feature the user really wants but is otherwise happy? In these cases wouldn’t submitting an issue request or bug report make more sense? Or maybe you could even fix the bug or implement the feature yourself.

It seems pretty obvious why the star ratings were added: the extension marketplace was probably intended to be an actual marketplace to sell extensions (apparently there are paid extensions). With the vast majority of plugins being open-source projects, having a marketplace/commercial veneer would seem to be Microsoft’s way of asserting whatever control it can on its ecosystem.

The Emacs ecosystem, despite being extremely rich, doesn’t have a centralized marketplace. ELPA and MELPA exist but their primary utility is not really for discovery (e.g. no “featured” package section). Moreover, Emacs users seem much more likely to host their projects on forges other than Github, making the lack of centralization even starker. Despite this fact, Emacs users seem to be doing just fine, if not even thriving. Obviously systems like ELPA and MELPA help, but I would bet that more often than not Emacs users get their recommendations by word of mouth and organic, community-driven resources.

The lack of a centralized marketplace has the effect of pushing the user more to the community than they otherwise would be: they may even have to ask other humans for their particular needs. Also, this system primes users for learning and action: a fact attested by the abnormally high percentage of users contributing to the ecosystem. The 2022 Emacs survey found that 90% of the respondents could write Emacs Lisp and a large percent maintain packages.

Packages included in Emacs seem to be discovered in a similar manner: word of mouth, social media posts, reading the manual. It’s even a meme that in conversations where Emacs comes up, someone learns something new.

All this being said, I wonder if there would be value in more resources aimed at discovery. There was the excellent podcast Discovering Emacs which I very much enjoyed, but which came to an end. I feel that community coordination (in terms of which packages exist, are being worked on, or could use feature/maintenance work) could end up being a force multiplier for the community at large. Sacha Chua has done a lot of work on this topic and this blog post has a lot of good ideas. It’s an aspiration goal of mine to contribute more to the Emacs community. I’ve been playing with ideas like starting a podcast, writing a book, or even creating some sort of discoverability/coordination online tool. At the very least I hope this blog post will be a good start!

Discovery Resources

I can’t finish this post without providing discovery resources myself. The following are places I usually go to discover new packages and features of Emacs.

Also, here is a list of maybe some lesser known packages which I’ve found to be helpful:

verb

link: https://github.com/federicotdn/verb

I rely on this package extensively at work. We have a number of micro-services and instead of using a tool like Postman (which has gone deep into the enshitification phase), I have an org-mode file for each service with a document of common or important requests being made. I also wrote some Elisp functions to handle all the auth stuff and to allow me to easily run the request as a desired user. This is a game-changing package for me. I should write a post just on my usage of verb.

git-timemachine

link: https://github.com/emacsmirror/git-timemachine

I find myself using this package a decent amount. It allows me to easily view the history of a given file. Nothing crazy, but I definitely find this useful.

link: https://github.com/sshaw/git-link

This is one of those packages that maybe saves me only a few seconds, but I use it so much that it definitely adds up. After I finish up a set of work, I use this package to navigate to the repository to finalize the work and set the pull request up.

org-pomodoro

link: https://github.com/marcinkoziej/org-pomodoro

This small package has played a key role in my productivity system. I’m planning a post on my usage of org-mode as a whole, but I found this package to be the perfect way to incorporate the pomodoro productivity technique into org-mode.

turkish-mode

link: https://github.com/emres/turkish-mode

I often find myself in situations where I’m writing Turkish. Turkish has quite a bit non-ascii characters in its alphabet like ș, ğ, ı, and ç. Instead of changing my input mode, I can activate turkish-mode and any word I write will have its characters automatically converted to the correct variant (e.g.kaplumbaga → kaplumbağa).

super-save

link: https://github.com/bbatsov/super-save

I’ve had this package installed since first starting using Emacs (via prelude) and has become an integral part of my mental model on using Emacs. When enabled, it saves the buffer each time Emacs loses focus or you switch buffers.