For example, the photo backup system I want to make will let me manage my ~400gb photo library. I want my library backed up on a couple devices, running linux and freebsd. I want my mac and iphone to have a local mirror of all the favorited photos, and when I'm at home, I want to be able to browse all photos from those devices by streaming them over the local network. I want native macos & ios app interfaces to view and manage all that.
I don't know any existing software that meets my requirements. I don't think any such software exists. Apple, Dropbox and Google will solve this problem for me if I store all my photos in their cloud and pay them an ongoing subscription for the privilege. I'd much rather make something myself, and back up my photos on my own hard drives.
Making something like this is simple enough, but very time consuming. If claude can take the drudgery out of it, well, I think that's just delightful.
You can accomplish most of that by installing Syncthing.
But the objection is that you’re not really building anything new even if you think it’s a new idea. By your definition you’re building for yourself and not sharing…so what good are your little projects. Reading your original list it just seems like you want to build and run software without having to do any research, even if a solution already exists.
At some point developers seem to forget that making stuff is fun. The fact SQLite and GCC exist doesn't mean you're banned from making a database or a C compiler.
You're allowed to make stuff just because.
What an incredibly blinkered view. You think there's no value at all in making software unless your program solves a truly novel problem, and does so for millions of users?
There's so much joy that can be found in simple, disposable acts of creativity. I don't need the world to applaud when I cook an omelette, make a table out of wood or play a piece on the piano. Why would I need that from the software I make? Just because you can buy a table from IKEA doesn't mean its not fun to make one yourself. Just because someone on spotify played it better doesn't mean there's no joy in playing music.
Why would I hesitate to make my ideal photo library program, just because other programs exist? What a sad, self-limiting rule.
Does that make you mad? Why does other people enjoying themselves with LLMs make you mad?
AI is seen as a way out of drudgery but you're just trading one problem for another.
It's actually quite similar to buying the services of a programmer off Upwork to build something for me, only with LLMs it's way cheaper and faster, with a shorter feedback loop.
If I spend a weekend standing up a self-hosted media system or something, I doubt anyone would dispute that's a fun building exercise.
If I do the same thing but use an LLM to build out instead, somehow it's not.
Yeah it's not the same kind of building as what we might have done pre-LLM but it need not be any less satisfying or rewarding.
The real disconnect seems to be the classic dichotomy: people who see coding as the point and the purpose, vs people who just want an outcome.
And that's fine!
I'm just don't understand why the one camp feels the need to deride the other.
I don't enjoy CSS, so I delegate that to an LLM. Just like I don't like writing assembly by hand, so I delegate that to a compiler. So what?
Take woodworking for example. When I build a kitchen cabinet, I can get lumber that's already smooth and treated, I can buy drawer tracks, I can use power tools instead of a handsaw and a screwdriver, I can use a pocket hole jig to make joints easier. I still have to do more planning and assembling than with the Ikea cabinet, which also takes more work than having a contractor do everything for me.
I'm doing it my way because it's fun for me. Other people might enjoy other parts of the process - or different things altogether.
There's a whole spectrum between doing everything from scratch and paying someone to have it done for you.
What do you think architects do? Or interior designers? Or civil engineers?
Architecture certainly isn't building, and neither is interior design. Civil engineers calculate and specify the loads in excruciating detail, because if they didn't, people would die.
The biggest value proposition of an LLM is being able to focus on the truly high-value activities while allowing the machine take care of much of that reification.
That you think architecture or interior design isn't building tells you prefer to downplay or devalue any work that isn't hands on construction. It's an interesting perspective, but it's one I'll never be able to understand or agree with.
For someone who's been around the block a few times, there's little new under the sun. Coming up with good architecture for a problem space and having the LLM fill in the details is incredibly effective as a pattern.
That said, tbh I'm not sure why we keep exchanging messages. Your other comment about coding with AI assistance as being akin to buying a statue tells me you have either never coded with an agent, and so think it's a simple matter of saying "build me a to-do app" and then calling it a day, or you're experienced with these tools and deliberately misrepresenting the process.
If it's the former, then we don't share enough understanding to have a healthy conversation, and if it's the latter then there's little point in arguing with someone who insists in doing so in bad faith.
- I want native desktop apps
- I want P2P device sync. My laptop and my home server should be peers. Just with different rules for which photos are stored locally on each device.
- I want per-device storage rules. (Eg, "I want all my favorited photos, and recent photos up to 50gb on my laptop").
- Backups. I want to be able to plug in an external hard drive and backup my photos (with some rules). Then disconnect the drive and see in the metadata for those photos that I have a copy of the full res RAW on that drive.
But even if other programs exist, its still fun to make something myself. Authoring your own software gives you a different relationship with the computer. You're less of a consumer. You can change or tweak features on a whim. Psychologically, its kind of like being in your own home vs being in a hotel room. If you hate the furniture at home, you can move it or change it. You can decorate however you like. In a hotel, you're affected by your environment but you have no agency over it. I think its much more healthy to create.
But I’m optimising for the feeling of joy and agency over my tools. I also want to experiment with p2p / local first data structures in a real app. I could fork immich and rewrite the data model. But that all seems much less fun.
At the end of the day, I’m not doing this for other people. I’m doing this for me. Learning dart so I can hack on someone else’s code sounds like a pain in the butt. Not like something I’d want to do for fun on the weekend.
Working on someone else’s code seems like a strange default. You and others have jumped on me for wanting to make my own thing instead of using - or forking - someone else’s software. Can you help me understand why? Why would that be the default for a fun hobby project? I’m confused.