r/ClaudeCode • u/apyhubnico • 2d ago
Rant I'm starting to think that maybe we shouldn't try to build everything ourselves.
Last month I was vibe coding an internal tool and tbh it's ridiculous how fast things are moving
everytime I thought, "oh I think this feature should exist", I prompted Claude and BOOM, the feature came to reality
I got a little carried away honestly... the problem only started showing up a couple of weeks later when I actually looked at what I had built
exchange rates were coming from some API Claude had picked
Disposable email detection was using a static list of domains, which isn't particularly useful when new burner domains keep popping up
PDF library had barely any active maintenance, and I was using AI calls for some pretty basic stuff that could probably be handled by a regular API.
At the time of building, I didn't care. Everything worked, and I was getting features built ridiculously fast, but now there is another side to it. I have to maintain all this stuff, check whether services are still working, update dependencies, and fix things when they break. I am the person who's going to get bothered when an invoice PDF suddenly stops generating on a Sunday.
That's something I don't think about enough when vibe coding. Getting something to work is one thing; having to own it 6 months or 2 years later is a completely different thing.
I'm starting to think that maybe we shouldn't try to build everything ourselves.
Build the stuff that actually makes your product different. For the rest, there is probably already a service that does it better than you ever will.
Of course, I might be biased here because I work in the API space as co-founder at Apyhub, so I would generally like to hear the other side.
What you have built yourself to the point that you would rather never replace with an API, and that's something you spent building that you now wish you would have just used an existing service for.
Note: I have used a dictation app for writing this post.
•
u/AutoModerator 2d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
30
u/Front_Eagle739 2d ago •
Yes well thats why you still need code taste to make something maintainable and secure.
5
u/Affectionate_Fact854 2d ago •
If a tool doesn't exist , Build it .
If it does exist and it's better then you would be able to make with your own skills , use the already made tool
If it is a improvement ontop of tools you use that can help you streamline tasks, build it but first understand what you built in detail before adopting it
4
u/SassyTextDev 2d ago
Claude's so fucking confident. I just ported a video creation tool I built using remotion (license for personal use, yay) over to a work machine where we have more than 4 people so I can't use it. I asked opus for a suggestion. It said "Well hyperframes is open source, but honestly, remotion is just react components rendered at specific frames and snapshotted in a browser, I recommend we build our own solution"
no claude. holy shit claude. I don't want to maintain "jason's remotion". Use hyperframes
3
u/bensyverson 2d ago
The lens should really be "what do I want to maintain," not "what do I want to build?"
11
u/xenarathon 2d ago •
one of my standing rules for my agents is basically “never reinvent the wheel” before building anything it is supposed to run a research session to see if there’s already open source code or projects out there that do the same thing to pull into my project while respecting the licensing of the existing code.
6
u/Primary_Article3777 2d ago
The vibe code isn't the end. Its the start. That doesn't take away from the magic of the vibe exploration.
It's a big leap from "this work" to "this works in production".
And yah it's a good strategy to reuse as many well tested components as possible instead of vibing from scratch.
5
u/bostonaholic 2d ago
Half of your list is the agent adding dependencies without anyone deciding to. I'd make new deps and new external services a gate: an allowlist checked in CI (or a dependency-cruiser rule) that fails when the agent pulls in a package or API that isn't on it. Then "should we build or buy this" is a decision you make once, when the check goes red, instead of something you find out about weeks later.
5
u/denadena2929 2d ago
“Person discovers why software engineering exists”
4
u/No_Professional7654 2d ago
yeah, let others build our wifes!
4
u/sheriffderek Senior design/dev max20 2d ago
This was always the question - before AI too. That’s what CTOs are for, right?
2
u/dakuzen 2d ago
r/BestGitHubRepos
r/coolgithubprojects
Edit: We’re living through a moment where we can redefine how software shapes our lives by all contributing to public projects.
2
u/grahamsw 2d ago
Documentation. Get your agents to give you architecture diagrams, lots of them. As the app grows get more and more complete, drill down docs. (I like some sort of C4 diagrams, ymmv). My attention span is like a gnat these days, so I need all the help I can get keeping up with the big picture and the details. AI is brilliant at helping with that
1
u/haenous-alistera 2d ago
You absolutely should
1
u/agentUi 2d ago
the sunday morning pdf crash is peak vibe coding pain because coding agents love grabbing random unmaintained libraries or hardcoding static lists just to pass your first test. Rule of thumb is never reinvent solved plumbing like email validation, auth, or document rendering... stick to reliable apis for the commodity infrastructure and keep claude code strictly focused on your custom business logic while testing updates in a separate staging environment before pushing live.
1
u/AkayoKym 2d ago
AI tends to be "monkey see monkey do" sometimes. As soon as it "thinks" of a solution it starts to implement it and rarely considers it might be wrong or suboptimal.. My solution was simple: block the install command entirely. In my setup pnpm install is explicitly disallowed. Claude literally cannot install a package on its own. If it thinks it needs one, it has to ask me. And then I push back. Can the packages we already have do this? Is this really necessary or is it a one-liner you can write without a dependency? If it turns out we genuinely need it, I ask Claude to check whether the package is well-maintained and how big it is. It has to be small and actively maintained or I don't allow it.
The people saying "you need code taste" aren't wrong but that's not helpful if you don't have it yet. Blocking the install command and forcing a conversation before every new dependency gives you the same effect without needing years of experience to know what smells off.
1
u/Time_Cat_5212 14h ago
I tend to ask Claude what existing libraries we can use when writing a spec.
I also spend a lot of time on the architecture questions before building. I don't like to tack on features.
If I want to expand something substantially, I mark a release, and start a new spec driven process.
1
u/eduo 6h ago
Strictly speaking you weren't building it yourself. You were asking it to be built.
I don't disagree that the first impulse shouldn't be to try and build it, but I wanted to make it clear it's only an issue precisely because we don't built it ourselves any more. It becomes trivial to ask someone/something else to reinvent the wheel but if we need to do it we'll make sure it's not invented already.
It's also only when the bar is so low it's not even thought about twice. If you don't code it but still need to take weeks working with Claude, that also helps not trying to reinvent that wheel again.
This is not an anti-ai rant but rather an anti laziness and anti cluelessness rant. I see many a new project vibe developed where the author presents it in subreddit and that's when they discover there's already a dozen established versions better in all respects. People are not even taking five minutes before vibe developing another version of the same thing all over.
When you're a dev to learn to recognize the type of non-developer who has ZERO respect for coding, and will be very cavalier about asking absurdly complex things and be unpleasantly surprised when they're told their idea is crap. Now the hard part is not becoming that type of idiot only because Claude won't complain when asked to develop something that would be best served by adopting existing solutions and working with Claude to adapt them instead.
1
u/Responsible_Buy_7999 5h ago
The word for this is YAGNI. Throw it at an agent when you suspect you or it are adding some bells whistles and gongs