Sitemap
Choreo Tech Blog

A collection of tutorials and insightful blogs crafted for the Choreo community.

How We Used an AI Agent to Skip the DevOps Grind

8 min readAug 25, 2025

--

When I read Andrej Karpathy’s post on building MenuGen, what stood out was the all-too-familiar arc, the initial joy of spinning up a quick prototype, followed by the slow grind of making it production-ready. The creative sprint gives way to a marathon of plumbing, wiring up APIs, juggling secret keys, wrestling with deployment quirks, and stitching together services just to make sure the app doesn’t vanish when you hit refresh.

The two phases of every software project

That experience sparked a question: could we keep the creative, vibe-coding flow while automating all the plumbing? We set out to find the answer by rebuilding MenuGen, combining a simple product brief from a large model with an implementation agent in VS Code. But we almost hit the same wall Karpathy did. Our agent could dream up the code, but it was like an architect who’d never seen the building site, it was completely blind to our actual infrastructure.

The breakthrough for us was finding a way to give the agent a pair of eyes. We used WSO2’s Choreo platform, whose Model Context Protocol (MCP) server acted as that crucial link, giving our AI a real-time “cheat sheet” to our services, APIs, and deployment targets.

From Idea to Local App

Like the original project, ours began with a clear idea. We used Gemini 2.5 Pro within VSCode to produce a concise Software Design Document (SDD) outlining the core components:

  • An OCR step to extract menu items.
  • An image generation step to visualize them.
  • A simple web UI.
Press enter or click to view image in full size
A simple prompt for Gemini 2.5 Pro in VS Code is all it takes for the AI agent to generate a complete Software Design Document, laying the technical groundwork for the MenuGen app (Exact prompt: see end of article).

With that Software Design Document in hand, we handed it to a Claude Sonnet 4.0 agent in VS Code with a single, crucial instruction.

Prompt: “Can you implement this app and double check external API integrations with third-party services using the Choreo Marketplace?”

This prompt contains two key instructions. The first, “implement this app” is the straightforward task of code generation. The second part, however, is what sets this process apart and directly addresses the “painful slog” of productionizing a prototype: “using the Choreo Marketplace.”

By instructing the agent to use the marketplace as its source of truth for APIs, we preemptively solve the problem of hunting for endpoints, wrestling with deprecated docs, and manually managing secret keys. This is the bridge between intent and infrastructure that will be critical later on.

Press enter or click to view image in full size
The agent uses the Choreo Marketplace as a source of truth, automatically fetching API specs and correcting the code to align with the live service, avoiding errors from outdated documentation

This automated correction is a key part of the process. Armed with the correct-by-definition API specs from the marketplace, the agent didn’t just write code, it wrote the right code. It then proceeded to translate the entire design document into a working local repository.

Press enter or click to view image in full size
The agent translates the design document into a working local repository. It scaffolds the full project, writes initial code, and outlines its implementation plan in the chat, confirming that all required services and database schemas are ready.

The agent delivered a complete repository with a React frontend and a Go backend. It included a detailed README.md with clear instructions for local setup, from the docker run commands to the required .env configuration. This provided all the basic plumbing to iterate quickly on a laptop. This brings you to that exhilarating ‘80% done’ feeling that Karpathy described, the fun part of the project.

Automating the “Painful Slog” of Integration

The initial prototype is the fun part where you feel 80% done. The remaining 20%, as Karpathy noted, is often a “painful slog” of wrestling with deprecated APIs and out-of-date docs. This is where our path diverged sharply from the original. For us, this entire step was automated because we instructed the agent to use the Choreo Marketplace.

Why wrestle with the plumbing when you can just… ask?

An AI agent’s code is only as reliable as its knowledge, which can be months or years out of date. This is why it might generate calls to endpoints that no longer exist. The marketplace solves this by acting as a live, guaranteed source of truth.

It contains connectors for common public APIs like OpenAI, but critically, it also allows you to register your own internal or third-party services. We had already registered Replicate this way, making its API discoverable and standardized for our agent.

Press enter or click to view image in full size
The Choreo Marketplace provides a trusted catalog of both public (OpenAI) and organization-specific (Replicate) services, giving the AI agent a single, reliable place to find up-to-date connection details.

Instead of hallucinating API calls, the agent queried this marketplace. It received the up-to-date OpenAPI specs and direct references to secrets managed within Choreo, and used this correct-by-definition information to automatically wire both integrations into the Go backend. No more hunting for endpoints or pasting stale code snippets.

From Laptop to Live in One Go

With the code working locally, we arrived at the final headache: deployment. For this, we gave the agent a simple, conversational prompt: ”Can you deploy this on Choreo?” What followed was an intelligent, multi-step process orchestrated entirely by the agent and Choreo’s MCP server. It was like watching an expert DevOps engineer work at machine speed.

1. Analyze and Plan
First, the agent analyzed the entire project repository, the Go backend and the React frontend to understand the application’s structure and dependencies. This initial reconnaissance was crucial for formulating a deployment strategy.

Press enter or click to view image in full size
The AI agent begins the deployment process by analyzing the project’s repository to understand its structure and dependencies.

2. Deploy the Backend

Get Isala Piyarisi’s stories in your inbox

Join Medium for free to get updates from this writer.

Based on its analysis, the agent generated a component.yaml manifest file defining a backend component. It then built and deployed the initial version of the backend service to Choreo. Getting the API live first is a critical step in a modern deployment workflow.

Press enter or click to view image in full size
The agent generates the necessary component.yaml manifest and uses Git to push the configuration, initiating the backend service deployment on Choreo.

3. Provision and Publish the Database

Next, the agent requested a managed PostgreSQL database from Choreo. Once provisioned, it immediately published the new database as a service in the Choreo marketplace, making it a discoverable and connectable resource for other components.

Press enter or click to view image in full size
The agent provisions a new PostgreSQL database and publishes it as a service in the Choreo marketplace, making it discoverable for other components.

4. Wire Up the Backend Connections

With the database and third-party services available in the marketplace, the agent updated the component.yaml manifest. It added “Choreo Connections” to formally link the backend to the database, OpenAI, and Replicate services, then redeployed the backend with this new, complete configuration.

Press enter or click to view image in full size
The agent updates the component manifest to formally link the backend to the database and third-party APIs, then redeploys the service with the new configuration.

5. Implement and Deploy the Frontend with Auth

The agent then turned its attention to the frontend. It scaffolded sign-in and sign-out buttons in the React UI and wired them to Choreo’s managed authentication endpoints. After generating the frontend component definition, it built and deployed the frontend.

6. Secure the Final Connection

With both frontend and backend live, the agent made the final crucial link- connecting the web app to the backend. This ensures all communication flows through Choreo’s secure gateway, protecting the API and managing user sessions.

Press enter or click to view image in full size
The agent establishes the final, secure connection between the live frontend and backend through Choreo’s gateway.

7. Create Test Users

As a final touch, the agent used Choreo’s Secure Token Service (STS) to automatically create a handful of test users, allowing us to immediately sign in and test the end-to-end flow of the live application.

Press enter or click to view image in full size
As a final step, the agent provides a live URL and test credentials, generated via Choreo’s Secure Token Service, for immediate end-to-end testing.

In just a few minutes and from a single conversational prompt, the process took the project from a local repository to a fully wired, secure, and live cloud architecture. Suddenly, the abstract components from the initial SDD became tangible, live services, fully interconnected and managed by the Choreo platform.

Press enter or click to view image in full size
Choreo provides a real-time dependency graph, visualizing the complete architecture of the live application — from the frontend through the backend to its connected database and AI services.

This entire system was automatically assembled and brought to life, culminating in the final, user-facing application.

Press enter or click to view image in full size
The final result: a fully deployed, secure, and functional MenuGen application, live and accessible via a Choreo-provided URL.

What would normally be a multi-hour, error-prone manual task was reduced to an automated, repeatable workflow, orchestrated entirely by the agent.

Solving the Hard Problems Automatically

This automated flow highlights a fundamental shift. The innovation isn’t just that an AI can write code, it’s that a tight integration between an implementation agent and a deployment platform can automate the vast majority of platform engineering friction. This approach didn’t just save time, it elegantly solved the very problems that made the original MenuGen journey a “painful slog”:

  • The Database Problem: What Karpathy called a source of “more suffering” was reduced to a single request. The agent asked for a database, and Choreo provisioned and connected it, enabling persistence and a robust processing queue.
  • The Authentication Maze: Instead of manual OAuth configuration, the agent leveraged Choreo’s managed auth, injecting credentials at runtime so the same build works across any environment.
  • The Secret Key Scavenger Hunt: The .env.local headache disappeared. All keys were stored in Choreo’s secure vault and injected automatically at runtime. The plumbing just worked.

This entire end-to-end process, from idea to a live, secure application, started with the same conversational prompt we used to generate the initial design document:

I want to create POC for a Menu Visualizer app as follows,
- Users photo a restaurant menu for upload
- Go (single file) backend extracts menu content with GPT-4o XML structured output and generates dish images using Replicate (polling) API
- PostgreSQL DB (with gorm) stores menu text and all image blobs
- React (plain css) app displays the results

Create a complete SDD.md for this app?

If you want to explore the final result or reproduce this workflow yourself, all the resources are available:

  • Final Application Code: The complete source code for the MenuGen rebuild is available from,
  • Replicate OpenAPI Specification: To make the Replicate API discoverable in the Choreo Marketplace, we created a custom OpenAPI spec. You can find the replicate-openapi.yaml file in the project repository.
  • Connecting the Dots (Choreo MCP Server): This is the secret sauce that makes the agent platform-aware. This article walks you through how to configure it.

Karpathy’s experience was a perfect diagnosis of a widespread problem: the operational complexity that smothers creative momentum. By giving the AI agent a reliable, auditable bridge to the underlying infrastructure, the developer stays focused on the product. You get to remain in that exhilarating “vibe coding” moment, while the repetitive, painful plumbing that turns prototypes into production systems is handled for you.

--

--

Choreo Tech Blog
Choreo Tech Blog

Published in Choreo Tech Blog

A collection of tutorials and insightful blogs crafted for the Choreo community.