These are the perfect size projects vibe coding is currently good for.
At some point you hit a project size that is too large or has too many interdependencies, and you have to be very careful about how you manage the context and should expect the llm to start generating too much code or subtle bugs.
Once you hit that size, in my opinion, it's usually best to drop back to brainstorming mode, only use the llm to help you with the design, and either write the code yourself, or write the skeleton of the code yourself and have the llm fill it in.
With too much code, llms just don't seem able yet to only add a few more lines of code, make use of existing code, or be clever and replace a few lines of code with a few more lines of code. They nearly always will add a bunch of new abstractions.
I agree with you as far as project size for vibe-coding goes - as-in often not even looking at the generated code.
But I have no issues with using Claude Code to write code in larger projects, including adapting to existing patterns, it’s just not vibe coding - I architect the modules, and I know more or less exactly what I want the end result to be. I review all code in detail to make sure it’s precisely what I want. You just have to write good instructions and manage the context well (give it sample code to reference, have agent.md files for guidance, etc.)
Or you can apply software architecture methods that are designed to help humans with exactly the same type of problems.
Once your codebase exceeds a certain size, it becomes counter-productive to have code that is dependent on the implementation of other modules (tight coupling). In Claude Code terms this means your current architecture is forcing the model to read too many lines of code into its context which is degrading performance.
The solution is the same as it is for humans:
"Program to an interface, not an implementation." --Design Patterns: Elements of Reusable Object-Oriented Software (1994)
You have to carefully draw boundaries around the distinct parts of your application and create simple interfaces for them that only expose the parts that other modules in your application need to use. Separate each interface definition into its own file and instruct Claude (or your human coworker) to only use the interface unless they're actually working on the internals of that module.
Suddenly, you've freed up large chunks of context and Claude is now able to continue making progress.
Of course, the project could continue to grow and the relatively small interface declarations could become too many to fit in context. At that point it would be worthwhile taking a look at the application to see if larger chunks of it could be separated from the rest. Managing the number and breadth of changes that Claude is tasked with making would also help since it's unlikely that every job requires touching dozens of different parts of the application so project management skills can get you even further.
One thing I’ve noticed building a small “use it and leave” tool is that the models tend to self-select into roles.
For me, Codex ended up being the reliable executor for actual logic and glue code, while Claude Code (especially the frontend design skill) was much better at overall UI structure, spacing, and interaction flow. I stopped trying to make one model do everything and just let them do what they seemed naturally good at.
This only worked because the project was tiny and mostly stateless — once scope or dependencies grow, the coordination cost goes up fast. Curious if others have seen a similar split in practice, or if this is just project-type dependent.
Engineering code now is not just binary, it's a spectrum from vibe-coding through copilot-style (design and coding assistance) to your help-with-design-only to no-AI.
The capabilities now are strong enough to mix and match almost fully in the co-pilot range on substantial projects and repos.
I think this limitation goes away as long as your code is modular.
If the Ai has to read the entire code base each time, sure but if everything is designed well then it only needs to deal with a limited set of code each time and it excels at that.
^^
These dramatic statements are almost always AI influenced, I seem to always see them in people's emails now as well. "we didnt reinvent the wheel. we are the wheel."
Others, please chime in, I want to take a sort of poll here:
I usually grimace at "GPT smell". The lines you quoted stood out to me as well, but I interpreted them as "early career blogger smell". It's similar, but it didn't come off as AI. I think because it avoided grandiose words, and because it reused the exact same phrase format (like a human tic) rather than randomly sampling the format category (like an AI). This is what human text looks like when it's coming from someone who is earnestly trying to have a punchy, intentional writing style, but who has not yet developed an editor's eye (or asked others to proofread), which would help smooth out behaviors that seem additive in isolation but amateur in aggregate.
Did others share the impression that it's a human doing the same classic tricks that AI is trained to copy, or does anything in this category immediately betray AI usage?
I feel ya but it didn't get me on this one for some reason. But it gets me a lot on Linkedin - due to which I lost control and blasted off a post yesterday.
I think it some kind of value - vibe dynamics that play in making the brain conscious about it being written with AI or otherwise.
I am yet to see a vibe coded success that isn't a small program that already exists in multiple forms in the training data. Let's see something ground-breaking. If AI coding is so great and is going to take us to 10x or 100x productivity let's see it generate a new, highly efficient compression algorithm or a state-of-art travelling salesman solution.
Why? People don't ask hammers to do much more than bash in nails into walls.
AI coding tools can be incredibly powerful -- but shouldn't that power be focused on what the tool is actually good at?
There are many, many times that AI coding tools can and should be used to create a "small program that already exists in multiple forms in the training data."
I do things like this very regularly for my small business. It's allowed me to do things that I simply would not have been able to do previously.
People keep asking AI coding tools to be something other than what they currently are. Sure, that would be cool. But they absolutely have increased my productivity 10x for exactly the type of work they're good at assisting with.
You’re right, but at the same time, 99% of software people need has already been done in some form. This gets back to the article on “perfect software” [1] posted last week. This bookshelf is perfect for the guy who wrote it and there isn’t anything exactly like it out there. The common tools on the App Store (goodreads) don’t fit his needs. But he was able to create a piece of “perfect software” that exactly meets his own goals and his own design preferences. And it was very easy to accomplish with LLMs, just by putting together pieces of things that have been done before.
Much of the coding we do is repetitive and exists in the training data, so I think its pretty great if AI can eliminate that toil and liberate the meat to focus on the creative work.
And to add to this, for some reason people really bristle if you say that many LLM’s are just search with extra steps. This feels like an extension of that. It’s just reinventing the wheel over and over again based on a third party’s (admittedly often a solid approximation but still not exact) educated guess of what a wheel may be. It all seems like a rather circuitous way to accomplish things unless your goal isn’t to build a wheel but rather tinker and experiment with the concept of a wheel and learn something in the process. Totally valid, but I’m pretty sure that’s not what open AI et al are pitching lol
I find this type of comment depressing. This is a time for exploration and learning new things. This is a prefect way to do so. It’s a small project that solves the problem. Better time spent vibe coding it then to evaluate existing alternatives.
Forget utterly groundbreaking things, I want to hear maintainers of complex, actively developed, and widely used open-source projects (e.g. ffmpeg, curl, openssh, sqlite) start touting a massive uptick in positive contributions, pointing to a concrete influx of high-quality AI-assisted commits. If AI is indeed a 10x force multiplier, shouldn't these projects have seen 10 years' worth of development in the last year?
Don't get me wrong, AI is at least as game-changing for programming as StackOverflow and Google were back in the day. Being able to not only look up but automatically integrate things into your codebase that already exist in some form in the training data is incredibly useful. I use it every day, and it's saved me hours of work for certain specific tasks [0]. For tasks like that, it is indeed a 10x productivity multiplier. But since these tasks only comprise a small fraction of the full software development process, the rest of which cannot be so easily automated, AI is not the overall 10x force multiplier that some claim.
I have worked on out of sample problems, and AI absolutely struggles, but it dramatically accelerates the research process. Testing ideas is cheap, support tools are quick to write, and the LLM itself is a tremendous research tool itself.
More generally, I do think LLMs grant 10x+ performance for most
common work: most of what people do manually is in the training data (which is why there's so much of it in the first place.) 10x+ in those domains can in theory free up more brain space to solve the problems you're talking about.
My advice to you is to tone down the cynicism, and see how it could help you. I'll admit, AI makes me incredibly anxious about my future, but it's still fun to use.
I am yet to see an "AI doesn't impress me" comment that added anything to the discussion. Yes, there's always going to be a state of the art and things that are as of yet beyond the state of the art.
You're just asking for the opposite of what AI does.
90-99% of an engineer's work isn't entirely novel coding that has never existed before, so by succeeding at what "already exists", it can take us to 10x-100x productivity.
The automation of all that work is groundbreaking in and of itself.
I think that, for a while into the future at least, humans will be relegated to generating that groundbreaking work, and the AI will increasingly handle the rest.
Every two months, I run a very simple experiment to decide whether I should stop shorting NVDA....Think of it as my personal Pelican on a Bike test. :-)
Here is how it works: I take the latest state of the art model, usually one of the two or three currently being hyped....and ask it to create a short document that teaches Java, Python, or Rust, in 30 to 60 min, complete with code examples. Then I ask the same model to review its own produced artifact, for correctness and best practices.
What happens next is remarkably consistent. The model produces a glowing review, confidently declaring the document “production ready”… while the code either does not compile, contains obvious bugs, or relies on outright bad practices.
When I point this out, the model apologizes profusely and generates a “fixed” version which still contains errors. I rinse and repeat until I give up.
This is still true today, including with models like Opus 4.5 and ChatGPT 5.2.
So whenever I read comments about these models being historic breakthroughs, I can’t help but imagine they are mostly coming from teams proudly generating technical debt at 100× the usual speed.
Things go even worst, when you ask the model to review a Cloud Architecture....
Its good that way right? Let me as a human do the interesting thinking for which my brains are meant while you AI do what they chips were built for.
I am happy as is tbh, not even looking for AGI and all. Just that the LLM be close enough to my thinking scale so that it does not feel "why am I talking with this robot".
Microsoft is currently hiring engineers to rewrite their entire codebase in Rust via vibecoding. Something to the tune of a million lines of code per developer per month.
… or, let’s see humans who are now 10-100x more productive (due to automation of mundane tasks that are already part of the training data) do the things you’re asking for.
1. Current LLMs do much better than produce "small programs that already exist in multiple forms in the training data". Of course the knowledge they use does need to exist somewhere in training data, but they operate at a higher level of abstraction than simply spitting out programs they've already seen whole cloth. Way higher.
2. Inventing a new compression algorithm is beyond the expectations of all but the the most wild-eyed LLM proponents, today.
trifling.org is an entire Python coding site, offline first (localstorage after first load), with docs, turtle graphics, canvas, and avatar editor, vibe coded from start to finish, with all conversations in the GitHub repo here: https://github.com/zellyn/trifling/tree/main/docs/sessions
This is going to destroy my home network, since I never moved it off the little Lenovo box sitting in my laundry room beside the Eero waypoint, but I’m out of town for three days, so
Granted, the seed of the idea was someone posting about how they wired pyiodide to Ace in 400 lines of JavaScript, so I can’t truly argue it’s non-trivial.
As a light troll to hackernews, only AI-written contributions are accepted
[Edit: the true inception of this project was my kid learning Python at school and trinket.io inexplicably putting Python 3 but not 2 behind the paywall. Alas, Securely will not let him and his classmates actually access it ]
> If AI coding is so great and is going to take us to 10x or 100x productivity
That seems to be a strawman here, no? Sure, there exist people/companies claiming 10x-100x productivity improvements. I agree it's bullshit.
But the article doesn't seem to be claiming anything like this - it's showing the use of vibe-coding for a small personalized side-project, something that's completely valid, sensible, and a perfect use-case for vibe-coding.
> let's see it generate a new, highly efficient compression algorithm or a state-of-art travelling salesman solution.
This is the "promise" that was being sold here and in reality, we yet haven't seen anything innovative or even a sophisticated original groundbreaking discovery from an LLM with most of the claims being faked or unverified.
Most of the 'vibe-coding' uses here are quite frankly performative or used for someone's blog for 'content'.
This is such a coincidence. I had the same idea a few days ago and also vibe coded a library using Claude. https://nindalf.com/books. The original version of this was meant to encourage me to read more, and I'm pleased to say it succeeded. I hit my goal for the year after a couple of lean years. I also like looking at my highlights and notes and this UI makes it easier to read them.
My experience with Claude was mostly very good. Certainly the UI is far better than what I'd come up with myself. The backend is close to what I'd write myself. When I'm unhappy I'm able to explain the shortcomings and it's able to mostly fix itself. This sort of small-scale, self-contained project was made possible thanks to Claude.
Other times it just couldn't. The validation for the start and end dates it decided was z.string().or(z.date()).optional().transform((val) => (val ? new Date(val) : undefined)). It looked way too complex. I asked if it could be simplified, Claude said no. I suggested z.date().optional(). Claude patiently explained this was impossible. I tried it anyway, it worked. Claude said "you're absolutely right!". But this behaviour was the exception rather than the rule.
This is neat. How do you fill this in? I assume the highlights and notes come from a Kindle or similar reader.
I also have a bookshelf (fully manual, in another comment), and I’m looking for better ways for retention. I do highlights but I rarely do notes. Also with audiobooks I have yet to find a good way to do this outside of my text note for each book I’m reading/listening-to.
ive been iterating on something very similar as well :D started in september and give it 30-60 mins here and there. i ended up with rows instead of a horizontal scroll. There definitely hve been a handful of times claude made terrible decisions and described them as brilliant, but with some very heavy guidance and worktrees its still (feels at least) quicker than if i wrote it out.
cool to check out your version as well thanks for sharing.
I actually did something similar recently for my website* and it was actually a Claude failure case; helped a little but ultimately cost me more time than doing it entirely myself. For my version I wanted the actual book spine images; since there's no database for these, I took pictures of my shelves (milkcrates) and wanted clickable regions. I also wanted the spines to link to a reasonable webpage for the book, falling back to goodreads if nothing else was available.
It was very surprising to me that claude wasn't very good at even the latter. It took several rounds of prompt refinement, including very detailed instructions, to get even 75% non-broken links, from ~30% on first attempt. It really liked to hallucinate goodreads URLs with the book title in them but an invalid ID (the title part of URLs is ignored by goodreads).
The former was less surprising... It attempted a very rough manual strategy for generating superimposed SVG outlines on the books, which often started okay but by the right side of the the image often didn't even intersect the actual spines. I tried to verbally coax it into using a third party segmenter, but with no luck. We eventually found a binary search style iterative cropping strategy that worked well but was taking 6 minutes and nearly a couple dollars per spine so I killed that and just did the SVG outlines in figma myself.
* https://andrewblinn.com
scroll down to find the bookcase and drag down on it to zoom and unlock the books
Neat. I also used to make a simple "bookshelf" web page each year for the books I read, but mine were fully static HTML and nowhere near as fancy as this.
I was about to post something about Delicious Library. That's one of my earlier Mac user memories and it always gave me joy to import / organize my books in there even if there's no real reason to do it.
So many systems are fault-tolerant, and it’s great to remember that in a world where LLMs introduce new faults. Kudos to OP for this mindset; more anti-AI posters would benefit from sitting with the idea from time to time.
Agree. We've all had occasional hilarious results when interacting with an LLM. If 90% of the interactions produce positive results… that's an improvement over my what I've come to expect plowing through Google search results.
So many people's lives would be better if 90% of their daily tasks could be automated by LLMs, letting them spend more time doing the hard 10% properly.
> Four hundred and sixty books is not a scale problem. Knowing when to delete working code is not something an AI can decide for you.
This is such a key thing I remind myself when I build apps like this for myself. I have a similar app that has a page with 900-odd ratings, and another with 550 owned books. I decided that I won't bother with infinite scroll or complex search and filtering until my browser can no longer handle rendering that data. "Find in page" works well enough for me for now.
I really enjoy the ability to get started quickly with a known idea like “make a single user letterboxd clone” with a system prompt that explains my preferred tech stack. From there it’s relatively easy to start going in and being the tastemaker for the project.
I think people being able to build their own bespoke apps is a huge super power. Unfortunately I don’t think the tools today do a good job of teaching you how to think if you aren’t already a software engineer. Sonnet rarely grasps for an abstraction.
That's cool. I've wanted to track my movie watch history for awhile but just couldn't find the right software to do it. I really dislike Letterboxd. I also agree with your point that having a software engineering (programming) background makes projects like these a bit easier to prompt for in a direct way.
"The gap between intention and execution was small, but it was enough to keep the project permanently parked in the someday pile." Well said!
This is my experience with agents, particularly Claude Code. It supplies sufficient activation energy to get me over the hump. It makes each next step easy enough that I take it.
At some point I also made a virtual bookshelf but for a different reason: I found that I often didn’t remember what I read about. So I started taking notes while reading and also making pixel art covers for the books I’ve written about. I feel that writing down ideas makes it easier to revisit them.
I love that the OP made this app for themselves, enjoyed the result, and shared the journey, so that we could all have this convo. With that said, I feel that you've done what this "should have been" IMO. It doesn't have flashy spring motion scroll, but it does interactively capture what I'd care about, which is recording whether I've read the book, what I found relevant/important/memorable, and how it connects to other things I've read/thought about.
I'm not sure anyone commented on this but the usability of what he vibe produced is absolutely terrible.
It's amusing that the author might feel a sense of accomplishment and super powers when in fact this is a complete moo point in terms of real gain and a tool of entertainment (consumption) and not productivity as original intended.
There is a silver line in there, for the people that care about software.
The size boundary point is real. Once projects get past a few thousand lines, you stop vibe coding and start managing intent and context again. At that stage the LLM becomes more of a fast junior than a magic wand.
It's nice that the project probably helps cut down on accidentally re-buying already owned books. I would hope the project doesn't remove the joy of randomly rediscovering joyous books in your own collection from time to time.
That’s really cool, and a great use-case for vibe coding!
I’ve been vibe-coding a personalized outliner app in Rust based on gpui and CRDTs (loro.dev) over the last couple days - something just for me, and in a big part just to explore the problem space - and so far it’s been very nice and fun.
Especially exploring multiple approaches, because exploring an approach just means leaving the laptop working for an hour without my attendance and then seeing the result.
Often I would have it write up a design doc with todos for a feature I wanted based on its exploration, and then just launch a bash for loop that launches Claude with “work on phase $i” (with some extra boilerplate instructions), which would have it occupied for a while.
I have recently vibe-coded an Android app, written in Kotlin, to scratch an itch and also as an experiment as an LLM skeptical [1]. It's a greenfield app that basically displays read-only data that's retrieved from a REST JSON API, so it's where Claude Code should shine the most and... yes, I'm actually positively impressed! I would have never been able to write that app myself, and at least surely not over a weekend (while cooking and doing other things with my family).
I wanted to try a Show HN as well but I feared that the HN crowd would tear it and me down so... I didn't.
Something you don’t really mention in the post is why do this? Do you have an end goal or utility in mind for the book shelf? Is it literally just to track ownership? What do you do with that information?
I've actually been working on something similar since I also had this pain (plus I'm too cheap to buy all the books I'm reading)
To solve the issue related to having take the photos myself, I scrape from places like eBay to get the accurate spine images. Obviously this isn't 100% accurate, but like you I also decided 90% accuracy is good enough.
However, to me as a person with an anti-library as well, this kind of defies the purpose of having it in the first place. I can't say I browse my books too often but when I want to find something, I'd rather browse physical things on a shelf rather than some out-of-date UI with fetched thumbnails. Of course the organization happens in physical space too: this is why we have shelves, labels and such.
Obviously no judgement or criticism for the author, just sharing thoughts.
Wonderful project, Marius! :) I shared it with my brother who has a lot of books and tracks them in his own little app. Keep up the great work! So happy to see you around!
It's a shame the blog post had to be written by AI too. If you're going to use AI to rewrite your text, you could at least ask it to keep the changes minimal.
For a community that prides itself on depth of conversation, ideas, etc. I'm surprised to so much praise for a post like this. I'll be the skeptic. What does it bring to you to vibe code your vibe shelf?
To me, this project perfectly encapsulates the uselessness of AI, small projects like this are good learning or relearning experience and by outsourcing your thinking to AI you deprive yourself of any learning, ownership, or the self fulfillment that comes with it. Unless, of course, you think engaging in "tedious" activities with things you enjoy have zero value, and if getting lost in the weeds isn't the whole point. Perhaps in one of those books you didn't read, you missed a lesson about the journey being more important than the destination, but idk I'm more of a film person.
The only piece of wisdom here is the final sentence:
I don't think you fully understood the purpose of the project. He wanted an end product (the bookshelf app) that he had been putting off due to the time commitment. He did not say he wanted to learn about how to program in general, nor did he even say he liked programming. People care about results and the end product. If you like to program as a hobby, LLMs in no way stop you from doing this. At the end of the day, people with your viewpoint fall short of convincing people against using AI because you are being extremely condescending to the desires of regular people. Also, it is quite ironic that you attempted to make a point about him not reading all 500 books on his bookshelf, yet you don't seem to have read (or understood) the opening section of the post.
It is easy to defer to the "taste" of the mathematically mixed up assessment of "all internet-recorded human taste" if you prefer. And many will choose that. But many others will choose to remain in charge of their own taste, as best they can, and request that the machines still produce output per their bidding.
I really love how the bookshelf display looks. Most sites just use a standard grid for books, which can feel a bit cookie-cutter. The way you’ve mixed in stacked and bookend-style arrangements is a breath of fresh air, it really stands out.
This is lovely, claude code is a great tool for creating software for a user of 1. Personal software that runs locally (or on your own website in your case) and works exactly you want without it doing anything you don't want.
One-off scripts and single page html/css/js apps that run locally are fantastically accessible now too.
As someone who doesn't code for a living, but can write code, I would often go on hours/day long side quests writing these kind of apps for work and for my personal life. I know the structure and architecture but lack the fluency for speedy execution since I'm not writing code everyday. Claude code fills that speed gap and turned my days/hours long side quests into minutes for trivial stuff, and hours for genuinely powerful stuff at home and at work.
Vibe coding has really helped me explore skills outside of my comfort zone which can then be applied in combination with other existing skills or interests in new ways.
In the case of your project, I imagine that now that you can gather data such as books from an image of a bookshelf, you can do something similar in infinite other ways.
one thing i use the models for is shopping, do my shopping list in a .txt, copy it and send it to gpt/claude and tell it to organize by shelves, get out of the store in less than 10 minutes lol
Very very cool. It's surprisingly difficult to find applications for organizing reading material, and also to actually read them. My current "good enough" solution is just Apple Books, but I've been meaning to make a similar application for this :)
Digitizing my physical bookshelf was one of the first fun “vibe coding” projects I did with ChatGPT4o in 2024.
First, I took photographs of all my physical books simply by photographing the bookshelves such that the book spines were visible.
Then passed the photographs with a prompt akin to, "These are photographs of bookshelves. Create a table of book title and book author based on the spines of the books in these photographed shelves." ChatGPT4’s vision model handled this no problem with pretty high accuracy.
I then vibe-coded a Python program with ChatGPT4 to use the Google Books API (an API key for that is free) to generate a table, and then a CSV, of: book title, book author, and isbn13. Google Books API lets you look up an ISBN based on other metadata like title and author easily.
Finally, I uploaded the enriched CSV into a free account of https://libib.com. This is a free SaaS that creates a digital bookshelf and it can import books en masse if you have their ISBNs. You can see the result of this here for my bookshelf:
There are some nice titles in there for HN readers! My admin app for Libib (the one at https://libib.com) is more full-featured than the above public website showcases. It's basically software for running small lending libraries. But, in my case, the “lending library” is just my office’s physical bookshelf.
I also added a Libib collection there that is a sync of my Goodreads history, since I read way more Kindle books than physical books these days. That was a similarly vibe-coded project. But easier since Goodreads can export your book collection, including isbn13, to a file.
As for my actual physical bookshelf, it is more a collection of books I either prefer in print, or that are old, or out-of-print, or pre-digital & never-digitized.
I liked the Libib software so much I end up donating to it every year. I originally discovered it because it is used for Recurse Center’s lending library in the Recurse Center space in Brooklyn, NY (https://recurse.com).
Also, Libib has a Android, iPhoneOS, and iPadOS apps -- these are very basic but they do allow you to add new books simply by scanning their ISBN barcode, which is quite handy when I pick up new items.
I did enjoy reading the OP writeup, it’s a fun idea to vibe-code the actual digital bookshelf app, as well!
Will people use SaaS in the future or roll their own?
I’ve been working on opensource.builders, and what I keep seeing is that proprietary software has incentives that make personal software appealing. Commercial software is built for many different use cases and as it grows, it probably wants to capture more of the market. But with each new use case, new complexity is introduced. At some point, users are “programming,” but it’s just your config. With AI, why not program something that works exactly for your business?
That’s why so many people are getting into vibe coding. They’ve gone through the nightmare of using software where they only need one feature, or tools that have slowly gotten enshittified, and they realize it might actually be easier to build something that fits them instead of wrestling with layers of complexity that exist for everyone else’s edge cases.
Sometimes when I’m vibe coding I feel like Ender from Ender’s Game and even though I’m making a stupid web app, I’m actually somehow actually winning a battle across the universe.
spicyusername|2 months ago
At some point you hit a project size that is too large or has too many interdependencies, and you have to be very careful about how you manage the context and should expect the llm to start generating too much code or subtle bugs.
Once you hit that size, in my opinion, it's usually best to drop back to brainstorming mode, only use the llm to help you with the design, and either write the code yourself, or write the skeleton of the code yourself and have the llm fill it in.
With too much code, llms just don't seem able yet to only add a few more lines of code, make use of existing code, or be clever and replace a few lines of code with a few more lines of code. They nearly always will add a bunch of new abstractions.
cube2222|2 months ago
But I have no issues with using Claude Code to write code in larger projects, including adapting to existing patterns, it’s just not vibe coding - I architect the modules, and I know more or less exactly what I want the end result to be. I review all code in detail to make sure it’s precisely what I want. You just have to write good instructions and manage the context well (give it sample code to reference, have agent.md files for guidance, etc.)
pigpop|2 months ago
Once your codebase exceeds a certain size, it becomes counter-productive to have code that is dependent on the implementation of other modules (tight coupling). In Claude Code terms this means your current architecture is forcing the model to read too many lines of code into its context which is degrading performance.
The solution is the same as it is for humans:
You have to carefully draw boundaries around the distinct parts of your application and create simple interfaces for them that only expose the parts that other modules in your application need to use. Separate each interface definition into its own file and instruct Claude (or your human coworker) to only use the interface unless they're actually working on the internals of that module.Suddenly, you've freed up large chunks of context and Claude is now able to continue making progress.
Of course, the project could continue to grow and the relatively small interface declarations could become too many to fit in context. At that point it would be worthwhile taking a look at the application to see if larger chunks of it could be separated from the rest. Managing the number and breadth of changes that Claude is tasked with making would also help since it's unlikely that every job requires touching dozens of different parts of the application so project management skills can get you even further.
yarlinghe|2 months ago
For me, Codex ended up being the reliable executor for actual logic and glue code, while Claude Code (especially the frontend design skill) was much better at overall UI structure, spacing, and interaction flow. I stopped trying to make one model do everything and just let them do what they seemed naturally good at.
This only worked because the project was tiny and mostly stateless — once scope or dependencies grow, the coordination cost goes up fast. Curious if others have seen a similar split in practice, or if this is just project-type dependent.
mellosouls|2 months ago
The capabilities now are strong enough to mix and match almost fully in the co-pilot range on substantial projects and repos.
wonderwonder|2 months ago
aurareturn|2 months ago
pranavm27|2 months ago
solumunus|2 months ago
You can be explicit about these things.
dfilppi|2 months ago
[deleted]
Tiberium|2 months ago
> Claude did not invent that idea. It executed it.
> Claude handled implementation. I handled taste.
This style of writing always gets me now :)
AtreidesTyrant|2 months ago
^^ These dramatic statements are almost always AI influenced, I seem to always see them in people's emails now as well. "we didnt reinvent the wheel. we are the wheel."
RickS|2 months ago
I usually grimace at "GPT smell". The lines you quoted stood out to me as well, but I interpreted them as "early career blogger smell". It's similar, but it didn't come off as AI. I think because it avoided grandiose words, and because it reused the exact same phrase format (like a human tic) rather than randomly sampling the format category (like an AI). This is what human text looks like when it's coming from someone who is earnestly trying to have a punchy, intentional writing style, but who has not yet developed an editor's eye (or asked others to proofread), which would help smooth out behaviors that seem additive in isolation but amateur in aggregate.
Did others share the impression that it's a human doing the same classic tricks that AI is trained to copy, or does anything in this category immediately betray AI usage?
pranavm27|2 months ago
I think it some kind of value - vibe dynamics that play in making the brain conscious about it being written with AI or otherwise.
unknown|2 months ago
[deleted]
Terretta|2 months ago
spzb|2 months ago
boplicity|2 months ago
Why? People don't ask hammers to do much more than bash in nails into walls.
AI coding tools can be incredibly powerful -- but shouldn't that power be focused on what the tool is actually good at?
There are many, many times that AI coding tools can and should be used to create a "small program that already exists in multiple forms in the training data."
I do things like this very regularly for my small business. It's allowed me to do things that I simply would not have been able to do previously.
People keep asking AI coding tools to be something other than what they currently are. Sure, that would be cool. But they absolutely have increased my productivity 10x for exactly the type of work they're good at assisting with.
anon7000|2 months ago
This is still pretty great!
1: https://outofdesk.netlify.app/blog/perfect-software
josu|2 months ago
- https://highload.fun/tasks/15/leaderboard
- https://highload.fun/tasks/24/leaderboard
In both cases my score showed other players that there were better solutions and pushed them to improve their scores as well.
jungturk|2 months ago
Forgeties79|2 months ago
skrotumnisse|2 months ago
MontyCarloHall|2 months ago
Don't get me wrong, AI is at least as game-changing for programming as StackOverflow and Google were back in the day. Being able to not only look up but automatically integrate things into your codebase that already exist in some form in the training data is incredibly useful. I use it every day, and it's saved me hours of work for certain specific tasks [0]. For tasks like that, it is indeed a 10x productivity multiplier. But since these tasks only comprise a small fraction of the full software development process, the rest of which cannot be so easily automated, AI is not the overall 10x force multiplier that some claim.
[0] https://news.ycombinator.com/item?id=45511128
fny|2 months ago
More generally, I do think LLMs grant 10x+ performance for most common work: most of what people do manually is in the training data (which is why there's so much of it in the first place.) 10x+ in those domains can in theory free up more brain space to solve the problems you're talking about.
My advice to you is to tone down the cynicism, and see how it could help you. I'll admit, AI makes me incredibly anxious about my future, but it's still fun to use.
falcor84|2 months ago
lowkey_|2 months ago
90-99% of an engineer's work isn't entirely novel coding that has never existed before, so by succeeding at what "already exists", it can take us to 10x-100x productivity.
The automation of all that work is groundbreaking in and of itself.
I think that, for a while into the future at least, humans will be relegated to generating that groundbreaking work, and the AI will increasingly handle the rest.
belter|2 months ago
Here is how it works: I take the latest state of the art model, usually one of the two or three currently being hyped....and ask it to create a short document that teaches Java, Python, or Rust, in 30 to 60 min, complete with code examples. Then I ask the same model to review its own produced artifact, for correctness and best practices.
What happens next is remarkably consistent. The model produces a glowing review, confidently declaring the document “production ready”… while the code either does not compile, contains obvious bugs, or relies on outright bad practices.
When I point this out, the model apologizes profusely and generates a “fixed” version which still contains errors. I rinse and repeat until I give up.
This is still true today, including with models like Opus 4.5 and ChatGPT 5.2. So whenever I read comments about these models being historic breakthroughs, I can’t help but imagine they are mostly coming from teams proudly generating technical debt at 100× the usual speed.
Things go even worst, when you ask the model to review a Cloud Architecture....
pranavm27|2 months ago
I am happy as is tbh, not even looking for AGI and all. Just that the LLM be close enough to my thinking scale so that it does not feel "why am I talking with this robot".
SJMG|2 months ago
Not either of the species of algorithms you've described, but still an advance.
wonderwonder|2 months ago
plaidfuji|2 months ago
dboreham|2 months ago
1. Current LLMs do much better than produce "small programs that already exist in multiple forms in the training data". Of course the knowledge they use does need to exist somewhere in training data, but they operate at a higher level of abstraction than simply spitting out programs they've already seen whole cloth. Way higher.
2. Inventing a new compression algorithm is beyond the expectations of all but the the most wild-eyed LLM proponents, today.
bdcravens|2 months ago
zellyn|2 months ago
This is going to destroy my home network, since I never moved it off the little Lenovo box sitting in my laundry room beside the Eero waypoint, but I’m out of town for three days, so
Granted, the seed of the idea was someone posting about how they wired pyiodide to Ace in 400 lines of JavaScript, so I can’t truly argue it’s non-trivial.
As a light troll to hackernews, only AI-written contributions are accepted
[Edit: the true inception of this project was my kid learning Python at school and trinket.io inexplicably putting Python 3 but not 2 behind the paywall. Alas, Securely will not let him and his classmates actually access it ]
blks|2 months ago
cube2222|2 months ago
That seems to be a strawman here, no? Sure, there exist people/companies claiming 10x-100x productivity improvements. I agree it's bullshit.
But the article doesn't seem to be claiming anything like this - it's showing the use of vibe-coding for a small personalized side-project, something that's completely valid, sensible, and a perfect use-case for vibe-coding.
fiyec30375|2 months ago
[deleted]
rvz|2 months ago
This is the "promise" that was being sold here and in reality, we yet haven't seen anything innovative or even a sophisticated original groundbreaking discovery from an LLM with most of the claims being faked or unverified.
Most of the 'vibe-coding' uses here are quite frankly performative or used for someone's blog for 'content'.
nindalf|2 months ago
My experience with Claude was mostly very good. Certainly the UI is far better than what I'd come up with myself. The backend is close to what I'd write myself. When I'm unhappy I'm able to explain the shortcomings and it's able to mostly fix itself. This sort of small-scale, self-contained project was made possible thanks to Claude.
Other times it just couldn't. The validation for the start and end dates it decided was z.string().or(z.date()).optional().transform((val) => (val ? new Date(val) : undefined)). It looked way too complex. I asked if it could be simplified, Claude said no. I suggested z.date().optional(). Claude patiently explained this was impossible. I tried it anyway, it worked. Claude said "you're absolutely right!". But this behaviour was the exception rather than the rule.
yoz-y|2 months ago
I also have a bookshelf (fully manual, in another comment), and I’m looking for better ways for retention. I do highlights but I rarely do notes. Also with audiobooks I have yet to find a good way to do this outside of my text note for each book I’m reading/listening-to.
quinnjh|2 months ago
cool to check out your version as well thanks for sharing.
tharos47|2 months ago
disconcision|2 months ago
It was very surprising to me that claude wasn't very good at even the latter. It took several rounds of prompt refinement, including very detailed instructions, to get even 75% non-broken links, from ~30% on first attempt. It really liked to hallucinate goodreads URLs with the book title in them but an invalid ID (the title part of URLs is ignored by goodreads).
The former was less surprising... It attempted a very rough manual strategy for generating superimposed SVG outlines on the books, which often started okay but by the right side of the the image often didn't even intersect the actual spines. I tried to verbally coax it into using a third party segmenter, but with no luck. We eventually found a binary search style iterative cropping strategy that worked well but was taking 6 minutes and nearly a couple dollars per spine so I killed that and just did the SVG outlines in figma myself.
* https://andrewblinn.com scroll down to find the bookcase and drag down on it to zoom and unlock the books
felixding|2 months ago
Side note: I once wrote about recreating Delicious Library: https://dingyu.me/blog/recreating-delicious-library-in-2025
dewey|2 months ago
pixelmonkey|2 months ago
m-hodges|2 months ago
So many systems are fault-tolerant, and it’s great to remember that in a world where LLMs introduce new faults. Kudos to OP for this mindset; more anti-AI posters would benefit from sitting with the idea from time to time.
JKCalhoun|2 months ago
theshrike79|2 months ago
So many people's lives would be better if 90% of their daily tasks could be automated by LLMs, letting them spend more time doing the hard 10% properly.
nithinbekal|2 months ago
This is such a key thing I remind myself when I build apps like this for myself. I have a similar app that has a page with 900-odd ratings, and another with 550 owned books. I decided that I won't bother with infinite scroll or complex search and filtering until my browser can no longer handle rendering that data. "Find in page" works well enough for me for now.
cdcarter|2 months ago
I really enjoy the ability to get started quickly with a known idea like “make a single user letterboxd clone” with a system prompt that explains my preferred tech stack. From there it’s relatively easy to start going in and being the tastemaker for the project.
I think people being able to build their own bespoke apps is a huge super power. Unfortunately I don’t think the tools today do a good job of teaching you how to think if you aren’t already a software engineer. Sonnet rarely grasps for an abstraction.
pixelmonkey|2 months ago
wek|2 months ago
This is my experience with agents, particularly Claude Code. It supplies sufficient activation energy to get me over the hump. It makes each next step easy enough that I take it.
yoz-y|2 months ago
https://yozy.net/books/
RickS|2 months ago
keyle|2 months ago
It's amusing that the author might feel a sense of accomplishment and super powers when in fact this is a complete moo point in terms of real gain and a tool of entertainment (consumption) and not productivity as original intended.
There is a silver line in there, for the people that care about software.
apublicfrog|2 months ago
Like a cows opinion - it doesn't matter?
> this is...a tool of entertainment (consumption) and not productivity as original intended.
And? I wrote BASIC as a kid, and everything I coded was for entertainment, not productivity.
The usability for him appears high. If you're building a tool just for yourself (or or fun), why does it matter?
tahirk99|2 months ago
butlike|2 months ago
cube2222|2 months ago
I’ve been vibe-coding a personalized outliner app in Rust based on gpui and CRDTs (loro.dev) over the last couple days - something just for me, and in a big part just to explore the problem space - and so far it’s been very nice and fun.
Especially exploring multiple approaches, because exploring an approach just means leaving the laptop working for an hour without my attendance and then seeing the result.
Often I would have it write up a design doc with todos for a feature I wanted based on its exploration, and then just launch a bash for loop that launches Claude with “work on phase $i” (with some extra boilerplate instructions), which would have it occupied for a while.
darkwater|2 months ago
I wanted to try a Show HN as well but I feared that the HN crowd would tear it and me down so... I didn't.
[1] check my comments history
samwho|2 months ago
Something you don’t really mention in the post is why do this? Do you have an end goal or utility in mind for the book shelf? Is it literally just to track ownership? What do you do with that information?
balajmarius|2 months ago
I want my website to slowly become a collection of things I do and like, and this bookshelf is just one of those pieces.
pokemyiout|2 months ago
I've actually been working on something similar since I also had this pain (plus I'm too cheap to buy all the books I'm reading)
To solve the issue related to having take the photos myself, I scrape from places like eBay to get the accurate spine images. Obviously this isn't 100% accurate, but like you I also decided 90% accuracy is good enough.
https://www.tinyshelf.me/maler/fav
oleggromov|2 months ago
However, to me as a person with an anti-library as well, this kind of defies the purpose of having it in the first place. I can't say I browse my books too often but when I want to find something, I'd rather browse physical things on a shelf rather than some out-of-date UI with fetched thumbnails. Of course the organization happens in physical space too: this is why we have shelves, labels and such.
Obviously no judgement or criticism for the author, just sharing thoughts.
ionicabizau|2 months ago
monerozcash|2 months ago
ear7h|2 months ago
> I started asking for things I did not need.
For a community that prides itself on depth of conversation, ideas, etc. I'm surprised to so much praise for a post like this. I'll be the skeptic. What does it bring to you to vibe code your vibe shelf?
To me, this project perfectly encapsulates the uselessness of AI, small projects like this are good learning or relearning experience and by outsourcing your thinking to AI you deprive yourself of any learning, ownership, or the self fulfillment that comes with it. Unless, of course, you think engaging in "tedious" activities with things you enjoy have zero value, and if getting lost in the weeds isn't the whole point. Perhaps in one of those books you didn't read, you missed a lesson about the journey being more important than the destination, but idk I'm more of a film person.
The only piece of wisdom here is the final sentence:
> Taste still does not [get cheaper].
Though, only in irony.
NewsaHackO|2 months ago
bhouston|2 months ago
I wonder if you could develop this as an add on to Hardcover.app - you could fetch people's books, images, and display the bookshelf.
All the data seems to be there:
https://hardcover.app/@BenHouston3D/books/read?order=owner_l...
TheGoodBarn|2 months ago
kgthegreat|2 months ago
neogodless|2 months ago
micromacrofoot|2 months ago
you can tell by how many people earnestly share AI generated images, many are completely tasteless but people don't care
troupo|2 months ago
SerpAPI provides a very valuable programmatic access to search that Google are hell bent on never properly providing
pranavm27|2 months ago
Vibe coded a library last month for my website however its much simpler and has Antilibrary section for all the stuff I have not read.
kgthegreat|2 months ago
zittur|2 months ago
kingkongjaffa|2 months ago
One-off scripts and single page html/css/js apps that run locally are fantastically accessible now too.
As someone who doesn't code for a living, but can write code, I would often go on hours/day long side quests writing these kind of apps for work and for my personal life. I know the structure and architecture but lack the fluency for speedy execution since I'm not writing code everyday. Claude code fills that speed gap and turned my days/hours long side quests into minutes for trivial stuff, and hours for genuinely powerful stuff at home and at work.
aboardRat4|2 months ago
https://gitlab.com/Lockywolf/bookshelf
dawnerd|2 months ago
shimman|2 months ago
damnitbuilds|2 months ago
I wish book archive sites like archive.org scanned and stored the book spines as well as the covers, but AFAICT none do.
vtemian|2 months ago
walthamstow|2 months ago
Very relatable!
unknown|2 months ago
[deleted]
phyzix5761|2 months ago
stevesearer|2 months ago
Vibe coding has really helped me explore skills outside of my comfort zone which can then be applied in combination with other existing skills or interests in new ways.
In the case of your project, I imagine that now that you can gather data such as books from an image of a bookshelf, you can do something similar in infinite other ways.
unknown|2 months ago
[deleted]
mihaibalint|2 months ago
guluarte|2 months ago
stanrunge|2 months ago
godber|2 months ago
This is a critical observation of the vibocene.
pixelmonkey|2 months ago
First, I took photographs of all my physical books simply by photographing the bookshelves such that the book spines were visible.
Then passed the photographs with a prompt akin to, "These are photographs of bookshelves. Create a table of book title and book author based on the spines of the books in these photographed shelves." ChatGPT4’s vision model handled this no problem with pretty high accuracy.
I then vibe-coded a Python program with ChatGPT4 to use the Google Books API (an API key for that is free) to generate a table, and then a CSV, of: book title, book author, and isbn13. Google Books API lets you look up an ISBN based on other metadata like title and author easily.
Finally, I uploaded the enriched CSV into a free account of https://libib.com. This is a free SaaS that creates a digital bookshelf and it can import books en masse if you have their ISBNs. You can see the result of this here for my bookshelf:
https://www.libib.com/u/freenode-fr33n0d3
There are some nice titles in there for HN readers! My admin app for Libib (the one at https://libib.com) is more full-featured than the above public website showcases. It's basically software for running small lending libraries. But, in my case, the “lending library” is just my office’s physical bookshelf.
I also added a Libib collection there that is a sync of my Goodreads history, since I read way more Kindle books than physical books these days. That was a similarly vibe-coded project. But easier since Goodreads can export your book collection, including isbn13, to a file.
As for my actual physical bookshelf, it is more a collection of books I either prefer in print, or that are old, or out-of-print, or pre-digital & never-digitized.
I liked the Libib software so much I end up donating to it every year. I originally discovered it because it is used for Recurse Center’s lending library in the Recurse Center space in Brooklyn, NY (https://recurse.com).
Also, Libib has a Android, iPhoneOS, and iPadOS apps -- these are very basic but they do allow you to add new books simply by scanning their ISBN barcode, which is quite handy when I pick up new items.
I did enjoy reading the OP writeup, it’s a fun idea to vibe-code the actual digital bookshelf app, as well!
asasidh|2 months ago
This is the right mindset.
_vqpz|2 months ago
hu3|2 months ago
theturtletalks|2 months ago
I’ve been working on opensource.builders, and what I keep seeing is that proprietary software has incentives that make personal software appealing. Commercial software is built for many different use cases and as it grows, it probably wants to capture more of the market. But with each new use case, new complexity is introduced. At some point, users are “programming,” but it’s just your config. With AI, why not program something that works exactly for your business?
That’s why so many people are getting into vibe coding. They’ve gone through the nightmare of using software where they only need one feature, or tools that have slowly gotten enshittified, and they realize it might actually be easier to build something that fits them instead of wrestling with layers of complexity that exist for everyone else’s edge cases.
TheChelsUK|2 months ago
stevesearer|2 months ago
Shadowmist|2 months ago
kaizenb|2 months ago
CerNai|1 month ago
[deleted]
k4rnaj1k|2 months ago
[deleted]
necromanc|2 months ago
[deleted]
xnx|2 months ago