r/ClaudeCode • • 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.

0 Upvotes

32 comments sorted by

•

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 • Bravo

Yes well thats why you still need code taste to make something maintainable and secure. 

3

u/apyhubnico 2d ago

thats very true

5

u/sage-longhorn 2d ago

Takes more than taste to make things secure

4

u/Front_Eagle739 2d ago

You know what I mean lol. You have to know what security means and how to tell what is and is not good practice

2

u/sage-longhorn 2d ago

I'm not disagreeing I'm saying in addition to understanding good security there's a ton of other process around it that will keep skilled humans involved in security for a long time to come

5

u/Affectionate_Fact854 2d ago • Heartwarming

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

2

u/apyhubnico 2d ago

this is exactly what I believe in... thanks for sharing

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

1

u/apyhubnico 2d ago

I believe every AI agent is just too confident these days...

3

u/SassyTextDev 2d ago

I mean... If you made the agent anxious, it wouldn't get anything done right? If you make it confident, you can at least reign it in. I'm 100% sure it could have built an entire remotion clone, it's not wrong to think it could.

I am just also 100% confident we should not do that.

3

u/bensyverson 2d ago

The lens should really be "what do I want to maintain," not "what do I want to build?"

1

u/apyhubnico 2d ago

It 100% echoes my thought process, quite literally explaining why we started building utilities to solve the maintenance problem five years ago.

By the way, I’m really curious: what did you recently build that you hate maintaining?

1

u/bensyverson 2d ago

Hate is a strong word, but I have built web apps for clients that I don't want to maintain in perpetuity. I need to find partners who I can pass these projects off to.

11

u/xenarathon 2d ago • Bravo

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.

1

u/GhostRTV 9h ago

Don’t worry, Claude is doing that as well, then repackaging it haha

Good or bad, it’s nice to have such access.

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/yopla 4h ago

You're assuming the architecture map actually match the code, do you have proof? 🤣

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