We live in an extraordinary moment in software development. Tools like Bolt, Cursor, and a growing roster of AI-enabled coding environments have fundamentally changed what’s possible in early-stage product development. A founder, a domain expert, a product manager, an executive can now prototype a fully functional web application in a weekend with the right tools and a bit of curiosity. That’s genuinely exciting, and at NovusNorth, we’re leaning into it.
But there’s a gap between a working vibe-coded prototype and a production-ready application. We recently closed that gap for a B2B client in six weeks, and the experience gave us a front-row seat to both the potential and the real-world limits of vibe coding at scale. Here’s what happened, what we built, and what we learned.
The Starting Point: A Bolt Prototype
Our client operates in a regulated B2B space. They had built a client-facing web site / application where their customers submit sensitive information as part of an application process. The team had used Bolt with Supabase to get a working prototype off the ground quickly, and honestly, it looked great. The UI was clean, the user flows made sense, and the core data capture logic functioned as intended.
The challenge: it was a two-tier architecture wired directly from the front end to the database. No middle tier. No API layer. No separation of concerns. It wasn’t designed to be production-grade or secure, nor for multi-tenancy. It was designed to be fast, and it succeeded on that front.
When they came to NovusNorth, the mandate was clear: make this production-ready within two months, keep the existing UI design, and please don’t start from scratch.
How We Approached It: Agentic Coding at Full Speed
We embraced the challenge and applied agentic coding to do what agentic coding does best; move fast with structure. Rather than throwing away the Bolt code, we started with it. The UI stayed intact. What we replaced was the architecture underneath.
We refactored the application from a two-tier model into a proper three-tier architecture: a presentation layer (the existing front-end, restructured into clean components), a business logic layer (a new services tier we introduced), and a data layer (the database is now accessed exclusively through the service layer). Within two weeks we had stood up the service infrastructure, the complete database schema, and shifted hosting to a secure cloud platform. The team used Microsoft CoPilot for the agentic coding. That speed would simply not have been achievable with traditional development approaches.
The project was structured across three parallel workstreams: hardening the existing code, iterating on requirements with the client, and building out the infrastructure for a production deployment. Three sprints, three streams, running concurrently. It was an ambitious plan — and it mostly worked.
“Within two weeks, we had the full services layer and database schema standing. That kind of velocity is only possible with agentic development done well.”
– Dave Cowing, CEO NovusNorth
The Gotcha: Happy Paths Are Easy. Edge Cases Are Invisible.
Here’s where the real lesson lives and we think it’s the most important thing that we can share with anyone considering vibe coding as part of their development practice.
The original prototype covered the happy path beautifully. User opens the portal, fills out the form, submits the data, done. It worked. What it didn’t cover were the unhappy paths: the edge cases, the error states, the secondary workflows that emerge when you look past the primary user journey.
A concrete example: the application needed to send automated communications to clients after they submitted data or uploaded documents. In the prototype, those communications went out but they weren’t logged anywhere. There was no communication history. No audit trail. No way to know what was sent, when it was sent, or to whom. In a regulated B2B context, that’s not a minor oversight. It’s a significant gap.
And here’s the thing: that gap wasn’t anyone’s fault. It’s an inherent characteristic of how these AI-native prototyping tools work. When you prompt an AI to build an application, it builds what you describe. What you don’t describe (what you haven’t thought to describe) is simply absent. The AI cannot anticipate what’s missing from your mental model. It will not ask about your exception handling strategy, your audit logging requirements, or your regulatory obligations. That’s not what it’s optimizing for.
Vibe coding, by its nature, is optimized for rapid concept iteration, not production-grade completeness. The tool reflects your thinking back at you. If your thinking skips the edge cases, the application will too.
What This Means for Your Organization
There’s a genuinely important democratization happening here. Vibe coding puts the ability to prototype real software in the hands of people who never could before. Business analysts, domain experts, operations leaders; people who understand the problem deeply can now build something that looks and functions like a real solution. That is a powerful shift, and I’m enthusiastic about it.
But if you’re thinking about rolling out vibe coding as an organizational practice, and many of our clients are, there are a few things to think through carefully.
First, think about who is doing the vibe coding. A seasoned software architect who picks up Bolt will naturally think about edge cases, data integrity, security, and scalability, even when working in a fast-and-loose prototyping mode. A non-technical product owner may not, and that’s not a criticism; it’s just a different experience base. The tool democratizes access to development, but it amplifies the thinking of the person using it. It does not replace that thinking.
“It was surprising how easy it was to take the prototype and use AI to generate an initial set of requirements by pointing Claude to the prototype with credentials to come up with full set of user stories that were uploaded to Azure Dev Ops.”
– Andy Gelbert, Agile Program Manager, NovusNorth
Second, establish some process guardrails before the prototype gets too far. Even a lightweight requirements checklist, for instance “have we accounted for error states? logging? communications? security considerations?” can surface the invisible gaps before they become production problems.
Third, and most importantly: vibe coding does not replace experienced technical architecture and software engineering. It accelerates the early stages. It lowers the barrier to entry. It can produce remarkable results in short timeframes. But when the application needs to be secure, scalable, maintainable, and resilient; when real users, real data, and real consequences are involved, you need human expertise in the loop. Not instead of AI-assisted development, but alongside it.
“The AI reflects your thinking back at you. If your thinking skips the edge cases, the application will too. That’s not a flaw in the tool, it’s a reminder that the tool amplifies the engineer, it doesn’t replace them.”
– Dave Cowing, CEO NovusNorth
The Result: Six Weeks. Zero Critical Issues.
Despite the mid-project discovery of significant missing edge case coverage, we delivered. The application went live in six weeks — two weeks ahead of the original two-month target. Our team was even able to integrate to the client’s entitlement and authentication system within that timeframe.
At launch, the application underwent a full security penetration test by a third party. The results: zero critical findings. Zero moderate findings. Zero low findings and three informational notes, the kind of observations any mature pen test surfaces. For a client portal handling sensitive B2B data, that’s an outcome to be proud of.
“Vibe coding can be a great accelerator to get ideas across and for scoping out new solutions, however it is really important to allow enough time to think through big picture items and for go-live activities like testing if you plan to leverage outputs for real launches.”
– Andy Gelbert, Agile Program Manager, NovusNorth
That result reflects what’s possible when you combine the speed of agentic development with the discipline of real software engineering. The Bolt prototype gave us a running start. The NovusNorth team brought the architecture, the edge case analysis, the security posture, and the production infrastructure. Together, the whole was far greater than the sum of the parts.
The Bottom Line
Vibe coding is real. It’s here. It’s going to be part of how software gets built, and that’s a good thing. At NovusNorth, we’re using these tools ourselves, and we’re helping our clients use them wisely.
“We strongly believe that organizations need to think of this technique more as ‘vibe-engineering’ vs. vibe coding and that philosophy will enable them to achieve real value.”
– Dave Cowing, CEO NovusNorth
The organizations that will get the most value from this shift are the ones that embrace the speed of AI-native prototyping while investing in the process, training, and human expertise needed to take those prototypes somewhere real. Know who is using these tools in your organization. Train them appropriately. Build in checkpoints for the things the AI won’t ask about. And when the stakes are high, bring in engineers who can see what the prototype can’t. We strongly believe that organizations need to think of this technique more as ‘vibe-engineering’ vs. vibe coding and that philosophy will enable them to achieve real value.
The future belongs to teams that move fast and build things that last. Those aren’t competing goals if you approach it properly.
Dave Cowing is CEO and Co-founder at NovusNorth, a digital experience and AI design consulting firm specializing in product and platform strategy, design and development, and software modernization.

