Blog/Engineering/From Vibe Coding to Production: The DevOps Gap Nobody Talks About

From Vibe Coding to Production: The DevOps Gap Nobody Talks About

J
James Alderton
March 10, 20268 min read

Something is changing in how software gets built — and it's moving faster than most infrastructure teams are prepared for.

In the past eighteen months, the term vibe coding has entered the engineering lexicon to describe something real: developers using AI-assisted tools (Cursor, Copilot, Claude, v0, Bolt) to build functional, production-grade software at a pace that would have seemed implausible two years ago. A founder pair with no dedicated backend experience ships a full SaaS in a weekend. A growth team replaces a six-month agency project with three days of focused iteration. An internal tools request that would have sat in the backlog for a quarter gets resolved in an afternoon.

The velocity is legitimate. The problem is what comes next.

The gap between "it works" and "it runs"

Building something that works in a development environment and operating it reliably in production are two fundamentally different problems. This has always been true. But the acceleration of AI-assisted development has widened the gap in a new way: teams are now shipping production-quality user experiences on infrastructure foundations that haven't had time to be hardened.

The typical failure modes aren't dramatic. They're quiet. A background worker silently stops processing. A database connection pool exhausts during a traffic spike. An unrotated secret sits in an environment variable for eighteen months. A deployment works perfectly on the developer's machine and rolls out to production without a health check, taking the service down for eleven minutes at 9pm on a Tuesday.

None of these are caused by bad code. The code is often excellent — remarkably so, for the speed at which it was produced. They're caused by the DevOps and SecOps layer never being properly designed.

The trend this is riding

What makes this moment different isn't just AI tooling. It's a broader shift in how companies think about software ownership.

For the past decade, the default answer to "we need a CRM / billing system / analytics dashboard / internal tool" was to buy a SaaS product. Salesforce. HubSpot. Looker. The calculus made sense: building is expensive, maintaining is more expensive, and the vendors have already solved the hard problems.

That calculus is changing. AI-assisted development has dramatically lowered the cost of the "build" side of that equation. Teams are discovering that a custom internal tool, built to their exact workflow, can be produced in days rather than months — and that it doesn't carry the per-seat pricing, the data residency concerns, or the feature-roadmap misalignment of a third-party product.

The companies making this shift fastest are replacing CRMs, support tools, billing dashboards, analytics platforms, and operational tooling with custom software. Some of it is replacing legacy systems that were technically overdue for a rebuild anyway. Some of it is replacing SaaS tools that had become friction rather than leverage. All of it requires production infrastructure.

What "taking it to production" actually requires

A vibe-coded application that is ready for real users needs more than a working codebase. The production layer is a stack of concerns that most AI assistants don't help you design:

Deployment pipeline

How does code get from a commit to running in production? Rolling deploys, canary releases, rollback on health check failure — these don't happen by default. They need to be designed, configured, and tested before they matter, not after the first bad deploy.

Process supervision and restart

What happens when a service crashes? In development, you restart it manually. In production, you need a supervisor that detects the crash, restarts the process, and pages someone if it keeps crashing. On bare metal clusters with Kubernetes, this is handled by pod restart policies and liveness probes — but they need to be configured correctly for your application's specific startup time and health behaviour.

Secrets management

AI-assisted development tends to produce .env files. That's fine for local work. Production environments need secrets that are injected at runtime, rotated without redeployment, and never committed to version control. The number of leaked API keys that originate from vibe-coded projects that moved fast is not publicly tracked, but it is not small.

Dependency scanning

A project scaffolded quickly with AI assistance will pull in dozens of npm or pip packages. Some of those packages will have known vulnerabilities within weeks of publication. Without a continuous scanning layer, those vulnerabilities accumulate silently until something exploits them or a compliance audit surfaces them.

Database operations

This is where things get serious. A vibe-coded application almost certainly has a database. That database needs backups — tested backups, not the kind where you discover at recovery time that the backup job has been silently failing for three months. It needs connection pooling configured for the application's concurrency model. It needs a plan for schema migrations that doesn't take the application offline. None of this is in the codebase.

Observability

When something breaks in production — and it will — you need to know what broke, when it broke, and why. Structured logs, metrics, and alerting need to be configured before the incident, not assembled during it. AI tools are getting better at scaffolding basic observability, but the production-grade configuration still requires deliberate engineering.

Network exposure

Which ports are exposed to the internet? Which services can talk to which other services? Is the database accessible from outside the cluster? These questions need answers before the application is live, not after the first security scan.

Where Aureus fits in

The teams moving fastest on AI-assisted development don't want to become DevOps engineers. They want to ship product. That's exactly what vibe coding enables them to do — and it's exactly where managed infrastructure makes the most sense.

Aureus provisions dedicated bare metal clusters with private Kubernetes environments and handles the full DevOps and SecOps cycle: deployment pipelines, health checks, process supervision, secrets management, dependency scanning, database operations (backups, connection pooling, migrations), monitoring, alerting, and 24/7 incident response.

When a team running a vibe-coded internal platform onboards to Aureus, they hand us repository access and deployment context. We review the application before it goes live — OWASP top 10, dependency scanning, secrets detection, network exposure. We design the cluster around their specific stack, whether that's a Next.js frontend talking to a PostgreSQL database with a Sidekiq worker, or a FastAPI service backed by Redis and MongoDB. We configure the deployment pipeline for zero-downtime rolling deploys. We set up the monitoring.

The team ships code. We make sure it runs.

The right division of labour

There's a version of this story where the advice is "slow down and do it properly." We don't believe that. The velocity of AI-assisted development is a genuine competitive advantage, and the right response to it isn't to reintroduce the friction it removed.

The right response is to pair fast development with infrastructure that is designed for production from day one — not retrofitted after the first incident. The division of labour that works is: your team owns the product and the code, a specialist team owns the infrastructure and the operations.

The companies that get this right will ship faster and more reliably than both the teams that try to do everything themselves and the teams that move so fast they skip the production layer entirely.

If you're running something vibe-coded in production — or about to — and want an infrastructure team that understands the full cycle, we'd like to talk.