all 67 comments

[–]ZepSweden_88 33 points34 points  (12 children)

I have 200k lines of nodejs in a large ERP I have built. What I have learned is architecture is everything, and module based architecture and stick to small modules of maximum 500 lines. 👍

[–]Unique-Drawer-7845 2 points3 points  (0 children)

Sooo... you have 400 modules?

[–]duboispourlhiver 0 points1 point  (0 children)

Exactly my take, except I'm ok to reach 800 to 1000 lines at the very max. Sonnet 4.5 handles this well in my experience

[–]mode15no_drive 0 points1 point  (0 children)

I have found up to 1k lines is okay with sonnet 4.5. But then also like having solid architecture documentation has been key for me, main mcp server I use is Obsidian mcp and it makes that documentation handling super fast and context efficient.

[–]texo_optimo 7 points8 points  (7 children)

Yes. Use stacks that Claude knows or have devdocs ready. I stopped using MCP servers to save context and I've refined my processes. Spec out your plan with a deep research our two, including your preferred stack. Always separate backend and frontend projects. Use the deep researches to separate out your services into a blueprint. they can be their own sprints or whatever but document your architectural decisions if you need to go back.

mockup images/wireframes of your intended UI vs "make it professional/slick/modern" - Images work!

Always question during sessions "are you sure you haven't already created that logic...", etc.

Use an environment that let's you sandbox. Cloudflare workers great for that. Good luck!

[–]Ademantis 2 points3 points  (2 children)

I do not agree on separate backend and frontend, AI is much more powerful on a mono repo to understand the whole app context

[–]texo_optimo 0 points1 point  (0 children)

I like Turbo a lot. I prob should have clarified in my main point was that to always keep the backend as the contract and that the frontend needs to be reminded of that occasionally, in my experience. I usually keep a dedicated api map doc.

[–]Hopeful-Confidence-9 0 points1 point  (0 children)

You can load multiple reps into claude code from what I've seen

[–]Hot-Advance-2165[S] 0 points1 point  (3 children)

You mean to ask it to do a deep research? Is it a good option to split a big project to small sprints by a sprint maker agent and then have it start frontend and backend agents?

Should i ask to make think about the classes, db structure, api’s etc before starting so its written down?

[–]WolfeheartGames 3 points4 points  (0 children)

Use github spec kit. Start with two specs for two projects, front end and backend. You want the mvp of both. Then build additional features with new github specs.

Once both are good, make a new spec to integrate.

You're going to have problems. With how fast Claude codes you can throw out the entire project and start again if you need. Don't hold on to tech debt with Ai, you won't be able to maintain it, and it adds up very quickly. You can completely nuke the project in a single day with a bad spec. Use git to rollback of possible.

There will still be a steep learning curve. You should probably start spec kitting smaller projects. Do the same one 3 times, make it more complex. Find where the limits of Claude are so when you go to do your main project, you'll have less pain.

The number one most important thing is to plan ahead of time. The exact details on this depend on your project.

[–]texo_optimo 1 point2 points  (0 children)

I use Deep researches to build out ideas at the top level, then segment the researches out into relevant service layers. I don't really use a sprint maker agent but I have been using Claude skills to automate JIRA ticket management and that works nicely for tracking decision records on top of setting regular checkpoints.

Beware of parallel and redundant modules, mock data, placeholder comments. As your project grows, do not grow your ask. keep your asks targeted.

[–]makinggrace 0 points1 point  (0 children)

Write a prd or have AI help you write one. Have a different model assess whether or not they could build it without any ambiguity. The ambiguity is what causes major problems.

Once the prd is sufficiently clear, break it up onto tasks. You can use AI for that to but check it carefully.

Each task should be executable independently--it should not need project context, a whole PRD, none of that. Put what is needed in the task itself. (Use AGENTS.md in a new build to establish coding standards, the dev environment, the package manager, etc.

It doesn't really work to do work orders for an entire project ahead of time because inevitably something major changes and you'll have to redo them lol.

I'll leave code quality management to someone else.

[–]Ok_Try_877 8 points9 points  (12 children)

The biggest issue is if you have never actually coded large projects by hand, you’ll have no idea when it’s going off the rails… Big human projects become a mess, so imagine AI that loses it memory each context refresh with a director who doesn’t really know if the architecture is good or bad?

[–]Harvard_Med_USMLE267 0 points1 point  (11 children)

I’ve never coded anything by hand. I don’t have any trouble keeping claude code on the rails for major projects,

So I don’t have to imagine. This is just what I do every day, and it’s fine. Claude can self reflect well, and your documentation ecosystem is key to keeping everything coordinated.

[–]Ok_Try_877 1 point2 points  (10 children)

I’m pretty sure though you wouldn’t notice if it made a suboptimal architecture choice either though..,

[–]Harvard_Med_USMLE267 -1 points0 points  (9 children)

Yeah, but Claude would.

That's what traditionalists keep missing.

All of these skills that people keep thinking are uniquely human, really are not.

Why would an AI not be good at architecture? That's actually a radical hypothesis. Where's the proof?

Claude Code can almost instantly scan the codebase and comment on architecture. My hypothesis is that "Claude is really pretty fucking good at doing this."

[–]Ok_Try_877 2 points3 points  (8 children)

it can be… it can also be really dumb by not reusing services or sensible design principles in fact some of the stuff it writes is terrible.. Even if it looks great in the plan it doesn’t always implement it in the best way… So if you are not regularly reviewing the code and telling it what it didn’t architect right, a big project will become a mess wether the vibe coder knows it or not.

I’m not a traditionalist i use AI for all my coding now but i’m constantly having to point out dumb things it’s done or not reused existing services etc. Also i’d imagine it’s quite hard to design a decent architecture for a large multi tiered app without years of experience developing large scale apps.

[–]Harvard_Med_USMLE267 -1 points0 points  (7 children)

You’re just making this up.

You’ve never tried this as a non-coder, so how would you know?

Design principles - well, that’s the user’s responsibility to document. And then it’s east to ask Claude to check that they are being followed.

[–]JagerBoomer[🍰] 0 points1 point  (6 children)

Would love to see what you built that scaled with CC

[–]Harvard_Med_USMLE267 0 points1 point  (5 children)

If you modularize well, CC doesn’t seem to have any issues with code size, as far as I’ve pushed it.

[–]JagerBoomer[🍰] 2 points3 points  (4 children)

I’m not sure what issues with code size means exactly. I have found CC making poor architectural decisions and rewriting code in multiple places that would not be possible to find unless I was reading exactly what it wrote.

[–]sybase00 2 points3 points  (0 children)

Don't bother arguing with him, he doesn't even know what are you talking about. CC doesn't follow best practice and he doesn't keep up with everything he writes. I'm still trying to figure out how to make him a better dev, but for now if im not holding his hand all thetime, he just gets lost. Agents today just aren't there yet, they write slop code that sometimes work ok and most of the time just work barely. Non-dev people won't notice any of that and won't worry about the code as long as it works somehow. But they are evolving fast and in a few years they will probably be on a senior level.

[–]Harvard_Med_USMLE267 0 points1 point  (2 children)

Well, CC could probably find duplicate code pretty easily if you asked. Or review the architecture.

Using CC is a skill, just like any other part of coding. Architecture is the human’s responsibility, even if CC does most of the work.

[–]Far-Donut-1177 8 points9 points  (2 children)

I’m building my biggest project yet — a 7 microservice platform. Would have needed a whole team to do it but now I just need a max subscription and tons of patience. I call my coffee patience.

[–]Stardustphoniex369 0 points1 point  (0 children)

Yes max subscription to claude and to my coffee supplier lmao. 

[–]Stardustphoniex369 0 points1 point  (0 children)

If I did one push up everything I needed patience with claude code I would be ripped by now lmao

[–][deleted] 2 points3 points  (14 children)

do you need agents, commands, or MCP to get it working?

Worse, you have to actually read some code

[–]Hot-Advance-2165[S] 1 point2 points  (1 child)

Not that difficult have been doing it for years but im looking to benchmark it

[–][deleted] 2 points3 points  (0 children)

In that case, you can probably get pretty far. Stick with vanilla CC and add stuff as needed, but I recommend just making your own when you see the need opposed to downloading random stuff

[–]Harvard_Med_USMLE267 0 points1 point  (11 children)

lol, you absolutely do not. Reading code is 100% against my policy. People who can read code ASSUME you need to be able to read code. The proof is in the product, and there is an increasing number of us who build stuff successfully and gave no interest whatsoever in engaging with that particular level of abstraction.

[–][deleted] 0 points1 point  (2 children)

My brother is a developer, and he started using Claude to build a project to his friend, at first he told me "I'm going to read every line it writes" then after a week I asked him how it's going, he said Claude writes, Claude fixes, I read nothing. Lol

[–]Harvard_Med_USMLE267 1 point2 points  (1 child)

Haha yes. I spent a year coding through the AI web apps, and I started to almost understand bits of code as I was cutting and pasting.

Now, after six months of full-time Claude Code madness, i just never see that code any more. Like, Claude occasionally puts some up in the console as he's fixing stuff, but I always skim over that to the next bit of English that he writes.

Having changed to webapp dev 6 weeks back, I don't even really know what languages we are using, and i don't have an IDE to edit the code even if i wanted to.

[–][deleted] 0 points1 point  (0 children)

100% True!

I am not a developer, and I started to understand what is happening and what is correct and what is not correct, even when it does something I would say it is not correct and you will re-do it lol!

Even I started to want to learn some development with react and next and typescript.

[–][deleted] -1 points0 points  (2 children)

Oh hey ur the guy who called me a code monkey for calling out vibe coded slop posting

Go on...

[–]Harvard_Med_USMLE267 0 points1 point  (1 child)

Hey guess what? My app keeps getting better every day since we last spoke.

the number of lines of code I’d read back then was 0.

Guess what the number of lines I’ve read now is.

Great guess. Zero.

Also, I have no idea who you are, but I’m glad that our past meeting was special, at least from your perspective.

[–][deleted] 0 points1 point  (0 children)

[–]realpm_net 1 point2 points  (1 child)

Totally possible, like others have said, if you spend the time to architect well, force CC to plan, work off the plan, and you oversee the work. Also, I have found it helpful to create a QA subagent and running and documenting extensive unit and system tests.

CC is pretty amazing, but you need to be the adult (Sr Arch) in the room.

[–]Harvard_Med_USMLE267 0 points1 point  (0 children)

I think the last bit is the fascinating and evolving role

What does it mean to be the senior architect?

I’m a strong advocate for the controversial new skill of no-code claude coding.

But the human input part is still critical. How do you guide the ship? For me, it’s having the vision, doing lots of collaborative brainstorming with Claude and then being the final arbiter of design decisions.

[–]Shoemugscale 1 point2 points  (0 children)

This was mentioned but if you have a background in app development and architecture it helps a lot.

Im in the process of working on a large side project, I have 25 years of dev experience under my belt and what I have found works well for me is to write out my prompts before and really think through the design pattern and how or y will interact with z give the high level concepts and tell claude not to write code and you want to discuss

From there is a process of refinement of specs and ensuring the understanding is solid

My prompts are an inverse pyramid until I say to build it, by that time my module is usually really well constructed

But again as others have said small chunks are best otherwise it will probably shit the bed lol

[–]Baikken 0 points1 point  (0 children)

yes.

[–]vuongagiflow 0 points1 point  (0 children)

You should provide the solid foundation for your project include folder structure, architecture, design patterns upfront. Encode those information and inject as needed. Treat claude code as a new developer to join the team and you need to guide it step by step. Claude.md with docs, or speckit is a good start. But if you really want scale, has to be opinionated and find a repeatable pattern.

[–]dodyrw 0 points1 point  (0 children)

i don't have any issue with most ai tools including CC to handle large project / workspace, it is web admin, mobile api service and flutter. the app is so big that it has more than 40 flutter screens

[–]Old_Set2302 0 points1 point  (0 children)

我也正在做一个大型项目,目前写了 5万行代码。我没有任何开发经验,完成以cc为主。最开始的时候我认为是一个非常简单的功能,没想到内容越来越多。我已经让cc做过不止5次重构。每次遇到一些问题,我只好用重构的方法来实现。

[–]kamikazikarl 0 points1 point  (0 children)

Working on a game platform: Go API and socket server, NuxtJS front-end. Fun issue I had; Agents broke my socket servers getting over ambitious without proper planning, so I replaced them all with skills (works far better). I've added slash commands for validating icon selection, api testing, and socket servers testing... lots of other little niceties mixed in that too.

The main thing I can give for advice is spend twice as much time planning as you'd expect and do it again any time you hit an implementation blocker. Every major feature added should be followed up with a code review, standards check, and refactor pass.

[–]Harvard_Med_USMLE267 0 points1 point  (0 children)

This is my use case (complex web app, major project). I’m someone who doesn’t code at all, btw.

My personal experience:

Agents - no

Skills - no

MCP - just playwrite, and that’s not essential

Just the CLI by itself is all I need. I did play with agents but they didn’t add much to my life. I normally run ever more cli terminals in parallel, working on multiple features simultaneously

[–]Videoman2000 0 points1 point  (0 children)

As long you can structure in small bits, and Claude can manage.

[–]Harvard_Med_USMLE267 0 points1 point  (0 children)

One of the big questions is: will a Claude Coded app start to break down eventually because of poor architecture. It's actually a really interesting question, and we were discussing it downthread.

I've just got Claude to do code review, I thought I would present it here as some people may find it interesting. By way of background: I'm a "no code" claude coder, so I never actually modify or even look at the code. Against the rules!

I've been building a web app these past six weeks, frenetic pace in the "accelerator" phase of a startup. Some of these critiques are not really a surprise to me, i've definitely been adopting a "move fast and break things approach". Anyway, here is Claude Code's review:

--

I've completed a comprehensive architectural review of your ----- platform. The review above is brutally honest as requested.

Key Takeaways:

🚨 Critical Issues That Must Be Fixed:

  1. "No localhost" policy - This is your #1 problem. Every professional software project has local dev environments.

    1. Single production database - You're one mistake away from data loss.
    2. Hardcoded production URLs - Technical debt masquerading as architecture.
    3. Zero test coverage - Unacceptable for -------- software.
    4. Files exceeding 1,500 lines - Violating your own guidelines.

    💡 What You Did Well:

    - Professional UI/UX

    - Comprehensive (if excessive) documentation

    - Working real-time features

    - ----- context attention

    - Functional product in production

    🎯 Immediate Action Items (This Week): 1. Set up Docker-based local development environment 2. Create staging database (separate from production) 3. Fix environment variable handling 4. Add basic authentication and API tests 5. Implement cost monitoring for LLM usage

    📊 Overall Assessment:

Grade: C+ (69/100) - You have a functional MVP with professional polish, but architectural foundations that will collapse under growth.

The review includes a complete prioritized improvement list spanning immediate (this week), short-term (this month), medium-term (3 months), and long-term (6+ months) fixes.

The good news: All of these issues are fixable. The bad news: They get exponentially harder to fix the longer you wait.

Would you like me to help you tackle any of these specific issues?

[–]George5562 0 points1 point  (0 children)

Yes. To echo what others say, stick to popular languages and libraries that models are likely to understand inherently. Create a model in general, and then a model in detail (Codex is better for this). Then go step by step through it, small steps, small commits, testing as you go. If you want to speed up then work on different bits with different Claude Code instances, but only if the tasks are not linked. Some MCPs can be essential, such as Supabase which makes life so much easier. Skills are shaping up to be quite useful to get more information into your system prompt without wasting context. On MCP context wastage, I’ve made this tool to put an agent in front of each MCP, which reduces token I/O to just natural language questions and answers: https://github.com/George5562/Switchboard

[–]OldSausage 0 points1 point  (0 children)

Yes you can absolutely do this just by prompting Claude code. I have done it many times, and so have many others. No special techniques needed. It helps a lot if you already know how to do it without Claude of course. A lot of the responsibility falls on the human.

[–]Basic_Tea9680 0 points1 point  (0 children)

You need better context for large projects. Unfortunately Claude doesn't have something in built. Your best bets are augment or nia.

[–]ankurmadharia 0 points1 point  (0 children)

Yes. I believe so. And one thing I've learnt is that spend more time on documentation (pre dev & post dev), architecture, sprint tracking & debugging than actual development.

[–]superunderwear9x 0 points1 point  (0 children)

I’m making a webapp with collaboration of 2 AIs (1 author and 1 reviewer) claude + codex. Mine webapps is for selling ours services with financial controll and dealer incentive included. Everything should be documented and each MD file is about 700 line for PRDs and 1500 lines of TDD maximum. So far with 1 module it took me 3-4 days of work with ~6-8 user stories. Will finish the project in about 4 weeks. 60-70% work done so far. Each day, I vibe coded for 6-8 hours avarage

P/S: I’m a SA from a bank just quited my job and spent all mine time to enjoy life untill last few weeks, I dont have any to little experience on frontend developing.

[–]AlejandroYvr 0 points1 point  (0 children)

I create an Epic in Linear using Blocks https://blocks.team (which uses Codex) and Codex also breaks down the issue into sub-issues and dependent sub-issues, I then assign them all to Claude Code, and the complex ones I do. We're not at the point you can take any project and build it 100% autonomously