10 ms·
Perfect Software – Software for an Audience of One
- tidderjail2 9mo agoI feel the same, I'm now building more side projects with the help of AI even if they're only for me
- prof-dr-ir 9mo ago[flagged]
- m_w_ 9mo agoI don't understand this comment at all - it's very obviously written about personal experience with development, doesn't read like it was written with AI, and the sentiment is nice. Sure, the projects mentioned aren't the most impressive pieces of software ever written, but isn't that kind of the point of the article?
- stronglikedan 9mo ago> I don't understand this comment at all It's the new way of attempting to be an edgelord, so we'll see quite a bit of it for a while, unfortunately. It doesn't have to be accurate or relevant.
- jesse__ 9mo agoBy the authors definition, I've been writing perfect software for over a decade. It's never required LLMs. In fact, I think the idea that "LLMs allow us to write software for ourselves" borders on missing the point, for me at least. I write software for myself because I like the exploratory process .. figuring out how do do something such that it works with as little friction as possible from the side of the user; who is of course myself, in the future. I like nitpicking the details, getting totally side-tracked on seemingly frivolous minutiae. Frequently enough, coming to the end of a month long yak-shave actually contributes meaningful insight to the problem at hand. I guess what I'm trying to say is "you're allowed to just program .. for no other reason than the fun of it". As evidence for my claims: a few of my 'perfect' projects https://github.com/scallyw4g/bonsai https://github.com/scallyw4g/bonsai https://github.com/scallyw4g/poof https://github.com/scallyw4g/poof https://scallywag.software https://scallywag.software
- rolfus 9mo agoI get what you're saying - I personally scratch that itch by doing woodworking and hobby electronics; I just love doing it and the end product is often just a means to an end; to craft something and enjoying the process of it. But programming doesn't give me that same feeling, and honestly; the scope of doing and learning everything needed to make my projects without LLM's are just way out of reach. Learning these things would not be relevant to my career or my other hobbies. So, for me I use LLM's the way a person who's not into carpentry might buy the services of a carpenter, despite the possibility of them doing the project themselves after investing tons of time into learning how.
- skydhash 9mo agoThese days, I spend my personal coding time on building personal interfaces either as a shell script or as emacs packages. So many tools and applications hinders power usage.
- redhale 9mo agoBoth can be true. Some people enjoy cooking. Some people enjoy eating great food. Some people enjoy both. Some people enjoy cooking certain things, and also like eating things they would never bother cooking themselves. There is nothing wrong with any of these perspectives.
- rolfus 9mo agoThis resonates with me. I'm not a programmer, and before LLM's I could only make basic hello world apps and simple websites. Now I am developing my own versions of various apps that I've used but maybe have limitations that I've become frustrated with. For example, I didn't like how the fitness tracker Strava didn't allow me to customize audio announcements, so now I have my own (and in my own eyes) better version of Strava that I use instead. It's absolutely blowing my mind that this is possible and available today, and not some tech-optimists wet dream about an impossible future.
- reconnecting 9mo agoHere is the demo of my perfect software. https://play.tirreno.com https://play.tirreno.com However, I'm skeptical about AI, because what I've understood about agentic processes is more about cheap dopamine. When it comes to medium-sized software development (over 50k LOC), there is much less fun and much more pain, because a growing codebase doesn't allow you to make new features easily. I believe it is important not to mix up a dose of dopamine gotten from agentic results, as in the article, with achievement from longstanding work, even if it's not so attractive from a short-term perspective.
- breckenedge 9mo agoI use Claude Code on a 900kloc Rails/JS monolith and it’s still pretty pleasant. However if it wasn’t already structured well, I could see that being a worse experience.
- reconnecting 9mo agoThe article is about the pleasure of creating new software (occasionally with AI help), so I hope that the 900k LOC in your case doesn't come from Claude Code.
- 1313ed01 9mo agoSomeone just discovered why some of us enjoy shell scripts and Emacs so much. No need for LLM, just small hacks to solve specific problems in limited contexts that works well enough, most of the time, for one user.
- criddell 9mo agoEven phones these days have pretty good scripting environments (thinking of Shortcuts on iOS). I’ve had really good luck with Claude helping me write shortcut scripts. For example, I wore a CGM this year for a bit and I couldn’t find an easy way to get the raw data. It did log everything to Apple Health and a shortcut was able to extract it and append it to a spreadsheet where each row was a reading.
- zingar 9mo agoI’ve written so much more elisp and bash this year because of LLMs.
- lll-o-lll 9mo agoThis article triggers all my “written by an LLM” spidey senses. Which is ironic considering the subject matter. “Perfect”, but artificially constructed. “Just for me”, but algorithmic slop. I agree that you can do so much more custom tailoring of bespoke software with the speed an LLM brings. But something inside of me still revolts at calling this anything other than “convenient”. “Perfect” I will reserve for things I’ve made myself. However “imperfect” they may really be.
- golemotron 9mo agoLook at it this way. The carver doesn't have to grow the tree. Using an LLM for coding is a lot like being a carver. You can take broad or small strokes and discard what you don't like.
- lll-o-lll 9mo ago> Using an LLM for coding is a lot like being a carver. It’s nothing like being a carver. It’s like being a director; “Once more! With feeling!”. “Perfect, brilliant, just one more take, and I want you to consider…” A sculptor shapes with their hands, and there is pleasure in that. A director shapes with someone else’s hands.
- ares623 9mo agoIt's like being a master, really. You're getting output from something that can't say no and that was built from the works of millions of unknowing and unconsenting contributors.
- golemotron 9mo agoYet we see directors as artists. Kubrick, Coppola (both of them), Hitchcock, etc.
- bitwize 9mo agoWe also see actors as artists, and pay them gorillions of dollars. AI is about using distilled human knowledge, while cutting the human out of the loop (and out of the payroll).
- imiric 9mo agoThis has always been possible, even if you weren't a programmer. You just needed to have the desire to customize your computing environment, and the time and patience to do it. There is so much software out there, written by people who wanted to solve their particular problem, just like you. Chances are that some of it will fit your needs, and, if the software is flexible enough, will allow you to customize it to make that fit even better. This is why the Unix philosophy is so powerful. Small independent programs that do one thing well, which can be configured and composed in practically infinite number of ways. I don't need to write a file search or sorting program, nor does the file search program need to implement sorting. But as a user, I can compose both programs in a way to get a sorted list of files by any criteria I need. This is possible without either program being aware of the other, and I can compose programs written decades ago with ones written today. You can extend this to other parts of your system as well. Instead of using a desktop environment like GNOME, try using a program that just manages windows. Then pick another program for launching applications. And so on. This is certainly more work than the alternative, but at the end of the day, you feel like you are in control of your computer, instead of the other way around.
- jauntywundrkind 9mo agoConceptually yes, but trying to understand what affordances you have what tools you can use what options are about, to begin to then decide to learn those systems, is incredibly incredibly hard. With LLMs, you can ask for what you want and it can assess approaches. And try to solve. And adjust rapidly. Trying to understand what affordances are available has been a nightmare of computing. Yes people do incredible things & take ownership of systems in amazing & incredible ways! But I just think it has required such deep esoteric knowledge just to get started, to have an idea of where you have leverage. I really think there's such a chance for more agency here, and without such being totally lost and confused and having no idea and so little help pointing the way.
- imiric 9mo ago> Conceptually yes, but trying to understand what affordances you have what tools you can use what options are about, to begin to then decide to learn those systems, is incredibly incredibly hard. And programming isn't? It requires even deeper esoteric knowledge about language intricacies, build systems, architectures, etc. LLMs might help with getting a prototype up and running, but fixing issues or adding new features to an existing codebase still has a low success rate, and high chances of introducing other issues. These chances are directly proportional to the size and complexity of the software. Often the only way to address these issues is for the user to dig into the codebase themselves, which becomes a gargantuan task if they don't have an understanding of it to begin with. So, sure, these new tools are useful for writing small and dirty scripts as the author needed, but then again, they can also be used to write configuration, help with integration issues, and to gain understanding of existing software. Asking them to write software is a riskier proposition, IME. Especially if that software is released into the wild and is used by more than one person.
- eterm 9mo agoI like this article, I think it taps into something real. I find myself scratching real itches that would otherwise have gone left un-scratched, because the hurdle to just getting started on something was too damn high. For example I had need for an image contact-sheet. I'm sure there exist a lot of contact sheet generators out there, but I was able to just as quickly get claude to write me a set of scripts that took a bunch of raw images, resized them down to thumbnails, extracted their meta-data, and wrote a PDF (via Typst) with filenames and meta-data, in date order. I got lost perfecting it, hand-picking fonts etc, but it still only took an hour or so from start to finish. It's perfect for my need, I can customise it any time I want by simply asking claude to modify it. Did I need to be a developer to do that? Arguably yes, to know the capabilities of the system, to know to ask it to leverage image-magick and typst, to understand what the failure-modes looked like, etc. But I dind't need to be programmer, and over time people like the OP will learn the development side of software development without learning the programming side. And that's okay.
- mgaunard 9mo agoThe comparison to coffee is bad, since it's obvious the best coffee is with no sugar and no milk.
- pedrogpimenta 9mo agoI agree, but it is there: perfect amount of sugar: 0, perfect milk-to-coffee ratio: 0 to 1. What really gets on my nerves is the justified text...
- mgaunard 9mo agoMy point is that it's not a personal amount, but an absolute constant. If you need to mix other things with it, then the coffee isn't good.
- CharlieDigital 9mo ago> The Extended Mind Theory argues that our tools are not just accessories, but literal extensions of our cognitive process. Viewed this way, a generic tool like a one-size-fits-all app, feels like a prosthetic that doesn’t quite fit. Three years back now, my wife and I were planning a two-week long trip and found it really difficult to simply move day-places around (e.g. shift a whole day in a schedule with all of the places planned for the day) as we were planning a multi-city route. We started with Google Sheets (way too cumbersome), then Docs (cumbersome in a different way), then a simple app using Firebase + the Google Maps embedded API built over a weekend, and then ended up building a full blown planning app and eventually a Chrome extension[0] that hooks directly into Google Maps (our preferred tool for exploring). We are meticulous planners so I totally get the author's sentiment here. Many people see the app the first time and feel overwhelmed, but for us, it's hard to imagine using other tools now because this one fits "just right" having been built specifically for our planning process. [0] For anyone interested: https://chromewebstore.google.com/detail/turasapp/lpfijfdbgohlblnadiokliolkkeeblpo https://chromewebstore.google.com/detail/turasapp/lpfijfdbgo...
- qbit 9mo agoI’ve always been somewhat dissatisfied with image viewing/browsing software. Gqview and Sequential came close to being what I wanted, but there were things about both that I didn’t like. I finally just wrote my own custom viewer using pyqt. For me, it is perfect software!
- Lyngbakr 9mo agoI was nodding along enthusiastically right up until LLMs and that point we sharply diverge. For me, part of creating "perfect" software is that I am very much the one crafting the software. I'm learning while creating, but I find such learning is greatly diminished when I outsource building to AI. It's certainly harder and perhaps my software is worse, but for me the sense of achievement is also much greater.
- grugagag 9mo agoYou can still create what you already know how to, by hand, but also extend to areas you previously where shy about with the help of LLMs.
- dotancohen 9mo agoJust today I gave an LLM the task of porting some Python modules to rust. I then went back and learned enough rust to understand these modules. This would have taken me days without the LLM. And I learned a lot.
- analogpixel 9mo agoI find that most of the time, programming is just procrastination, and having the LLM there breaks through that procrastination and lets me focus on the idea I was thinking on without going into the weeds. A lot of the time, the LLM outputs the code, I test my idea, and realize I really don't care or the idea wasn't that great, and now I can move on to something else.
- dotancohen 9mo agoI'm now using an LLM to write a voice note organisation application that I have been dreaming about for two decades. I did vibe code the first version. It runs, but it is utterly unmaintainable. I'm now rewriting it using the LLM as if it were a junior or outsourced programmer (not a developer, that remains my job) and I go over every line of application code. I love it, I'm pushing out decent quality code and very focused git commits. I write every commit message myself, no LLM there. But I don't even bother checking the LLM's unit and integration tests. I would have never gotten to this stage of my dream project without AI tooling.
- brap 9mo agoGreat vision for 2030. But as for today, have we all just collectively decided to pretend that the LLMs we have are capable of writing good software? I use LLMs a lot in my workflow, I probably spend a whole day per week learning and fiddling with new tools, techniques, etc. and trying to integrate them in all sorts of ways. Been at it for about a year and a half, mainly because I’m intrigued. I’m sorry but it still very much sucks. There are things it’s pretty good at, but writing software, especially in large brownfield projects, is not one of them. Not yet, at least. I’m starting to believe many are just faking it.
- habinero 9mo agoMost of them are, yeah. There are a lot of Idea Guys on here, who are in love with the idea that they no longer need effort or skills to Create Their Vision. If they can just prompt hard enough, success will come rolling in.
- redhale 9mo agoDid either of you read the article? You seem to be arguing against a point it doesn't make. Tools like Claude Code are entirely capable today of one-shotting tiny bespoke web apps that do a narrow set of things for an audience of one. The article isn't talking about "large brownfield projects" or people wanting "success [to] come rolling in". It's about people making little apps for themselves, for personal enjoyment, not profit.
- habinero 9mo agoI'm responding to the comment above me, my dude.
- zingar 9mo agoAbout 15 years ago I thought of writing custom software for friends and family instead of paying for gifts in order to save money (and give something more “meaningful”). For instance a fun guessing game using photos from a group holiday. I never did it because I imagined the pain of supporting every device or screen size, or dealing with someone who wants to know why their gift stopped working 6 months later. The gains I’ve seen from LLM code - making me personally more productive in languages I’ve never used before - don’t erase the support burden so I think I’d still avoid this. Still, I wonder if soon ordinary people will find it easy enough to make software for their own amusement (not just us nerds doing side projects to stay current), and will my job ever morph into being a software “mechanic“ who is paid to fix what someone else built? Not just “someone else working at the company who owns the software”, but a different company or individual entirely? Will software maintenance become the job that big industry stops wanting to take because it’s so cheap to write something new that they’ll never fix this year’s model? Or is software maintenance being democratised by LLMs such that a corner software shop could realistically offer maintenance for this one copy of a piece of software on this one device that the customer brings in? I think we’ve never discussed a “software right to repair” because changing software is expensive, but we might see that change.
- 2001zhaozhao 9mo agoWhat we really need is well-built open source software base with flexible and well-documented plugin SDKs where people can just vibecode their own extensions on top of them. The software needs to be designed from scratch expressly for the purpose of being extended in this way, and the SDK should place appropriate limits to allow multiple extensions to be combined easily. Otherwise, there is too much you have to do right before you have a suitable software base to start building your extra personalized features on. Building on existing open-source software (not designed to be extended on) isn't great either because you would need to merge any changes from the original software into your fork, as opposed to a purpose-built SDK that would better tolerate plugins on different base software versions. I'm working on this for gaming but the idea is really applicable to any kind of software, if the goal is to allow people to easily create and run personalized versions of them without as much effort and chance for things to go wrong.
- criddell 9mo agoSo, something like Excel?
- zingar 9mo agoInterested in what you’re doing with gaming. Are you literally extending game code?
- 2001zhaozhao 9mo agoIn short it's striking a careful balance between giving game mods the flexibility to make whatever they want, and not giving them too much low-level access that it leads to incompatibilities with other mods. In my case, I am not letting mods extend game code directly because I have additional constraints that require mods to run on a restricted runtime. In some other games, mods DO extend game code directly and I am most familiar with Minecraft. The problem with Minecraft is that the modloaders are community-made; the game itself isn't designed to support mods so there isn't a stable modloader API between versions. If that one issue is fixed it would be possible to effectively vibecode your own version of the game and not have to reinvent the wheel by coding up the base game first. You'd also have your changes persist indefinitely and benefit from base game updates. And like I said, I think this is a powerful pattern that can be applied to plugin systems in general non-game software as well.
- lwhi 9mo agoI disagree. How do we work together when we all have our own unilateral views of software?
- chickensong 9mo agoThe article is about writing tools for yourself, not for collaborating with others. But if you must, open standards are the solution.
- andy99 9mo agoI guess software is going to be like furniture - there was some (possibly imagined) period where it was very well made and bought for the long term, and (obvious where this is going) now there’s lots of ikea crap that is easy and cheap but doesn’t survive a move or getting water spilled on it, and is essentially Formica over cardboard. Overall both are net positives, I have some nice wood furniture and also a $7 Lack bedside table, and of course I rely on some industrial long term software (Linux e.g.) but almost every day vibe code some throwaway thing for a specific task.
- zingar 9mo agoI have the same furniture analogy in mind. If we imagine that more people have more agency when it comes to extending software, what does the software equivalent of repair look like? What does dumpster diving or a second hand software store look like?
- sieabahlpark 9mo ago[dead]
- eszed 9mo agoCloning and extending someone's long-abandoned github project?
- mgfist 9mo agoMost "good" software like you speak of was written long ago. Slop has dominated long even before LLMs.
- deleted 9mo ago[deleted]
- Pepp38 9mo agoI see it as just another tool. Like any other tool, you have to learn it and integrate it into your workflow. And as a learning tool, it’s extraordinary. Not because it replaces understanding, but because it accelerates it: you can explore unfamiliar domains, compare approaches, and iterate with feedback that used to take days or weeks. The responsibility to think, judge, and decide still sits entirely with the developer.
- sombragris 9mo agoVery OT, and this betrays my age, but... When I saw "Perfect Software" in the title, I thought it referred to Perfect Software, the developer who produced the Perfect Writer word processor, Perfect Calc spreadsheet, and Perfect Filer database. These were a suite of office software products developed in the early '80s for CP/M and MS-DOS computers.
- jauntywundrkind 9mo agoWhat seems perfect is the adaptability & changeability, the suiting to fit. We see LLMs as a huge opportunity here, to self define. And existing software as too limberous & weighty. But there are so many other dimensions and levels of how and why the past hasn't let us situate our software and us together effectively. The architecture of software doesn't have this grow-in-ability to it. I love the Home-cooked Software and Barefoot Developers material. But neither of those ideas nor perfect software nor audience of one actually appeal to me that strongly. They are all very positive enormous breaks from bad software and bad times where we didn't have basic liberty over systems. But they all strike me as valorizing a particularly isolated rejectionist view of software, that ultimately is rude to the protocols & affordances building that a good healthy and connected form of software that we might and perhaps SHOULD aspire to. But anything unjamming is from the inflexible unarticulated illegible mess of systems we can at best endure today is doing great work. Many positive steps into greater beyonds out of bad tar pits. 2025 has amazing hope amid all this.
- guoxudong 9mo agoYes, that's exactly what I'm doing right now—building my own software to restructure my work and life.
- bgwalter 9mo agoBefore LLMs, “perfect software” was largely a myth. We know, your blog is the first static webpage in existence. Third, it brings back autonomy. This is the new talking point. Musk claims that cars that are always connected provide "autonomy", vibe coders claim that the stolen code distributed by Anthropic provides "autonomy". War is peace, freedom is slavery.
- rpdillon 9mo ago> vibe coders claim that the stolen code distributed by Anthropic You could approach these topics with more nuance, and your posts would be stronger. The current legal status is murky, and evolving! https://ipwatchdog.com/2025/12/23/copyright-ai-collide-three-key-decisions-ai-training-copyrighted-content-2025/ https://ipwatchdog.com/2025/12/23/copyright-ai-collide-three...
- leonflexo 9mo agoI only read this because while messing around with learning some basic VPS and NGINX, I used Claude to spin up some quick frontends. One ended up being a geocities hackernews clone. Then while getting some basic process and terminal experience, I piped into Codex CLI to generate a summary modal to my visual liking. All of that to say that while I could have done it on my own, I likely wouldn't have because it allowed me a low friction path to implementing the bits that weren't crucial for what I was trying to learn.
- bitwize 9mo agoBefore LLMs, software wasn't just some artifact like a painting, a ladder, or a bloviating Facebook post—something ordinary humans made to suit their own purposes. It could only be made by the mutant lizard people from space who walk among us, wearing human skins, yet somehow having the innate ability to program. But by good old fashioned human ingenuity and manipulation tactics (aka marketing), we managed to trick the lizard people into building LLMs! Think of an LLM as an electronic genie that has, among other abilities, the lizard person's ability to write computer programs—and puts that power in the hands of ordinary human beings like you! Finally, after eight decades of computers—infernal machines built by the lizard people to enslave us all—the computer now does exactly what you want!
- MostlyStable 9mo agoOf all the topics to judge LLM use, this seems the least appropriate. This is about people making software for themselves and no one else. Your opinion on the quality of their software is entirely beside the point. No one is ever going to force you to use an LLM to make personal software. And no one is ever going to force you to use LLM-generated software that was explicitely made and intended to be used only by the one person. There are a lot of contexts where I can understand arguing against LLM use (even in cases where I might not entirely agree, I can understand the objection), but this is not one of them. Don't think this will improve your life? Great, don't do it. But this is also the most classic case of "don't yuck other people's yum". If someone tells you they used an LLM to make some piece of software for themselves and they like it or that it improved some aspect of their life or workflow, what on earth is gained by trying to convince them that no, actually, it's not good and isn't improving their lives and is in fact garbage?
- jmathai 9mo agoThanks to LLMs, I have revived personal projects that became too time consuming and complex to familiarize myself with again. While I enjoy the challenge of writing software, I more enjoy having the thing which does exactly what I want. LLMs are amazing for this.
- j45 9mo agoCosigned. Vibe coding for a senior developer is just ... coding - except developing software while walking around with your phone talking to it.
- chowells 9mo agoI would die of embarrassment if I had bad code in a project for me. I am at my limit for tolerating bad code in projects for others, where the economics don't support taking the time that would be required to fix the deep problems. Code for me is going to be good. I won't accept anything less. I need a countervailing force, reminding me of the beauty of clear expression of complex ideas.
- jdright 9mo ago100% agree with this. I have years of experience, but I never had the time (or will) to take on some _very minor nuisances_ or different areas of dev far from my day job expertise. LLMs solved this. I produced about 12 different things that "I needed" to improve aspects of my life. Each single took between a few hours to 3 days, and most of them I use daily, they are the most used applications (mobile, desktop and web) for my family. It is a game changer. Personalized custom software would never really reach critical mass, LLM enabled it, this is the age of personalized software, egosoftware, llmware.
- deaux 9mo ago> Each single took between a few hours to 3 days, and most of them I use daily, they are the most used applications (mobile, desktop and web) for my family. How have you done distribution and auth? I'm interested in doing something similar but not sure of the best way to approach that part, especially with the family/multiplatform angle as well.
- jdright 9mo agoas basic as needed, most of them don't even require this. They are not products and we know their limitations.
- jauntywundrkind 9mo ago"deployed on TailScale" is going to be quite the hit in this age! I do think it is a bit scary to imagine software devolving into an unconnected / less connected state. Lots of apps but less protocols, everyone kind of frontiersing their own stuff has enticement and I love the can do itiveness. But I am scared for a major regression, of disconnection. I do think atproto is an enormously positive hope here. I used to be super thrilled by platform as a service stuff, works like Apache UserGrid that gave a wide range of basic compute platform stuff, accounts, data stores, etc. Letting devs focus on the core competencies, on their value add rather than building boring account systems and what not felt like a huge win back then & expected to see soar. I think atproto is a very interesting resurgence of something similar-ish, where users have their own Personal Data Stores that your app can read and write records from. And which serves as an auth system for your app! It makes social app building incredibly simple, and there's been so many neat simple apps people have booked up with so much less ceremony than what doing connected stuff used to require. Atproto creating a platform as a service (PaaS) is super cool & may really enable awesome new ways of building.
- asgr 9mo ago“sufficient software”
- phendrenad2 9mo agoI think we're going to see a lot more of this thanks to coding assistants, and it's going to get complicated when people start forking open-source programs and modifying them for their own personal use cases. I can see someone adding Feature X to their own fork of Project Y in a way that's incompatible with Project Y's roadmap, leading to drama between people who use the new fork vs people who are willing to wait for the "official" version.