Aleksej Vukomanovic

Building SaaS in 2026: Are you vibecoding your own product or engineering it the "old way"?

by

I've been a professional developer for 10+ years (WordPress ecosystem, and React, TypeScript, Node, the whole stack).

Now I'm building my own SaaS and I'm genuinely torn.

On one hand, I could vibecode the MVP in a weekend with Cursor + Claude and ship fast. On the other hand, I keep catching myself doing things "properly" — writing tests, setting up CI/CD, structuring the codebase like it'll need to scale to thousands of users… for a product that has zero users right now.

I've noticed a weird pattern among senior devs I talk to:

We over-engineer MVPs because we know what bad architecture costs later - but that same instinct is killing our speed to market.

Meanwhile, non-technical founders are shipping with Lovable and bolt in days and getting real feedback while we're still debating folder structure.

So I'm curious:

If you're an experienced developer building your own product:

-> Are you letting yourself vibecode the MVP, or are you engineering it "properly" from day one?

-> What's the one thing you refuse to cut corners on, even for an MVP?

-> Have you shipped something vibecoded and then regretted (or NOT regretted) the technical debt?

Would love to hear from both sides. I think there's a middle ground here that nobody's really talking about.

208 views

Add a comment

Replies

Best
Umair

honestly the whole vibecode vs engineer framing is already outdated imo. im using claude code in the terminal and its not "vibecoding" in the lovable/bolt sense but its also not me manually writing every line. the real skill now is knowing what to specify upfront so the AI doesnt make dumb architectural choices. thats basically engineering but faster. senior devs arent slower because they over-engineer, theyre slower because they dont trust the output and manually verify everything. which tbh is the right call rn because the AI will confidently ship broken auth if you let it

Curtis Swick

Not a 10+ year dev but I've shipped a few things with Cursor + Claude and I think the middle ground you're looking for is: vibecode the parts users touch, engineer the parts that handle their data.

Frontend, landing pages, onboarding flows, dashboards? Vibecode all of it. Nobody cares how clean your component tree is if nobody's using the product yet. But anything touching auth, payments, or data integrity I'd still do properly because unwinding that stuff later is genuinely painful.

The folder structure debate is the tell. If you're spending time on that before you have paying users, the engineering instinct is working against you. The non-technical founders shipping with Lovable aren't winning because their code is better. They're winning because they're getting feedback on Tuesday instead of architecting until Thursday.

Shipped something vibecoded, hit real users, then refactored the parts that actually mattered. Turned out about 70% of what I would have "properly" engineered upfront never needed to exist at all.

Solal Zanovello

This is such a relevant debate. I’m currently 17, building Aegis Omni-Core (a no_std Rust kernel for FHE), and I’ve faced this exact dilemma.

For a project hitting 9.4 GB/s, "Vibecoding" the core logic is simply impossible. AI (like Claude or Cursor) is amazing for scaffolding, but it often struggles with deep memory alignment, AVX2 SIMD intrinsics, or strict no_std constraints without hallucinating.

My hybrid approach:

  1. Vibecode the "Boilerplate": I let AI handle the repetitive structures and documentation.

  2. Engineer the "Hot Path": Every micro-optimization in the encryption loops is hand-crafted and manually verified.

I agree with @MykolaKondratiuk: you can replace a UI, but you can’t "vibecode" a cryptographic schema or a high-performance data model. If the foundation is shaky, no amount of AI "vibing" will fix the latency later.

Curious to hear: do you think we'll ever reach a point where AI can handle manual register allocation as well as a human developer?