Software that today is overwhelmingly prepackaged and usually professional, which I think at this point the nerds should reclaim:
* Podcast apps
* Music listening apps
* Feed readers
* Bluesky clients
* Note-taking apps
* Desktop bookmarking/read-later apps
* Chat and instant messaging
* Time trackers
* Recipe managers
These are all things that you can get better-than-replacement-grade results from Claude on --- not necessarily the best, not necessarily the most globally competitive, but certainly an application more closely tailored to exactly what you want it to do for your own idiosyncratic work style.
Music.app is a miserable experience, and I can just tell as I use it that it's miserable trying to serve me. But Apple long ago factored all the meaningful bits out of Music.app into MusicKit. Why am I still using Music.app? MusicKit is the real product now. This is new.
The common denominator: the data needs to be owned by you, or at least made accessible. Companies love to create walled gardens where they own the content and control how you access it, making this kind of personalized interface impossible. Hopefully we can push back more now.
I mean, hold up, if that thought lights you up I'm happy, but I don't actually think that's the common denominator. I used Things.app to track projects for a long time and ultimately fell out of love with it. Things.app didn't own my data; it's a pure UI app.
But now it occurs to me: I know precisely how I work, I know what patterns are valuable to me, I know when and how I need to remind myself of things. I don't know why I haven't already started building my Things.app replacement. But I'd guess I have it to a place where I'm happy by this time Saturday.
Honestly, it's harder for me to think of daily-driver apps where this wouldn't be the case. I guess vector graphics editing? I'm not going to vibe up a vector editor. But I'll bet all the money in my pocket that 5 years from now, the real value in vector graphics tools will be their API/SDK, not the packaged application experience.
Something like old school Facebook in UI, but functions more like MSN Messenger. You connect to your contacts via P2P, and download/upload updates to your social media network.
An unfinished spreadsheet-based interface for entering time. Meant for consulting, but never got around to persisting the data. Mostly created it because I couldn't stand all the ways that time trackers force users to enter structured time when there's a cute algorithm to handle just about every way a human might naturally enter time.
In the days of LLMs, it would be far easier to categorize ingredients and format them into TeX for publishing as a PDF file. The idea behind this project was to let people essentially copy/paste recipes off the web or scans of handwritten content and autoformat it.
> but certainly an application more closely tailored to exactly what you want it to do for your own idiosyncratic work style.
Yep, I'm doing this all the time. I've been doing it for a year. The silliest on is an IG post previewer. My app is better suited to me than the preview function that Instagram provide itself.
Music apps especially went downhill, spotify and tidal etc need to offer apis so we can integrate several sources in one app. They used to offer much more. I was able to import my library into spotify once (thoigh it could only hold 10k item back then). I want all my music in one place, not 4 apps
I just made a one-shot Android music player because I need a very simple one to listen to tracks to practice drums, and I need to go back from the beginning a lot of time, reduce speed, open them from Whatsapp when my teacher sends them to me and access easily the last 4-5 played.
There was nothing in F-Droid that ticked all the box so I just made my APK.
Many of them have been reclaimed. Check out the "awesome self hosting" GitHub repo.
Podcasts: audiobookshelf
Music: 500 different subsonic clients, many of which are good. Or some fun tuis
Feed readers: lol, more than there are grains of sand in Torvalds' flippers
Note taking: again innumerable, also, just use nvim or emacs of course
Chat: tons of very good self hosted options that can save orgs thousands a month.
Rather than build your own from scratch, rediscovering already solved issues, why not contribute to or fork a FOSS project? LLMs make it easy easier to get up to speed on large projects
Audiobookshelf is a web app! Like, if you had a good TUI music player, I don't think you'd be rebutting my thesis here. I don't doubt anybody's ability to build TUIs.
The point of the post is the emacsification of the native macOS (and Windows, I assume) environment. Totally reasonable not to care that it's occurring, that's not really responsive to the post, is it?
This is so exactly right and I've been saying it to whoever will put up with me...(and now am embarrassed I have no link to show for it. oh well, shame is good for writing. envy too!)
Software production is now so easy that everything is a .emacs file (pronounced "dot emacs" btw): meaning, each individual has their own entirely personal, endlessly customizable software cocoon. As tptacek says in the OP, it's "easier to build your own solution than to install an existing one" - or to learn an existing one.
Another good analogy, not by concidence, is to Lisp in general. The classic knock against it—one I never agreed with but used to hear all the time—is that Lisp with its macros is so malleable that every programmer ends up turning it into their own private language which no one else can read.
There's something about this whole situation that rhymes with the issue of LLM-generated prose. It's not that GPT 5.5 writes bad prose (I mean, it doesn't write good prose, but it's not awful). It's that once I pick up on the text being GPT 5.5's, my brain switches into a mode where it starts reminding me "this is just GPT output, you could just ask GPT 5.5 these questions yourself, and get answers better tailored to what you want to know". Why am I reading this one particular artifact of a conversation with the LLM? Once I know what the conversation is about, I can just have a better one myself.
Same deal with a lot of this software. I guess there's some "taste" to it, but mostly what you care about are the ideas and the "recipe".
Also, you should just do a monthly "Vibe HN" thread.
Those are great points and it leads right back to the solipsism thing. Also, you snuck a "It's not that X, it's that Y." in there. Nice.
> you should just do a monthly "Vibe HN" thread
It wouldn't stop people from feeding them into the Show HN stream, which is the problem. If we had a good enough way to tell them apart, we could factor them into two streams, but we don't yet.
I don't want to make this about people's faith or whatever, but to put it frankly, I've heard a lot of contemporary Christian music, I don't care for it, and [I like to think] I can reliably recognize it in three notes or fewer,¹ which may or may not bear out in rigorous testing, but saves me a lot of time either way. This feels like it parallels strongly with the topic at hand
I highly agree with the pro-Lisp sentiment. The main article that comes to mind while reading this was also posted a little while back on this forum: https://isene.org/2026/05/Audience-of-One.html
> Even more importantly, what happens to teamwork?
I can concur with that thought direction. We used to pair and group-program on my team, we have a "Zoom office". Now it has become "let me take this ticket and feed it to Claude, you try the same thing with Copilot, and then we compare the results", or "I'd make a PR with my clunker, you use yours to review it". This shit honestly feels almost pointless. The pair-programming is absolutely dead. Who wants to watch me run several agents, trying to fix multiple things in different work-trees, while I'm juggling them around and fixing inconsistencies in my agents.md?
I've been pushing the idea of building a self-governing, fully autonomous cloud pipelines so we'd stop playing "stupid tokenomy" games, and it seems my management is just quietly trying to "keep it down", because I think there's a simple understanding - the moment that shit proves airworthy and actually can fly, a bunch of them are guaranteed to lose their cushy seats.
> Even more importantly, what happens to teamwork? If we are all a BBM now—or rather, if we all have personal armies of BBMs, permanently locked in a manic state, springloaded at all hours to generate things for us-and-only-us—how do we work together? How do cocoons communicate, interoperate? What does a team of ai solipsists look like? It sounds oxymoronic.
One example of teamwork is how the programmers and researchers worked together to build the UNIX SYSTEM (https://www.cs.dartmouth.edu/~doug/reader.pdf). It is not a product but an environment optimized for building tools and solving practical problems with tools written in C (while BBMs were busy with Lisp in Boston .;-)
C++ is a totally different story and you need an IDE for that.
If WASM succeeded in being the one universal ABI, it could be the perfect successor to the unix pipe for the AI age. Wasm modules for libraries, that double as terminal tools.. One could only imagine
I would add to that a few more open questions that I haven't seen addressed:
- As more engineers (and non-engineers) pick up coding agents, everyone is authenticating multiple MCPs, creating an n * n explosion of complexity that is impossible to centralise. Multiply this by the number of distinct coding agents for every platform and visibility is very tough. A lot of platforms also don't support scopes so you can't enforce safety short of a network proxy I suppose
- For non-developers mainly, lacking mental models such as <agent> for Y desktop app does not imply that there is a local LLM running on your machine. I suppose it's a question of trust and education versus starting conservative and progressively onboarding where we're more of the former.
- We talk a bit about the idea of sharing prompts but that fundamentally a prompt does not in itself contain quality. I've had internal tools I've made where it's mentioned that Claude made it when I mean, yes to a degree but I did many iterations using my own taste to refine things and held opinions about how things should operate. Giving someone a prompt won't inherently guarantee anything of quality. I often think about the idea of ie; give a screenshot of Github to an LLM but in a way, you're saying to create a clone, not of what exists today but is a dead echo of the design taste and choices made years ago that persist today. You can create things cheaply but without taste and good judgment, how can you continue to evolve it in a way that isn't like that draw the rest of the horse meme.
- I personally wonder about tokenmaxxing stories you hear about from other companies and like, logically what happens to glue roles? Does someone like a Microsoft just stack rank on token count and fire those who actually get work done? I suppose they already hollow out knowledge anyway so maybe it's nothing new.
- Definitely the thing with internal tooling where eventually you generate so much that you fundamentally have no mental model. It's fine for non-critical stuff and I'm kind of coming around to the idea that it's actually a better position to have no idea of the code and a strong "theory" of how a thing should work than it is to fully understand the code and have zero "theory". Ideally both of course.
Anyway, this isn't a comprehensive ramble but I've also been a bit disappointed that there hasn't been more talk about the second order effects. Many things can be true at once where you can see value in LLMs while still being critical of them and the whole DC situation ie; Colossus 1 etc.
Tarver's piece was new to me, and fun, and spot on. Yes, LLMs bring the emacs cruft heap to the masses. A throwaway culture on disk is a lot less worrisome than one on soil.
Maybe it’s just another cocoon but I’ve been working on a framework for modular CLIs which allow different humans or agents to spin different features simultaneously but with some enforcement of shared dictionary, aliases, help, logging, formatting, semantic parsing, a few other things.
It works, it’s powerful, and certainly one way to answer the question you pose. I would argue it’s the optimal answer, it’s an answer to RPC, REST, and MCP at the same time, but it’s definitely an example of an answer and approach. In any case it is a good question and something I’ve given a lot of thought to.
Unfortunately in the age we’re in now there’s something lackluster in sharing any solution or design you have. Though the architecture and design of what I’m describing came 0% from AI everything is assumed to be and therefore unimportant? But it is the direct answer to your question so if anyone’s curious lmk.
I've absolutely engaged in making personal software [0] thanks to the age of LLMs.
But to be honest, my time using Emacs didn't teach me to "build personal software". My Emacs set up was extremely brittle, and it was a nightmare when I tried to use it across Windows & macOS. My university project was written using an unholy combination of org-mode & some workflow to create a beautiful LaTeX file, and I couldn't tell you how to recompile it (if I were to try, I'd probably get an LLM to literally translate it to LaTeX).
I want my life to have as little maintenance as possible, and making my own software for everything isn't always compatible with that.
Paralleling Linux and MacOS is pretty simple, but the last time I tried to make the same config work properly in Windows it was a nightmare b/c of the path issues.
> I want my life to have as little maintenance as possible
I honestly can't even relate to what that even means. I'm a programmer - my everyday job is all about changing the behavior of computer systems - local, remote, cloud, embedded, etc. Requirements change, scope fluctuates, problem space evolves - grows and shrinks, accretion is unavoidable. I need to routinely move between language stacks, different data types, formats, CLI and web tools, protocols, paradigms, OSS and proprietary apps.
That means I have to constantly adapt, my control plane has to keep up with the flux. Automation is key - you must develop a mentality for that - every little annoyance can be and shall be automated. That is an endless, non-stop transformation of my workflow - continuous maintenance of my tooling. But that is not some toilsome, reactive maintenance.
Thinking that you're a programmer that doesn't want to constantly build software for your own sake is a delusion - it's like a cook that hopes to turn on the stove only in the restaurant, but won't touch a knife at home.
Emacs is the cook's home kitchen. I'd say there are two kinds of maintenance: reactive (fixing breakage, keeping up with churn) versus generative (shaping tools to match your evolving understanding). Programmers instinctively dislike the first and should be drawn to the second. Emacs is almost uniquely suited to generative maintenance because the tool and the work share the same substrate.
I get your complaint about Emacs specifically, it's a common: "too much work to set up", which usually means: "I don't want to invest before I get value", which honestly is not wise, strategic thinking. Treating Emacs as the universal tool for minimizing total maintenance burden over a career, over a lifetime is.
I think your analogy breaks down because lots of people don't program "anything and everything". I can relate to being considered quite an expert in certain programming domains among my peers, but there being all kinds of potential programming around me that I just don't find interesting at all.
Programming is also so much broader than something like cooking. It would be like saying that "you make your living manipulating matter, how could you not want to manipulate all that other matter?" to a chef. Their cooking doesn't necessarily make them want to mend clothes, remodel houses, devise new pharmaceuticals, etc.
To summarize: your claim is that choosing to spend your energy on anything other than your emacs setup is a catastrophic failure in terms of ROI, a delusion, and a sort of dereliction of identity as a programmer. My rebuttal: dude, relax.
Less about the capabilities of LLM software, but more about my willingness to spend time to deploy them, debug them, etc.
I don't want to spend time on dealing with change. Hence why I'd rather purchase tools, where I pay for the developer to a) prepare for any maintenance, and b) will perform the maintenance needed.
(Of course, the maintainability of software with current generation LLMs depends a lot on how well your architecture them. I've got pure vibe coded slop, that can be very difficult to wrangle.)
> So LLMs are good enough to make personal software, but not good enough to maintain them?
I mean... yes?
Maintaining software means looking at issues opened on github, keeping your own list of feature requests and bug fixes, deciding if and what to fix, deciding when to fix, and if you're lucky/cursed, reviewing PRs from randos. ANY of this means diverting attention from your day job/client work/kids/???.
Can some of this be theoretically automated by an LLM? Uh, maybe? But I'm not sure how much that would help.
"Personal Software" i.e. programs that one writes for oneself, was the original vision of home computing back in the 1960s. The PC wasn't really anticipated, but the thought was that everyone would have a computer terminal at home, and write programs to do whatever was needed. It was imagined that programming would become easy enough that anyone could learn to do it. We're not there yet but with LLMs we're getting closer.
The road not (yet?) taken is the full flowering of the HyperCards, the Visual Basics, the Macromind Directors and Flashes...
That is, the idea that a non-expert might create interesting software in an authoring environment with good, well-thought-out building blocks and easy-to-grasp metaphors, shorn of layers of accidental or over-engineered complexity.
In this vision software still requires careful logical thinking, but it makes it much less cumbersome to translate that thinking into running code, with no tooling and build system nightmares.
Instead, we've invented such powerful models that they can regurgitate and recombine complex incantations on our behalf. The complexity is still there, though, and it's still inscrutable to non-experts.
But maybe they can help us eliminate some of it?
I think that path is still possible, and it may even nicely complement the LLM world, where LLMs help generate software that individual humans can still easily comprehend and manually modify.
> We're not there yet but with LLMs we're getting closer.
I feel I'm there. Whenever I have a problem I definitely ask "should I vibe code an app for that?"
My current Swift app has 15K LoC (5K in tests, 10K implementation) and it is finished. Like, there are minor improvements now, but it does what it needs to do. It took me 20 hours. I think the actual thing would personally take me 500 hours as I haven't programmed in Swift.
I have told this to many friends who scoff at me, but using a computer is very clearly going to also mean "having the computer create programs for you". We won't even think or know about it.
To me, it isn't a matter of if, and the matter of when is also very clearly in "at most 10 years, probably much, much earlier", given that I have relatives already doing this without knowing how to code.
This is a future of computing I am absolutely in love with, and is so incredibly empowering!
My fears with the situation you are describing is that we end up without a common file format, if everyone has a propietary app and/or file system then that makes transition or collaboration a pain.
We probably won't end there due to how lazy most of us are, but it's certainly something to consider
I feel like I'm way more cynical than most people around here about LLMs but if we accept the parent comment's framing, why can't we just use an LLM to write a throw-away converter to whatever new format is necessary? Yes of course it'll probably be lossy occasionally but the question will be, is that ok for the user doing the conversion?
LLMs are great for problem exploration. Especially with the decline of Google I think we're at a point where it's less difficult to get an LLM to spit out something that'll accomplish a task sorta compared to actually finding that on the internet. But if the task is going to be repeated or modified then I think LLMs are at a permanent disadvantage to prebuilt software. Even if that prebuilt software is just someone else running an LLM and then passing the output through acceptance testing most people just don't want the headache of debugging weird edge cases and the novelty of "I'm a developer too!" wears off pretty quickly.
I'm excited that the weird grey-zone of excel sheets with business critical logic is likely going to disappear as LLMs slowly make the logic driving those too complex to be comprehended and managed and those get foisted off onto actual engineering resources. It'll be painful but probably for the best... but for actual tools people need to use day-to-day I think the assurance that the tool will work has a lot more value than the AI hype has comprehended.
Oddly enough, Google’s LLM is the only one that has been answering my questions well on a research project these last weeks. I’m getting information from scanned text files that exist on the internet but were never adequately OCRed by other LLM companies (i.e. both OCRed at all, and moreover OCRed as the specific language in question that picks up all the diacritics). Google search results may be disappointing and polluted for years, but the company is still offering a useful product in another tab of its interface.
I was looking for a good markdown / file editor on Android available the Play Store on a device where I can't install F-Droid / arbitrary apks, as I had been using https://github.com/gsantner/markor which is not available there. My conclusion was that there's basically none, to the point that it looks like the best solution would be for me to publish a version of it there, just so that I have access to it.
This article hints at what I feel is one of the not-yet-realized transformations that LLM coding brings: can we finally drop Electron/React Native and just have LLMs automate the work of transforming Figma/wireframes and behavior specs into truly native apps for each platform?
For CRUD apps, the API spec and UI mockups -- or even a photo of how it looks on the already coded platform -- would go a long way. That's exactly the kind of well defined task work LLMs do well with. It should be possible to automate a lot of the equivalence testing too.
Is there still an excuse for "maybe we'll add Android someday" or "not enough Mac/Linux users"? And is there still a justification for not building those less-used flows like password reset into the iOS app instead of throwing up random WebViews?
For those apps that do have non-trivial logic on device, LLMs have shown a lot of promise at rewriting to cross-compiling-is-easy languages like Go or Rust.
Yes. You can do that. It works right now. It works really well.
My original spicy take is: why learn SwiftUI at all at this point? It's a skill that, for most tasks, falls into the same kind of bucket as "learning Microsoft Word really, really well". I appreciate people who take the time to do that, but the outcomes are within millimeters of each other whether or not we do that.
I don't think that's true of programming generally. But I think there are languages now where the rationale in specializing in them has gotten, hrm, more complicated.
I’m a SwiftUI developer at $DAY_JOB so maybe biased but while Claude can make things that look right it’s still not exactly perfect. Especially from designs. I used Claude design to mockup a monitoring app for my talos cluster and Claude code totally freestyled it. What should have been as simple as `List { Section(“title”) { … } }` got morphed into whacky DIY `VStack {}.background(.gray)` nonsense.
It looks off and it’s suboptimal performance-wise. It was, I’d say, 80% of a proper SwiftUI app (which is really fantastic given it was basically a one-shot).
Actually knowing SwiftUI meant it was trivial for me to just close out that remaining 20% by hand and have an actually *nice* cross platform (iOS, iPadOS, macOS) app.
I’m sure I could have prompted it to get it done right but without proper knowledge on the subject I wouldnt even know what was wrong and Claude doesn’t do so hot with “that just feels wrong”. Beyond that it was quicker to do it myself, but maybe I just need to prompt better /:
I know the article is mostly about making stand-alone software, but this type of thing is why one of the things I value most when looking workflow tools I will be using heavily is extensibility. I can try put someone's neovim plugin for a second, figure out if it's something I actually need, and if so make my own personal version that matches my mental model perfectly, adds all the dumb little bells I want, and removes all the useful features I don't personally care about. Plus I no longer need to worry nearly as much about supply chain issues.
Over the years I've replaced 90% of the plugins I used when I started. Plus I get a nice outlet from any pesky NIH symptoms.
In all honesty, when you start up emacs for the first time with a blank config, it looks terrible. But then you start building it up with plugins and adding code to support your own quirky workflows and slowly it becomes too powerful in your life to ignore. I have not been able to drop it for 13 straight years. With AI taking over the development experience, emacs and neovim have only become even better, because now you can get AI to bake your custom workflows into the config for you.
Emacs/neovim should be the gold standard for all workflow tools.
I did the same. I started with Doom Emacs and then a year later decided to start from scratch and build the computing environment I wanted. But I think the experience of Doom showed me what was possible, what I liked, and what I really had no need for.
I make small config changes every day and its super fun to use my computer this way. I wish everything was configurable like Emacs.
I wanted to reference some TLA+ community stuff. I was initially just copy-pasting the specs into mine, and that worked well enough, but it was a little tedious and I was kind of afraid I might accidentally forget to give attribution to someone if I used their spec.
So I got Claude to build a TLA+ package manager for me. It's just a basic thing in Rust that allows me to plop a deps.json file into my TLA+ folder, and put a git repo url and commit hash, and then I use tree-sitter-tlaplus [1] to rename the modules to have a basic namespace to avoid collisions. It took about 30 minutes of fighting with Claude, but then it worked fine.
As AI gets better and better and cheaper and cheaper, I suspect it will be easy to have tons of custom apps for everything. It's a brave new world.
Enjoyable article. I've had the same feeling about native software becoming more accessible with the help of llms. However, I tried the app and opened a large-ish markdown file and immediately had scroll hangs and then the app crashed. Making a small proof of concept is easy, but performance and reliability are still hard.
I remember how just 5 years ago the majority of speakers were saying how absolutely everyone should learn computer programming. Already many years ago VBA was built to bridge the gap between engineers and other professions.
Well, the gap is completely closed now, everyone can do what has been talked about for decades: programming computers. And I suspect even markdown will become obsolete very soon, eliminating this very last remnant of what programming used to be.
Maybe it's a good idea for SWEs to consider using LLMs to train themselves into new careers -- just in case.
Most other "knowledge" professions -- by which I mean teaching, programming, some engineering, and the arts -- are even further along into obsolescence. That said, you can still use the knowledge gained in a knowledge profession to convert into a more hands-on profession. We might have a bit longer before humanoid robots destroy all hands-on job opportunities as well. Once that happens, every person will be equally poor and destitute.
This anecdote may be the key to the productivity mystery of LLMs: the output is appearing in the form of software that wasn't ever economical to make before so kind of by definition won't appear in productivity metrics. Though at least in my professional life since we have a configuration control protocol I probably will continue not seeing any impact from AI (for better or worse).
Markdown syntax highlighting is nice, but at this point I’d be very happy if software could just consistently open .md files as plain text.
I have my Obsidian vault synced to Google Drive, and it’s completely impossible to just look at the files in it via the web interface. iOS support is also more than lacking.
> Ehmm, weird, I can't be the only one in the room. You guys didn't know about gfm and gfm-view Emacs modes?
I'm using Emacs since last century and I've got 3 000+ lines of custom Elisp code I wrote (with maybe only a few hundred lines copy/pasta'ed from other configs).
I'm always using a recent Emacs compiled from source and now with LSP, org-mode, Magit, tree-sitter, ivy/avy/counsel/swiper with ripgrep (thanks burntsushi) integration etc.
I had zero frigging idea what gfm and gfm-view for Emacs were.
I know, right? You'd be like "using Emacs like a boss", going with your keyboard "frrrrrrrr" (well, no, that's not Emacs, Emacs would be like "C-c C-c C-c C-c C-x 8 and only then frrrr"), managing entire k8s clusters, building it from the source using most esoteric build options, --with-fries-n-ketchup, and all. And then some jerk comes out of nowhere and tells you about fancy-pangolin-mode that's been sitting quietly in core Emacs since the Prohibition and you're like: "goddammm... I've been using it wrong, my life is meaningless..." :)
We're old people. I mean, an eleven-year-old who opens Emacs becomes old in an instant. We have invented doom-scrolling. We've been going through the M-x menu way before twitter and reddit made it a thing.
Ok, not the article I thought it was going to be. In fact it's the complete opposite of what Emacs means to me. For me, the point of Emacs is that I use one program to do everything. Why would I want a special bit of software just to view Markdown? I can view it in Emacs, and then it works with everything else I do. Developing lots of custom applications, AI assisted or not, is not replacing how I use Emacs.
The point of the article is that the whole gestalt of what you do on a computer is now one big programmable surface, and in that regard everything feels a lot more like Emacs.
It's not "about" Emacs, it's more about the vibe of personalized software in 2026 to someone who does a lot of Emacs stuff.
> whole gestalt of what you do on a computer is now one big programmable surface
Emacs-effect. Use it long enough and everything becomes "one big programmable surface". I've been in that modus operandi for years. Emacs is my "control room", I don't necessarily do everything in Emacs, but for sure it converges all into it - everything flows through Emacs. I control my WM directly from the REPL inside Emacs. I can grab a content from a tab in my browser - I have access to my browser history, and all the tabs, I can switch to any tab, close and re-order them. I can grab a text selection on the page, I can extract entire readable corpus of an article while ignoring all the irrelevant fluff - banners, ads, buttons, etc. It works even for js-rendered content (React, et al.). I play all videos controlling them directly from Emacs - even though the video itself is playing outside, in mpv. I still can pause, change volume, fast forward, speed-up, extract transcript, etc. All without leaving Emacs. That's pretty useful when taking notes. I can grab any text I see on the screen. Even if it's in Slack.app. Why, If I can read it, there's no reason why Emacs shouldn't be able to. I can grab any region on my screen with Flameshot, it goes through Emacs, runs tesseract and OCRs the text out of it. Useful when someone's screen sharing in Zoom. This was all possible before LLMs. Now, LLMs running in Emacs can do some crazy, wild stuff.
Not really the same. Emacs focus a lot on compatibility and common modules (even if there may be some different takes on those common things). So you got big systems like helm, consul, ivy, company,… and the. everyone building on top.
Another thing is configuration (which also ties to the previous statement). You have to be able to split the idea of the program (what it aims to do) and your personal preferences. Emacs make that easy by having a framework for user preferences. That makes for an extendable program.
The closest, but not as user friendly is unix and suckless philosophy combined. Small programs, easy to understand, configure, and extend.
The article provides an analogy, it doesn't tell you to do anything with Emacs in particular.
Besides being an everything app for you, Emacs is an (unconventional) operating system with weak boundaries between user apps. It makes it easy to modify anything, write new things, or combine two existing ones with very little code, something that e.g. Microsoft could have only dreamed of in Office with its awkward embedding that barely worked. Emacs is one the few survivors of the idea that users should program what they need, which was popular during the personal computing revolution in the 80's. Two others are spreadsheets and BASIC.
Programming turned out to be too complex for the untrained users to handle, but AI makes the idea of custom one-off apps or weird hybrids pretty damn close, that is true in practice. I see a lot of people that vibe code their own little things to get things done. That's precisely what BASIC (often shipped in the stock ROM!) was supposed to be used for.
I think that "the number of programs" you're suggesting is arbitrary. It's kind of like calling an operating system one thing, when it's a lot of things. You can "count" the things different ways.
The bigger takeaway is "making your own programming things."
It is rather funny that the article talks about markdown when everyone who uses Emacs uses org mode instead.
My .emacs file is init.el which is actually init.org, which isn't an Emacs file but a literate program that's half a guix installation script and half a regular .emacs file.
Also kill all markdown. Replace it with xml or better yet SXML.
I've always found it easier to collaborate using markdown. It's much more popular than org-mode! And you can get org to export text as markdown, so interop isn't necessarily even all that difficult.
And as per the general theme of the post anyway: whatever. Because you can just work around it, whatever it is, by cobbling together some code, one way or another.
i've made maybe 20 personal LLM tools this year. 3 survived past the first week. not because the rest weren't useful, just wasn't willing to debug them when something broke.
Which is where the "emacsification" analogy breaks for me.
The reason people who like emacs write their one-off program in emacs is that it is an extraordinarily introspectable and debuggable programming environment. There is no "code, compile, run" loop - you just write code against the live running environment. Devoid of that fast feedback loop, writing code just isn't as much fun.
Well taken, but for MANY years, I copied and pasted elisp snippets off stackoverflow without understanding any of it. And to this day, there as many xkcd-style "space heaters" as there are emacs users. OP's point stands that LLMs make possible a new generation of quicker, dirtier hacks destined for the cruft heap.
Not OP:
- One shotted script that I schedule through cron that sends me a message when a new one piece manga chapter releases.
- Also a simple script that moves my cursor one pixel every 30 seconds. Cannot disclose why I need this.
I know, right? Org-mode is soooo much more practical. imenu works great, sparse-trees are awesome, you can edit pretty much any part¹ in an indirect buffer and all. These days I try to consume anything that can be fit into an outline, in org-mode - hackernews², reddit³, slack⁴, jira boards and tickets⁵, wiktionary entries⁶, etc.
Fun anecdote - I once needed to sort some nested items in a big yaml file. After spending three minutes trying to understand sort-regexp-fields (or some other function), I cheated - I ran org-mode, and then org-sort and then went back to yaml-mode. So stupid, yet so brilliant. Why the heck would I ever want to use "first-class IDE" or "intuitive, plebeian editor" if Emacs has anything I could possibly imagine? Right at my fingertips.
Lots of interesting takes that I think I disagree with here, although I mostly write Markdown rather than read it:
> they’re hamstrung by the terminal itself, which is almost always monospaced and thus fatiguing to read.
I recently re-built Blue, a minimalist text editor inspired by the Turbo Pascal and Turbo Basic editors of the late 1990's. It uses a fixed width font, because I prefer it.
Wow, this really changes how I think about working with software and with LLMs. Sharing ideas and amateur remixing and setting up something weird for you and your friends is so much easier now. Things you had to have lots of time and expertise to do before are just widely accessible now.
> What matters are the ideas, the observation that “yeah, you can do that, and it’ll work well”.
>
> For the kinds of software I’m talking about, you want the prompts more than you want the source code.
Right.
In a broad sense, programming is about managing complexity/information. Constructing interfaces/abstractions in order to choose which details are useful for an interface (& which can be ignored).
The 'magical' parts of LLMs is being able to get useful output from unstructured/messy inputs.
It's kindof surprising that this has an impact on programming: it changes a lot ("write me an app that does this" becomes feasible for 'small' things), but in some sense, the fundamental problems remain.
I can’t be the only one for whom `vim README.md` is perfectly good. I’ve never considered the monospaced font a limitation, I prefer it. Coloured rendering works great and is all the visual aid I need to parse quickly.
I can see a table of contents being useful though. Perhaps if `:Toc` doesn’t exist yet, it should.
Unfortunately ~all software stacks in use now lack stability. They are all optimized for commercial software shops where weekly update of dependencies is just the routine.
The "0% product hunt, 100% show and tell" bit is one of the benefits of an ecosystem with painfully high upfront entry costs.
Does anyone know of an active forum of any kind (discord, reddit, phpbb, mailing list, whatever) for people who are building personal applications like this for love of the game, which takes hardline stances about desirable vs undesirable motives and behaviors, and enforces high entry/participation costs in exchange for unusually low quantities of transient grifters and self-interested status seeking by day-old accounts?
If you’re building for the "love of the game", aren’t you unlikely to post an artifact that is produced towards the end of your project and targeted towards a publication (e.g. hacker news)? I recall Mitchell Hashimoto was saying he used to browse GitHub as if it were a social media (which it is) - perhaps that’s your jam.
Merely an example but I would not, one of my gripes with LLMs is the training on general sentiment and trends, so they tend to recommend whatever is popular.
There's a reason we're not reading monospaced here, and a reason we do read monospaced code.
But the beauty of this moment is that if you want a really good SwiftUI monospaced Markdown reader, you can have it before dinner. This is exactly what I'm talking about. You have an idiosyncratic personal preference, and it's now reasonable to expect software to shrink-wrap around that preference.
Generally I just don't appreciate when someone jumps from "I care about this" to "everyone cares about this for obvious reasons." Focus on what something means to you, and being sincere about it. But that is just my advice for writing, take it or leave it.
Also, are browser text area inputs monospaced by default for everyone? Or did I configure that for myself long ago and forget? If it's not just me, maybe the "reasons" you're alluding to are not so obvious. Anyway, I have no trouble at all reading the long comments I type into text areas.
Legacy decisions as a remnant from a time when taking more space on paper cost pages and therefore resources, remaining as a default from centuries of inertia in how text is printed?
Turn off syntax highlighting for your code, translate it to COBOL, and pass it through a formatter that converts it to continuous word-wrapped text. Then we’ll talk again.
There is a real use case for a viewer if you have a lot of formulas. Yes you can read the raw latex but you go cross-eyed after a while. Maybe I am a softie though.
I agree, but I don't think the author of this blog post is coming from that perspective, and markdown renderers of the sort described in the post tend to do pretty poorly with math typesetting.
Nothing personal but I hate this take with a passion, and I literally think it's representative of the worst attitude in computing because it's the literal opposite of software SHOULD BE.
The whole entire point of computers in their best light is changeable software, the whole point should be "let people read how they want to."
It was also the most prominent ecosystem for "software-for-one". Lots of custom-bespoke, "it works for me" packages that were only created for personal use.
Terrible analogy. Emacs has always had comparably fewer major options for packages compared to other tools, there is often an obvious option based on your needs, and it has never been my experience that people decide to just roll their own versions of everything. The author has clearly never used neovim or now pi. NPM packages in general would have also been a way better example.
Edit: Sure there is some small overlap here, but it's really not comparable and definitely not like the way the author describes things. User personalization in Emacs has normally been on a much smaller scale than rewriting entire packages. Configuration is generally smaller tweaks or things on top of existing packages because Emacs provides cohesive extensibility to the point that it often doesn't require "rolling your own." Most packages are already extremely configurable and tailorable. You don't magically get that sort of environment with LLMs. Emacs is much more cooperative/generalized.
The scale and type of custom/personalized software we're seeing now with AI is completely different from how things have been in Emacs. I'm not saying that's a good or bad thing (I think it's both), but it's very different from Emacs and definitely more comparable to something like vim/neovim where (in part just because of the sheer popularity) you constantly have people "rolling their own" packages and a billion versions of everything. Even that is not a great analogy. This is something completely new.
No one mentioned vi, I like neovim just fine, and I'm using pi daily. Nice try though. My only point is that if you want to talk about rewriting everything yourself, NIH, churn, whatever you want to call it, Emacs is absolutely not a great example.
Are we reading the same article? OP is saying LLMs let normies tweak their personal workflows in the same way we emacs nerds had been doing for decades. Contrary to the old saw about it being an OS, Emacs is really just a shell but with lisp as its command language instead of unwieldy bash. Once Claude magicked an English to bash translator, raw shell has caught up to emacs in its ease of use.
The new thing where everyone just vibe codes their own versions of everything is not at all like personalizing Emacs.
Specifically the idea that people generally just ignore existing versions of packages and make their own has never been the case, especially compared to other editors (even VSCode).
> There are popular elisp packages lots of people use. But except for Magit, nerds are alarmingly apt to replace them with their own shinier versions (and then to show them off, transitioning to the spore-forming phase of the elisp lifecycle). Everything in Emacs is malleable.
> Until now, the Achilles heel of Emacs culture has been that, except for Magit, its packages tend to be wretched user experiences. Ugly, slow, and discoverable only after inflicting years of elisp cortical injuries on yourself.
> Suddenly, I realized: a good Markdown viewer was a dumb thing to waste time looking for. It’s 2026. I can just have one extruded for me.
If this is the starting thought, I don't know how you wrap back around to publishing and advertising the generated code.
Either you create the best possible mac markdown viewer and should share it as that, orthogonal to any statement of AI use. Or you're just adding to the noise of tools available online. Where other people should ignore your work, and go slopcode their own markdown viewer.
I read dogleash's comment as emphasising the bad parts of that. If everyone's just sharing their half-baked slop, it becomes harder for people to discover the good programs which are worth using, and harder for those quality programs to get social proof (or good direction).
I love this and I have a handful of tools like this that I built for myself (I had claude write me a TUI crossplane kcl function renderer, for example -- something whose total addressable audience in the world is probably 20 people).
"Content creation for an audience of one" is really the revolutionary change that is happening right now because of AI. Disposable apps, disposable books, disposable movies, disposable music. Things that are made for a single person, used once or a handful of times and then thrown away. The entire economic model of content creation and distribution is going to explode in the next 3 or 4 years, and very few people are prepared for it.
Setting aside the fact that good content is more enjoyable than bad content, experiences are meant to be shared. Humans are a social species, and a very large part of media consumption goes beyond the actual consumption and into sharing that experience with other people. People build communities around the media they like, and even integrate their favorites as part of their identity, wearing branded clothes or cosplay, decorating their rooms with merch, setting wallpapers, and so many other ways to signal what they enjoy to others. "Content creation for one" rather misses how humans work. Heck, not only media but even tools are subject to this -- people legitimately make emacs or vi part of their personality.
> The entire economic model of content creation and distribution is going to explode in the next 3 or 4 years
I think this is also inherently self-contradictory. What's the point of distributing content made for one? This gets into the same fallacy that people engage in w.r.t. "applications for one" displacing software developers. Yes, LLMs can pump out buggy software that suits one person's needs, and it doesn't need to be reliable enough to deploy at scale. It serves real utility here, because there was a gap between "the value of such software" and "what software developers are willing to work for", which meant that this software wasn't being created because there wasn't economic value in it. But then, how does one suppose software that has no economic value is going to replace all the professional software developers who were being paid to produce software that has economic value? LLMs filled a gap software developers weren't being paid to do, but given that they were not paid to do it, their jobs are not contingent on the existence of this niche. It simply doesn't follow that being able to produce content with zero economic value, whether that's applications or content for one, will cause an 'explosion' in the existing economic models.
Software that today is overwhelmingly prepackaged and usually professional, which I think at this point the nerds should reclaim:
* Podcast apps
* Music listening apps
* Feed readers
* Bluesky clients
* Note-taking apps
* Desktop bookmarking/read-later apps
* Chat and instant messaging
* Time trackers
* Recipe managers
These are all things that you can get better-than-replacement-grade results from Claude on --- not necessarily the best, not necessarily the most globally competitive, but certainly an application more closely tailored to exactly what you want it to do for your own idiosyncratic work style.
Music.app is a miserable experience, and I can just tell as I use it that it's miserable trying to serve me. But Apple long ago factored all the meaningful bits out of Music.app into MusicKit. Why am I still using Music.app? MusicKit is the real product now. This is new.
The common denominator: the data needs to be owned by you, or at least made accessible. Companies love to create walled gardens where they own the content and control how you access it, making this kind of personalized interface impossible. Hopefully we can push back more now.
I mean, hold up, if that thought lights you up I'm happy, but I don't actually think that's the common denominator. I used Things.app to track projects for a long time and ultimately fell out of love with it. Things.app didn't own my data; it's a pure UI app.
But now it occurs to me: I know precisely how I work, I know what patterns are valuable to me, I know when and how I need to remind myself of things. I don't know why I haven't already started building my Things.app replacement. But I'd guess I have it to a place where I'm happy by this time Saturday.
Honestly, it's harder for me to think of daily-driver apps where this wouldn't be the case. I guess vector graphics editing? I'm not going to vibe up a vector editor. But I'll bet all the money in my pocket that 5 years from now, the real value in vector graphics tools will be their API/SDK, not the packaged application experience.
4 replies →
I agree that owning the data is ideal:
https://news.ycombinator.com/item?id=48129841
Not necessarily, you can ask the LLM to reverse engineer the protocol.
Our social media should be decentralized and local first, allowing for bespoke clients on any OS.
This is an experiment towards that:
https://github.com/dharmatech/9social
The first client is written for plan9. This keeps the design honest. (If it can run on plan9/rc/acme...)
Video demo:
https://youtu.be/q6qVnlCjcAI
The current implementation is less than 3000 lines of code.
And speaking of Emacs... 9social was heavily inspired by an Emacs project called Org Social:
https://github.com/tanrax/org-social
I love this idea. Thank you for the examples!
I've been thinking of this as well:
Something like old school Facebook in UI, but functions more like MSN Messenger. You connect to your contacts via P2P, and download/upload updates to your social media network.
5 replies →
How to upvote in bold? /j
1 reply →
* Time trackers
https://repo.autonoma.ca/repo/timeivy
An unfinished spreadsheet-based interface for entering time. Meant for consulting, but never got around to persisting the data. Mostly created it because I couldn't stand all the ways that time trackers force users to enter structured time when there's a cute algorithm to handle just about every way a human might naturally enter time.
https://stackoverflow.com/a/49185071/59087
* Recipe managers
https://repo.autonoma.ca/repo/recipe-fiddle
In the days of LLMs, it would be far easier to categorize ingredients and format them into TeX for publishing as a PDF file. The idea behind this project was to let people essentially copy/paste recipes off the web or scans of handwritten content and autoformat it.
> but certainly an application more closely tailored to exactly what you want it to do for your own idiosyncratic work style.
Yep, I'm doing this all the time. I've been doing it for a year. The silliest on is an IG post previewer. My app is better suited to me than the preview function that Instagram provide itself.
Music apps especially went downhill, spotify and tidal etc need to offer apis so we can integrate several sources in one app. They used to offer much more. I was able to import my library into spotify once (thoigh it could only hold 10k item back then). I want all my music in one place, not 4 apps
They don't offer APIs precisely so that you can't integrate several sources in one app.
I just made a one-shot Android music player because I need a very simple one to listen to tracks to practice drums, and I need to go back from the beginning a lot of time, reduce speed, open them from Whatsapp when my teacher sends them to me and access easily the last 4-5 played. There was nothing in F-Droid that ticked all the box so I just made my APK.
I'd add Email to the list.
Email is right there waiting for disruption.
Google wave rides again!
I'd say the thing with email that most improvements would need improved standards?
That said, as with the emacs user example, the ability to automatically process all your email in madly custom ways can now be opened to the masses.
Can you elaborate?
Many of them have been reclaimed. Check out the "awesome self hosting" GitHub repo.
Podcasts: audiobookshelf
Music: 500 different subsonic clients, many of which are good. Or some fun tuis
Feed readers: lol, more than there are grains of sand in Torvalds' flippers
Note taking: again innumerable, also, just use nvim or emacs of course
Chat: tons of very good self hosted options that can save orgs thousands a month.
Rather than build your own from scratch, rediscovering already solved issues, why not contribute to or fork a FOSS project? LLMs make it easy easier to get up to speed on large projects
Audiobookshelf is a web app! Like, if you had a good TUI music player, I don't think you'd be rebutting my thesis here. I don't doubt anybody's ability to build TUIs.
The point of the post is the emacsification of the native macOS (and Windows, I assume) environment. Totally reasonable not to care that it's occurring, that's not really responsive to the post, is it?
1 reply →
This is so exactly right and I've been saying it to whoever will put up with me...(and now am embarrassed I have no link to show for it. oh well, shame is good for writing. envy too!)
Software production is now so easy that everything is a .emacs file (pronounced "dot emacs" btw): meaning, each individual has their own entirely personal, endlessly customizable software cocoon. As tptacek says in the OP, it's "easier to build your own solution than to install an existing one" - or to learn an existing one.
Another good analogy, not by concidence, is to Lisp in general. The classic knock against it—one I never agreed with but used to hear all the time—is that Lisp with its macros is so malleable that every programmer ends up turning it into their own private language which no one else can read.
Tangential to that was Mark Tarver's 2007 piece "The Bipolar Lisp Programmer" which had much discussion over the years (https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6726702
There's something about this whole situation that rhymes with the issue of LLM-generated prose. It's not that GPT 5.5 writes bad prose (I mean, it doesn't write good prose, but it's not awful). It's that once I pick up on the text being GPT 5.5's, my brain switches into a mode where it starts reminding me "this is just GPT output, you could just ask GPT 5.5 these questions yourself, and get answers better tailored to what you want to know". Why am I reading this one particular artifact of a conversation with the LLM? Once I know what the conversation is about, I can just have a better one myself.
Same deal with a lot of this software. I guess there's some "taste" to it, but mostly what you care about are the ideas and the "recipe".
Also, you should just do a monthly "Vibe HN" thread.
Those are great points and it leads right back to the solipsism thing. Also, you snuck a "It's not that X, it's that Y." in there. Nice.
> you should just do a monthly "Vibe HN" thread
It wouldn't stop people from feeding them into the Show HN stream, which is the problem. If we had a good enough way to tell them apart, we could factor them into two streams, but we don't yet.
I don't want to make this about people's faith or whatever, but to put it frankly, I've heard a lot of contemporary Christian music, I don't care for it, and [I like to think] I can reliably recognize it in three notes or fewer,¹ which may or may not bear out in rigorous testing, but saves me a lot of time either way. This feels like it parallels strongly with the topic at hand
1. erring on the side of sounding cooler
I highly agree with the pro-Lisp sentiment. The main article that comes to mind while reading this was also posted a little while back on this forum: https://isene.org/2026/05/Audience-of-One.html
> Even more importantly, what happens to teamwork?
I can concur with that thought direction. We used to pair and group-program on my team, we have a "Zoom office". Now it has become "let me take this ticket and feed it to Claude, you try the same thing with Copilot, and then we compare the results", or "I'd make a PR with my clunker, you use yours to review it". This shit honestly feels almost pointless. The pair-programming is absolutely dead. Who wants to watch me run several agents, trying to fix multiple things in different work-trees, while I'm juggling them around and fixing inconsistencies in my agents.md?
I've been pushing the idea of building a self-governing, fully autonomous cloud pipelines so we'd stop playing "stupid tokenomy" games, and it seems my management is just quietly trying to "keep it down", because I think there's a simple understanding - the moment that shit proves airworthy and actually can fly, a bunch of them are guaranteed to lose their cushy seats.
> Even more importantly, what happens to teamwork? If we are all a BBM now—or rather, if we all have personal armies of BBMs, permanently locked in a manic state, springloaded at all hours to generate things for us-and-only-us—how do we work together? How do cocoons communicate, interoperate? What does a team of ai solipsists look like? It sounds oxymoronic.
One example of teamwork is how the programmers and researchers worked together to build the UNIX SYSTEM (https://www.cs.dartmouth.edu/~doug/reader.pdf). It is not a product but an environment optimized for building tools and solving practical problems with tools written in C (while BBMs were busy with Lisp in Boston .;-)
C++ is a totally different story and you need an IDE for that.
If WASM succeeded in being the one universal ABI, it could be the perfect successor to the unix pipe for the AI age. Wasm modules for libraries, that double as terminal tools.. One could only imagine
I wrote a little bit about my experience with this sort of stuff a little while back if you're interested:
https://news.ycombinator.com/item?id=47393437
I would add to that a few more open questions that I haven't seen addressed:
- As more engineers (and non-engineers) pick up coding agents, everyone is authenticating multiple MCPs, creating an n * n explosion of complexity that is impossible to centralise. Multiply this by the number of distinct coding agents for every platform and visibility is very tough. A lot of platforms also don't support scopes so you can't enforce safety short of a network proxy I suppose
- For non-developers mainly, lacking mental models such as <agent> for Y desktop app does not imply that there is a local LLM running on your machine. I suppose it's a question of trust and education versus starting conservative and progressively onboarding where we're more of the former.
- We talk a bit about the idea of sharing prompts but that fundamentally a prompt does not in itself contain quality. I've had internal tools I've made where it's mentioned that Claude made it when I mean, yes to a degree but I did many iterations using my own taste to refine things and held opinions about how things should operate. Giving someone a prompt won't inherently guarantee anything of quality. I often think about the idea of ie; give a screenshot of Github to an LLM but in a way, you're saying to create a clone, not of what exists today but is a dead echo of the design taste and choices made years ago that persist today. You can create things cheaply but without taste and good judgment, how can you continue to evolve it in a way that isn't like that draw the rest of the horse meme.
- I personally wonder about tokenmaxxing stories you hear about from other companies and like, logically what happens to glue roles? Does someone like a Microsoft just stack rank on token count and fire those who actually get work done? I suppose they already hollow out knowledge anyway so maybe it's nothing new.
- Definitely the thing with internal tooling where eventually you generate so much that you fundamentally have no mental model. It's fine for non-critical stuff and I'm kind of coming around to the idea that it's actually a better position to have no idea of the code and a strong "theory" of how a thing should work than it is to fully understand the code and have zero "theory". Ideally both of course.
Anyway, this isn't a comprehensive ramble but I've also been a bit disappointed that there hasn't been more talk about the second order effects. Many things can be true at once where you can see value in LLMs while still being critical of them and the whole DC situation ie; Colossus 1 etc.
So cool to see a dang comment comment. Rather than moderating comment.
Tarver's piece was new to me, and fun, and spot on. Yes, LLMs bring the emacs cruft heap to the masses. A throwaway culture on disk is a lot less worrisome than one on soil.
> easier to build your own solution than to install an existing one
seriously?
Maybe it’s just another cocoon but I’ve been working on a framework for modular CLIs which allow different humans or agents to spin different features simultaneously but with some enforcement of shared dictionary, aliases, help, logging, formatting, semantic parsing, a few other things.
It works, it’s powerful, and certainly one way to answer the question you pose. I would argue it’s the optimal answer, it’s an answer to RPC, REST, and MCP at the same time, but it’s definitely an example of an answer and approach. In any case it is a good question and something I’ve given a lot of thought to.
Unfortunately in the age we’re in now there’s something lackluster in sharing any solution or design you have. Though the architecture and design of what I’m describing came 0% from AI everything is assumed to be and therefore unimportant? But it is the direct answer to your question so if anyone’s curious lmk.
I've absolutely engaged in making personal software [0] thanks to the age of LLMs.
But to be honest, my time using Emacs didn't teach me to "build personal software". My Emacs set up was extremely brittle, and it was a nightmare when I tried to use it across Windows & macOS. My university project was written using an unholy combination of org-mode & some workflow to create a beautiful LaTeX file, and I couldn't tell you how to recompile it (if I were to try, I'd probably get an LLM to literally translate it to LaTeX).
I want my life to have as little maintenance as possible, and making my own software for everything isn't always compatible with that.
[0]: A rewrite of a NETFX application in Rust, simply because the 20 minute installation time irked me: https://github.com/bevan-philip/wlan-optimizer
Have had the same emacs setup on linux, windows and macos for 15 years. Honestly, it's the best thing in my computing life.
me too! The peace of mind of getting any computer, cloning my config and feel at home.
Paralleling Linux and MacOS is pretty simple, but the last time I tried to make the same config work properly in Windows it was a nightmare b/c of the path issues.
3 replies →
> I want my life to have as little maintenance as possible
I honestly can't even relate to what that even means. I'm a programmer - my everyday job is all about changing the behavior of computer systems - local, remote, cloud, embedded, etc. Requirements change, scope fluctuates, problem space evolves - grows and shrinks, accretion is unavoidable. I need to routinely move between language stacks, different data types, formats, CLI and web tools, protocols, paradigms, OSS and proprietary apps.
That means I have to constantly adapt, my control plane has to keep up with the flux. Automation is key - you must develop a mentality for that - every little annoyance can be and shall be automated. That is an endless, non-stop transformation of my workflow - continuous maintenance of my tooling. But that is not some toilsome, reactive maintenance.
Thinking that you're a programmer that doesn't want to constantly build software for your own sake is a delusion - it's like a cook that hopes to turn on the stove only in the restaurant, but won't touch a knife at home.
Emacs is the cook's home kitchen. I'd say there are two kinds of maintenance: reactive (fixing breakage, keeping up with churn) versus generative (shaping tools to match your evolving understanding). Programmers instinctively dislike the first and should be drawn to the second. Emacs is almost uniquely suited to generative maintenance because the tool and the work share the same substrate.
I get your complaint about Emacs specifically, it's a common: "too much work to set up", which usually means: "I don't want to invest before I get value", which honestly is not wise, strategic thinking. Treating Emacs as the universal tool for minimizing total maintenance burden over a career, over a lifetime is.
I think your analogy breaks down because lots of people don't program "anything and everything". I can relate to being considered quite an expert in certain programming domains among my peers, but there being all kinds of potential programming around me that I just don't find interesting at all.
Programming is also so much broader than something like cooking. It would be like saying that "you make your living manipulating matter, how could you not want to manipulate all that other matter?" to a chef. Their cooking doesn't necessarily make them want to mend clothes, remodel houses, devise new pharmaceuticals, etc.
1 reply →
To summarize: your claim is that choosing to spend your energy on anything other than your emacs setup is a catastrophic failure in terms of ROI, a delusion, and a sort of dereliction of identity as a programmer. My rebuttal: dude, relax.
10 replies →
> I want my life to have as little maintenance as possible, and making my own software for everything isn't always compatible with that.
So LLMs are good enough to make personal software, but not good enough to maintain them?
It's usually easier to build something that maintain it for extended periods of time, particularly if that maintenance requires adding new features.
Less about the capabilities of LLM software, but more about my willingness to spend time to deploy them, debug them, etc.
I don't want to spend time on dealing with change. Hence why I'd rather purchase tools, where I pay for the developer to a) prepare for any maintenance, and b) will perform the maintenance needed.
(Of course, the maintainability of software with current generation LLMs depends a lot on how well your architecture them. I've got pure vibe coded slop, that can be very difficult to wrangle.)
> So LLMs are good enough to make personal software, but not good enough to maintain them?
I mean... yes?
Maintaining software means looking at issues opened on github, keeping your own list of feature requests and bug fixes, deciding if and what to fix, deciding when to fix, and if you're lucky/cursed, reviewing PRs from randos. ANY of this means diverting attention from your day job/client work/kids/???.
Can some of this be theoretically automated by an LLM? Uh, maybe? But I'm not sure how much that would help.
“Those who say they lack time to build tools are precisely the ones who cannot afford not to.”
"Personal Software" i.e. programs that one writes for oneself, was the original vision of home computing back in the 1960s. The PC wasn't really anticipated, but the thought was that everyone would have a computer terminal at home, and write programs to do whatever was needed. It was imagined that programming would become easy enough that anyone could learn to do it. We're not there yet but with LLMs we're getting closer.
The road not (yet?) taken is the full flowering of the HyperCards, the Visual Basics, the Macromind Directors and Flashes...
That is, the idea that a non-expert might create interesting software in an authoring environment with good, well-thought-out building blocks and easy-to-grasp metaphors, shorn of layers of accidental or over-engineered complexity.
In this vision software still requires careful logical thinking, but it makes it much less cumbersome to translate that thinking into running code, with no tooling and build system nightmares.
Instead, we've invented such powerful models that they can regurgitate and recombine complex incantations on our behalf. The complexity is still there, though, and it's still inscrutable to non-experts.
But maybe they can help us eliminate some of it?
I think that path is still possible, and it may even nicely complement the LLM world, where LLMs help generate software that individual humans can still easily comprehend and manually modify.
> We're not there yet but with LLMs we're getting closer.
I feel I'm there. Whenever I have a problem I definitely ask "should I vibe code an app for that?"
My current Swift app has 15K LoC (5K in tests, 10K implementation) and it is finished. Like, there are minor improvements now, but it does what it needs to do. It took me 20 hours. I think the actual thing would personally take me 500 hours as I haven't programmed in Swift.
I have told this to many friends who scoff at me, but using a computer is very clearly going to also mean "having the computer create programs for you". We won't even think or know about it.
To me, it isn't a matter of if, and the matter of when is also very clearly in "at most 10 years, probably much, much earlier", given that I have relatives already doing this without knowing how to code.
This is a future of computing I am absolutely in love with, and is so incredibly empowering!
My fears with the situation you are describing is that we end up without a common file format, if everyone has a propietary app and/or file system then that makes transition or collaboration a pain.
We probably won't end there due to how lazy most of us are, but it's certainly something to consider
I feel like I'm way more cynical than most people around here about LLMs but if we accept the parent comment's framing, why can't we just use an LLM to write a throw-away converter to whatever new format is necessary? Yes of course it'll probably be lossy occasionally but the question will be, is that ok for the user doing the conversion?
That's going to be huge thing in the future I think
Everyone having their own hyperspecific apps or even different UIs/visualization in the same app
The whole idea of an application becomes a much more fluid thing
If your app is built with a dynamic language why not let users re-write the code themself and add whole new features
LLMs are great for problem exploration. Especially with the decline of Google I think we're at a point where it's less difficult to get an LLM to spit out something that'll accomplish a task sorta compared to actually finding that on the internet. But if the task is going to be repeated or modified then I think LLMs are at a permanent disadvantage to prebuilt software. Even if that prebuilt software is just someone else running an LLM and then passing the output through acceptance testing most people just don't want the headache of debugging weird edge cases and the novelty of "I'm a developer too!" wears off pretty quickly.
I'm excited that the weird grey-zone of excel sheets with business critical logic is likely going to disappear as LLMs slowly make the logic driving those too complex to be comprehended and managed and those get foisted off onto actual engineering resources. It'll be painful but probably for the best... but for actual tools people need to use day-to-day I think the assurance that the tool will work has a lot more value than the AI hype has comprehended.
> Especially with the decline of Google
Oddly enough, Google’s LLM is the only one that has been answering my questions well on a research project these last weeks. I’m getting information from scanned text files that exist on the internet but were never adequately OCRed by other LLM companies (i.e. both OCRed at all, and moreover OCRed as the specific language in question that picks up all the diacritics). Google search results may be disappointing and polluted for years, but the company is still offering a useful product in another tab of its interface.
2 replies →
It’s exactly what I use LLMs for as a non-computer professional.
> It was imagined that programming would become easy enough that anyone could learn to do it.
Arguably LLMs take us further away from that than we've ever been. All they do is automate copying and pasting in shit from StackOverflow.
We were closer to everyone being able to learn how to program computers in the mid-80s when everyone had one and they started up with a BASIC prompt.
Ah yes, the 80s, when everyone had a computer.
7 replies →
I was looking for a good markdown / file editor on Android available the Play Store on a device where I can't install F-Droid / arbitrary apks, as I had been using https://github.com/gsantner/markor which is not available there. My conclusion was that there's basically none, to the point that it looks like the best solution would be for me to publish a version of it there, just so that I have access to it.
> For the kinds of software I’m talking about, you want the prompts more than you want the source code.
Please do not do this.
Per OurWorldInData, >50% of the world lives below $10/day in 2026.
A $200/mth AI subscription costs ~66% of that.
Generation costs still exceed distribution costs by a wide margin.
Uploading costs you nothing, and it can help the poor.
> Uploading costs you nothing, and it can help the poor.
Could you expound more on this? Are you suggesting that less energy use in data centers would help the world's poor?
I feel as though the author really missed an opportunity here: "The Emacsulation of Software"
This article hints at what I feel is one of the not-yet-realized transformations that LLM coding brings: can we finally drop Electron/React Native and just have LLMs automate the work of transforming Figma/wireframes and behavior specs into truly native apps for each platform?
For CRUD apps, the API spec and UI mockups -- or even a photo of how it looks on the already coded platform -- would go a long way. That's exactly the kind of well defined task work LLMs do well with. It should be possible to automate a lot of the equivalence testing too.
Is there still an excuse for "maybe we'll add Android someday" or "not enough Mac/Linux users"? And is there still a justification for not building those less-used flows like password reset into the iOS app instead of throwing up random WebViews?
For those apps that do have non-trivial logic on device, LLMs have shown a lot of promise at rewriting to cross-compiling-is-easy languages like Go or Rust.
Yes. You can do that. It works right now. It works really well.
My original spicy take is: why learn SwiftUI at all at this point? It's a skill that, for most tasks, falls into the same kind of bucket as "learning Microsoft Word really, really well". I appreciate people who take the time to do that, but the outcomes are within millimeters of each other whether or not we do that.
I don't think that's true of programming generally. But I think there are languages now where the rationale in specializing in them has gotten, hrm, more complicated.
I’m a SwiftUI developer at $DAY_JOB so maybe biased but while Claude can make things that look right it’s still not exactly perfect. Especially from designs. I used Claude design to mockup a monitoring app for my talos cluster and Claude code totally freestyled it. What should have been as simple as `List { Section(“title”) { … } }` got morphed into whacky DIY `VStack {}.background(.gray)` nonsense.
It looks off and it’s suboptimal performance-wise. It was, I’d say, 80% of a proper SwiftUI app (which is really fantastic given it was basically a one-shot).
Actually knowing SwiftUI meant it was trivial for me to just close out that remaining 20% by hand and have an actually *nice* cross platform (iOS, iPadOS, macOS) app.
I’m sure I could have prompted it to get it done right but without proper knowledge on the subject I wouldnt even know what was wrong and Claude doesn’t do so hot with “that just feels wrong”. Beyond that it was quicker to do it myself, but maybe I just need to prompt better /:
1 reply →
I know the article is mostly about making stand-alone software, but this type of thing is why one of the things I value most when looking workflow tools I will be using heavily is extensibility. I can try put someone's neovim plugin for a second, figure out if it's something I actually need, and if so make my own personal version that matches my mental model perfectly, adds all the dumb little bells I want, and removes all the useful features I don't personally care about. Plus I no longer need to worry nearly as much about supply chain issues.
Over the years I've replaced 90% of the plugins I used when I started. Plus I get a nice outlet from any pesky NIH symptoms.
I'm the same.
In all honesty, when you start up emacs for the first time with a blank config, it looks terrible. But then you start building it up with plugins and adding code to support your own quirky workflows and slowly it becomes too powerful in your life to ignore. I have not been able to drop it for 13 straight years. With AI taking over the development experience, emacs and neovim have only become even better, because now you can get AI to bake your custom workflows into the config for you.
Emacs/neovim should be the gold standard for all workflow tools.
I did the same. I started with Doom Emacs and then a year later decided to start from scratch and build the computing environment I wanted. But I think the experience of Doom showed me what was possible, what I liked, and what I really had no need for.
I make small config changes every day and its super fun to use my computer this way. I wish everything was configurable like Emacs.
1 reply →
I've done some similar stuff.
I wanted to reference some TLA+ community stuff. I was initially just copy-pasting the specs into mine, and that worked well enough, but it was a little tedious and I was kind of afraid I might accidentally forget to give attribution to someone if I used their spec.
So I got Claude to build a TLA+ package manager for me. It's just a basic thing in Rust that allows me to plop a deps.json file into my TLA+ folder, and put a git repo url and commit hash, and then I use tree-sitter-tlaplus [1] to rename the modules to have a basic namespace to avoid collisions. It took about 30 minutes of fighting with Claude, but then it worked fine.
As AI gets better and better and cheaper and cheaper, I suspect it will be easy to have tons of custom apps for everything. It's a brave new world.
[1] https://github.com/tlaplus-community/tree-sitter-tlaplus
Enjoyable article. I've had the same feeling about native software becoming more accessible with the help of llms. However, I tried the app and opened a large-ish markdown file and immediately had scroll hangs and then the app crashed. Making a small proof of concept is easy, but performance and reliability are still hard.
edit: typo
Had somewhat related thoughts on this here: https://news.ycombinator.com/item?id=48035796 (Most vibe-coded tools are not for you)
I remember how just 5 years ago the majority of speakers were saying how absolutely everyone should learn computer programming. Already many years ago VBA was built to bridge the gap between engineers and other professions. Well, the gap is completely closed now, everyone can do what has been talked about for decades: programming computers. And I suspect even markdown will become obsolete very soon, eliminating this very last remnant of what programming used to be.
Maybe it's a good idea for SWEs to consider using LLMs to train themselves into new careers -- just in case.
Most other "knowledge" professions -- by which I mean teaching, programming, some engineering, and the arts -- are even further along into obsolescence. That said, you can still use the knowledge gained in a knowledge profession to convert into a more hands-on profession. We might have a bit longer before humanoid robots destroy all hands-on job opportunities as well. Once that happens, every person will be equally poor and destitute.
This anecdote may be the key to the productivity mystery of LLMs: the output is appearing in the form of software that wasn't ever economical to make before so kind of by definition won't appear in productivity metrics. Though at least in my professional life since we have a configuration control protocol I probably will continue not seeing any impact from AI (for better or worse).
"the terminal itself, which is almost always monospaced and thus fatiguing to read"
It is? Why? I read monospaced text all day long. I don't find it fatiguing in the least. In fact, I think I might prefer it to non-monospaced text.
Markdown syntax highlighting is nice, but at this point I’d be very happy if software could just consistently open .md files as plain text.
I have my Obsidian vault synced to Google Drive, and it’s completely impossible to just look at the files in it via the web interface. iOS support is also more than lacking.
Ehmm, weird, I can't be the only one in the room. You guys didn't know about gfm and gfm-view Emacs modes?
> Ehmm, weird, I can't be the only one in the room. You guys didn't know about gfm and gfm-view Emacs modes?
I'm using Emacs since last century and I've got 3 000+ lines of custom Elisp code I wrote (with maybe only a few hundred lines copy/pasta'ed from other configs).
I'm always using a recent Emacs compiled from source and now with LSP, org-mode, Magit, tree-sitter, ivy/avy/counsel/swiper with ripgrep (thanks burntsushi) integration etc.
I had zero frigging idea what gfm and gfm-view for Emacs were.
But I'll look into it now!
I know, right? You'd be like "using Emacs like a boss", going with your keyboard "frrrrrrrr" (well, no, that's not Emacs, Emacs would be like "C-c C-c C-c C-c C-x 8 and only then frrrr"), managing entire k8s clusters, building it from the source using most esoteric build options, --with-fries-n-ketchup, and all. And then some jerk comes out of nowhere and tells you about fancy-pangolin-mode that's been sitting quietly in core Emacs since the Prohibition and you're like: "goddammm... I've been using it wrong, my life is meaningless..." :) We're old people. I mean, an eleven-year-old who opens Emacs becomes old in an instant. We have invented doom-scrolling. We've been going through the M-x menu way before twitter and reddit made it a thing.
Ok, not the article I thought it was going to be. In fact it's the complete opposite of what Emacs means to me. For me, the point of Emacs is that I use one program to do everything. Why would I want a special bit of software just to view Markdown? I can view it in Emacs, and then it works with everything else I do. Developing lots of custom applications, AI assisted or not, is not replacing how I use Emacs.
The point of the article is that the whole gestalt of what you do on a computer is now one big programmable surface, and in that regard everything feels a lot more like Emacs.
It's not "about" Emacs, it's more about the vibe of personalized software in 2026 to someone who does a lot of Emacs stuff.
> whole gestalt of what you do on a computer is now one big programmable surface
Emacs-effect. Use it long enough and everything becomes "one big programmable surface". I've been in that modus operandi for years. Emacs is my "control room", I don't necessarily do everything in Emacs, but for sure it converges all into it - everything flows through Emacs. I control my WM directly from the REPL inside Emacs. I can grab a content from a tab in my browser - I have access to my browser history, and all the tabs, I can switch to any tab, close and re-order them. I can grab a text selection on the page, I can extract entire readable corpus of an article while ignoring all the irrelevant fluff - banners, ads, buttons, etc. It works even for js-rendered content (React, et al.). I play all videos controlling them directly from Emacs - even though the video itself is playing outside, in mpv. I still can pause, change volume, fast forward, speed-up, extract transcript, etc. All without leaving Emacs. That's pretty useful when taking notes. I can grab any text I see on the screen. Even if it's in Slack.app. Why, If I can read it, there's no reason why Emacs shouldn't be able to. I can grab any region on my screen with Flameshot, it goes through Emacs, runs tesseract and OCRs the text out of it. Useful when someone's screen sharing in Zoom. This was all possible before LLMs. Now, LLMs running in Emacs can do some crazy, wild stuff.
1 reply →
Sure, but it misses interoperability, which is the point of Emacs for me. That's my point.
Not really the same. Emacs focus a lot on compatibility and common modules (even if there may be some different takes on those common things). So you got big systems like helm, consul, ivy, company,… and the. everyone building on top.
Another thing is configuration (which also ties to the previous statement). You have to be able to split the idea of the program (what it aims to do) and your personal preferences. Emacs make that easy by having a framework for user preferences. That makes for an extendable program.
The closest, but not as user friendly is unix and suckless philosophy combined. Small programs, easy to understand, configure, and extend.
2 replies →
The article provides an analogy, it doesn't tell you to do anything with Emacs in particular.
Besides being an everything app for you, Emacs is an (unconventional) operating system with weak boundaries between user apps. It makes it easy to modify anything, write new things, or combine two existing ones with very little code, something that e.g. Microsoft could have only dreamed of in Office with its awkward embedding that barely worked. Emacs is one the few survivors of the idea that users should program what they need, which was popular during the personal computing revolution in the 80's. Two others are spreadsheets and BASIC.
Programming turned out to be too complex for the untrained users to handle, but AI makes the idea of custom one-off apps or weird hybrids pretty damn close, that is true in practice. I see a lot of people that vibe code their own little things to get things done. That's precisely what BASIC (often shipped in the stock ROM!) was supposed to be used for.
Same thing, actually, I think.
I think that "the number of programs" you're suggesting is arbitrary. It's kind of like calling an operating system one thing, when it's a lot of things. You can "count" the things different ways.
The bigger takeaway is "making your own programming things."
It is rather funny that the article talks about markdown when everyone who uses Emacs uses org mode instead.
My .emacs file is init.el which is actually init.org, which isn't an Emacs file but a literate program that's half a guix installation script and half a regular .emacs file.
Also kill all markdown. Replace it with xml or better yet SXML.
I've always found it easier to collaborate using markdown. It's much more popular than org-mode! And you can get org to export text as markdown, so interop isn't necessarily even all that difficult.
And as per the general theme of the post anyway: whatever. Because you can just work around it, whatever it is, by cobbling together some code, one way or another.
i've made maybe 20 personal LLM tools this year. 3 survived past the first week. not because the rest weren't useful, just wasn't willing to debug them when something broke.
Which is where the "emacsification" analogy breaks for me.
The reason people who like emacs write their one-off program in emacs is that it is an extraordinarily introspectable and debuggable programming environment. There is no "code, compile, run" loop - you just write code against the live running environment. Devoid of that fast feedback loop, writing code just isn't as much fun.
Well taken, but for MANY years, I copied and pasted elisp snippets off stackoverflow without understanding any of it. And to this day, there as many xkcd-style "space heaters" as there are emacs users. OP's point stands that LLMs make possible a new generation of quicker, dirtier hacks destined for the cruft heap.
What were the three?
Not OP: - One shotted script that I schedule through cron that sends me a message when a new one piece manga chapter releases. - Also a simple script that moves my cursor one pixel every 30 seconds. Cannot disclose why I need this.
1 reply →
Interesting article.
When my Emacs opens a markdown file it immediately converts it into OrgMode format. I find that more readable, more navigable and more editable.
Now I'll have to go and meditate about Emacsification.
I know, right? Org-mode is soooo much more practical. imenu works great, sparse-trees are awesome, you can edit pretty much any part¹ in an indirect buffer and all. These days I try to consume anything that can be fit into an outline, in org-mode - hackernews², reddit³, slack⁴, jira boards and tickets⁵, wiktionary entries⁶, etc.
Fun anecdote - I once needed to sort some nested items in a big yaml file. After spending three minutes trying to understand sort-regexp-fields (or some other function), I cheated - I ran org-mode, and then org-sort and then went back to yaml-mode. So stupid, yet so brilliant. Why the heck would I ever want to use "first-class IDE" or "intuitive, plebeian editor" if Emacs has anything I could possibly imagine? Right at my fingertips.
___
¹ https://github.com/agzam/org-edit-indirect.el
² https://github.com/thanhvg/emacs-hnreader/
³ https://github.com/thanhvg/emacs-reddigg
⁴ https://github.com/agzam/slacko.el
⁵ https://github.com/agzam/go-jira.el
⁶ https://github.com/agzam/wiktionary-bro.el
Lots of interesting takes that I think I disagree with here, although I mostly write Markdown rather than read it:
> they’re hamstrung by the terminal itself, which is almost always monospaced and thus fatiguing to read.
I recently re-built Blue, a minimalist text editor inspired by the Turbo Pascal and Turbo Basic editors of the late 1990's. It uses a fixed width font, because I prefer it.
https://github.com/codazoda/blue
Wow, this really changes how I think about working with software and with LLMs. Sharing ideas and amateur remixing and setting up something weird for you and your friends is so much easier now. Things you had to have lots of time and expertise to do before are just widely accessible now.
> What matters are the ideas, the observation that “yeah, you can do that, and it’ll work well”. > > For the kinds of software I’m talking about, you want the prompts more than you want the source code.
Right.
In a broad sense, programming is about managing complexity/information. Constructing interfaces/abstractions in order to choose which details are useful for an interface (& which can be ignored).
The 'magical' parts of LLMs is being able to get useful output from unstructured/messy inputs.
It's kindof surprising that this has an impact on programming: it changes a lot ("write me an app that does this" becomes feasible for 'small' things), but in some sense, the fundamental problems remain.
I can’t be the only one for whom `vim README.md` is perfectly good. I’ve never considered the monospaced font a limitation, I prefer it. Coloured rendering works great and is all the visual aid I need to parse quickly.
I can see a table of contents being useful though. Perhaps if `:Toc` doesn’t exist yet, it should.
markdown tables are the only thing that's really rough to read, IMO
Unfortunately ~all software stacks in use now lack stability. They are all optimized for commercial software shops where weekly update of dependencies is just the routine.
Any good md viewer and open to customize some formatting to pdf?
emacs + pandoc
Prescriptions include lisinopril 20 mg, amlodipine 2.5 mg, metformin 500 mg, and aspirin 81 mg.
I agree, experience this, love it, etc.
The "0% product hunt, 100% show and tell" bit is one of the benefits of an ecosystem with painfully high upfront entry costs.
Does anyone know of an active forum of any kind (discord, reddit, phpbb, mailing list, whatever) for people who are building personal applications like this for love of the game, which takes hardline stances about desirable vs undesirable motives and behaviors, and enforces high entry/participation costs in exchange for unusually low quantities of transient grifters and self-interested status seeking by day-old accounts?
If you’re building for the "love of the game", aren’t you unlikely to post an artifact that is produced towards the end of your project and targeted towards a publication (e.g. hacker news)? I recall Mitchell Hashimoto was saying he used to browse GitHub as if it were a social media (which it is) - perhaps that’s your jam.
Speaking of which, Emacs’es markdown-mode is pretty good. :^)
Emacs is an editor! God help you if you do something to my computer where when I click on a Markdown file something changes in my Emacs window setup.
The barrier to entry for writing personalized software is lower, but you still need expertise for instruction and maintenance.
I don’t think we’re at the point where any random stranger on the street can get Claude to make a perfect Electron app for their use case.
If you were building it for yourself would you ever chose Electron?
Merely an example but I would not, one of my gripes with LLMs is the training on general sentiment and trends, so they tend to recommend whatever is popular.
This is an article about nerds writing nerd software.
> You want a good Markdown viewer more than you think you do.
> monospaced and thus fatiguing to read.
Monospaced text is fine. I don't see how people who read code (and code comments) all day care that strongly about this. Plaintext is king
There's a reason we're not reading monospaced here, and a reason we do read monospaced code.
But the beauty of this moment is that if you want a really good SwiftUI monospaced Markdown reader, you can have it before dinner. This is exactly what I'm talking about. You have an idiosyncratic personal preference, and it's now reasonable to expect software to shrink-wrap around that preference.
Generally I just don't appreciate when someone jumps from "I care about this" to "everyone cares about this for obvious reasons." Focus on what something means to you, and being sincere about it. But that is just my advice for writing, take it or leave it.
Also, are browser text area inputs monospaced by default for everyone? Or did I configure that for myself long ago and forget? If it's not just me, maybe the "reasons" you're alluding to are not so obvious. Anyway, I have no trouble at all reading the long comments I type into text areas.
And more power to people for embracing agency :)
There's a reason we're not reading monospaced here
You underestimate the number of HN users who are reading this site in their terminal. ;-)
3 replies →
> a reason we're not reading monospaced here
Legacy decisions as a remnant from a time when taking more space on paper cost pages and therefore resources, remaining as a default from centuries of inertia in how text is printed?
4 replies →
There's limited research on readability of monospaced font. But this study suggests monospace is weakly more readable than variable-width font:
https://dl.acm.org/doi/epdf/10.1145/2897736
Surprised that Monaspace hasn't been mentioned below.
https://monaspace.githubnext.com/
Turn off syntax highlighting for your code, translate it to COBOL, and pass it through a formatter that converts it to continuous word-wrapped text. Then we’ll talk again.
I have written multiple books entirely in LaTeX edited with neovim. So... your point is not taken.
2 replies →
There is a real use case for a viewer if you have a lot of formulas. Yes you can read the raw latex but you go cross-eyed after a while. Maybe I am a softie though.
I agree, but I don't think the author of this blog post is coming from that perspective, and markdown renderers of the sort described in the post tend to do pretty poorly with math typesetting.
The dislike of code per se is what drives these people to use agents in the first place.
Nothing personal but I hate this take with a passion, and I literally think it's representative of the worst attitude in computing because it's the literal opposite of software SHOULD BE.
The whole entire point of computers in their best light is changeable software, the whole point should be "let people read how they want to."
I know this is a bit beside the point of the article, but I also got sick of reading markdown on a terminal...
So I asked my agent to write typst, ran "typst watch", and now I can look at a nice pdf file. it even auto-refreshes when the clanker changes it.
Emacs was the first vibe-coding.
It was also the most prominent ecosystem for "software-for-one". Lots of custom-bespoke, "it works for me" packages that were only created for personal use.
I came here to recommend Marked: https://marked2app.com
But...I like MDV.
I just use Silverbulletmd...
Terrible analogy. Emacs has always had comparably fewer major options for packages compared to other tools, there is often an obvious option based on your needs, and it has never been my experience that people decide to just roll their own versions of everything. The author has clearly never used neovim or now pi. NPM packages in general would have also been a way better example.
Edit: Sure there is some small overlap here, but it's really not comparable and definitely not like the way the author describes things. User personalization in Emacs has normally been on a much smaller scale than rewriting entire packages. Configuration is generally smaller tweaks or things on top of existing packages because Emacs provides cohesive extensibility to the point that it often doesn't require "rolling your own." Most packages are already extremely configurable and tailorable. You don't magically get that sort of environment with LLMs. Emacs is much more cooperative/generalized.
The scale and type of custom/personalized software we're seeing now with AI is completely different from how things have been in Emacs. I'm not saying that's a good or bad thing (I think it's both), but it's very different from Emacs and definitely more comparable to something like vim/neovim where (in part just because of the sheer popularity) you constantly have people "rolling their own" packages and a billion versions of everything. Even that is not a great analogy. This is something completely new.
Seriously, your idea here is maybe you can start an Emacs vs. vi fight in the comment threads?
No one mentioned vi, I like neovim just fine, and I'm using pi daily. Nice try though. My only point is that if you want to talk about rewriting everything yourself, NIH, churn, whatever you want to call it, Emacs is absolutely not a great example.
Are we reading the same article? OP is saying LLMs let normies tweak their personal workflows in the same way we emacs nerds had been doing for decades. Contrary to the old saw about it being an OS, Emacs is really just a shell but with lisp as its command language instead of unwieldy bash. Once Claude magicked an English to bash translator, raw shell has caught up to emacs in its ease of use.
The new thing where everyone just vibe codes their own versions of everything is not at all like personalizing Emacs.
Specifically the idea that people generally just ignore existing versions of packages and make their own has never been the case, especially compared to other editors (even VSCode).
> There are popular elisp packages lots of people use. But except for Magit, nerds are alarmingly apt to replace them with their own shinier versions (and then to show them off, transitioning to the spore-forming phase of the elisp lifecycle). Everything in Emacs is malleable.
> Until now, the Achilles heel of Emacs culture has been that, except for Magit, its packages tend to be wretched user experiences. Ugly, slow, and discoverable only after inflicting years of elisp cortical injuries on yourself.
> Suddenly, I realized: a good Markdown viewer was a dumb thing to waste time looking for. It’s 2026. I can just have one extruded for me.
If this is the starting thought, I don't know how you wrap back around to publishing and advertising the generated code.
Either you create the best possible mac markdown viewer and should share it as that, orthogonal to any statement of AI use. Or you're just adding to the noise of tools available online. Where other people should ignore your work, and go slopcode their own markdown viewer.
The post talks about this.
The post talks about it as a good thing.
"With LLMs you can just make your own".
I read dogleash's comment as emphasising the bad parts of that. If everyone's just sharing their half-baked slop, it becomes harder for people to discover the good programs which are worth using, and harder for those quality programs to get social proof (or good direction).
I love this and I have a handful of tools like this that I built for myself (I had claude write me a TUI crossplane kcl function renderer, for example -- something whose total addressable audience in the world is probably 20 people).
"Content creation for an audience of one" is really the revolutionary change that is happening right now because of AI. Disposable apps, disposable books, disposable movies, disposable music. Things that are made for a single person, used once or a handful of times and then thrown away. The entire economic model of content creation and distribution is going to explode in the next 3 or 4 years, and very few people are prepared for it.
Setting aside the fact that good content is more enjoyable than bad content, experiences are meant to be shared. Humans are a social species, and a very large part of media consumption goes beyond the actual consumption and into sharing that experience with other people. People build communities around the media they like, and even integrate their favorites as part of their identity, wearing branded clothes or cosplay, decorating their rooms with merch, setting wallpapers, and so many other ways to signal what they enjoy to others. "Content creation for one" rather misses how humans work. Heck, not only media but even tools are subject to this -- people legitimately make emacs or vi part of their personality.
> The entire economic model of content creation and distribution is going to explode in the next 3 or 4 years
I think this is also inherently self-contradictory. What's the point of distributing content made for one? This gets into the same fallacy that people engage in w.r.t. "applications for one" displacing software developers. Yes, LLMs can pump out buggy software that suits one person's needs, and it doesn't need to be reliable enough to deploy at scale. It serves real utility here, because there was a gap between "the value of such software" and "what software developers are willing to work for", which meant that this software wasn't being created because there wasn't economic value in it. But then, how does one suppose software that has no economic value is going to replace all the professional software developers who were being paid to produce software that has economic value? LLMs filled a gap software developers weren't being paid to do, but given that they were not paid to do it, their jobs are not contingent on the existence of this niche. It simply doesn't follow that being able to produce content with zero economic value, whether that's applications or content for one, will cause an 'explosion' in the existing economic models.
I'm with you on purpose-built disposable tools, but who wants to read a disposable book, or watch a disposable movie?
Not me. I'm enthralled by what this moment promises for building software, but I'm yicked out the same way everyone else is by generative art.
Very cool read, kudos
whoosh goes the point of Markdown over some youngster's heads
[flagged]
[dead]
[flagged]
[dead]
No, I don't. I don't want anything that has to do with John Gruber, ever.
I suggest you switch to Org mode, then :-)
Curios. What are you responding to?
Markdown is a Gruber thing.
2 replies →