Back to Writing

Amp Vs Claude Code For Infra

By Isaac Flath·August 7, 2025
Amp Vs Claude Code For Infra

Amp vs Claude Code for Infra

A deep dive into the results with Sourcegraph CEO Quinn Slack

I evaluated Amp Code on an OSS task and it went well, so I went deeper. I scheduled an interview with Sourcegraph CEO Quinn Slack for details.

Now I'm comparing to see where it feels better and where it actually is.

Claude Code vs Amp for Infra

Why Infra First?

It's not first. I started with an OSS task. But then Bryan Bischof said Amp is horrible at infra on social media, so it became the next test for two reasons:

  1. Bryan is top tier; I don't dismiss his take. His experience differed from mine, so I needed to understand why.

  2. I hate infra, so an agent's help matters.

I started with a simple, understandable case. It's not a production deployment with auth or sensitive data, but it's enough to see differences.

The Task And Prompt

The task had a few steps:

  1. Create a simple but functional FastAPI todo app with HTMX

  2. Dockerize the app to run anywhere

  3. Deploy to Fly.io and help me decide between Railway and Fly.io

  4. Set up CI with GitHub Actions

See bottom for the exact prompts used

The Comparison Table

Here are my raw comparison notes from reviewing the results.

Legend:

  • ✅ Liked

  • ❌ Didn't like

  • ⚠️ Could be improved

My Thoughts About The Results

The Good

Both Claude Code and Amp completed the task. I ended with todo apps hosted on Fly.io.

The Bad

  • Differentiator 1 - health check: Both used a deployment health check, but Amp's worked and Claude's had a critical bug.

  • Differentiator 2 - the database:

    • The ask: I didn't specify how to store todo data, only that I wanted the app "simple."

    • Claude Code used in-memory storage. It's fine for a toy example, but not beyond that.

    • Amp did better. It asked whether I wanted in-memory storage or SQLite for persistence. I wanted persistence, so I appreciated the question.

    • Downstream effects: Amp set up a persistent Fly volume; Claude Code did not. That's likely an effect of the SQLite choice, not a model difference. A volume doesn't make sense for in-memory data.

  • Differentiator 3 - taste decisions: I don't feel strongly about these, but my preference tipped toward AMP.

    • Amp's CSS being in a CSS file vs embedded in HTML is nicer.

    • Claude Code checking if the app exists first in CI is nice.

    • Amp doing a health check verification in CI after deploy is nice.

    • Amp chose a more appropriate memory setting for this task, but the cost is negligible, so I don't care much.

  • Differentiator 4 - CI for linting and testing: This is preference. I like that Amp went further; I want agents to follow app instructions but be aggressive about testing and automation. Some devs would hate the extra steps.

The Ugly

Both failed to test Docker locally before deploy. Claude Code didn't try; Amp tried, failed, and kept going without prompting me. This is a major issue for me.

Prompts

Initial Prompt

Create a simple todo app that I can run locally using fastapi in htmx. It should be simple as it's an example app. Once done I will want to dockerize it, deploy to either railway or fly.io, an then create CI with github actions to automate the deployment. Make a plan for me to review that has all the neccesary steps and decisions, and present that plan to me to review before doing any work.

From there, I followed through to completion, and the paths diverged. For example, I gave Amp information about persistent storage because it asked. Claude Code didn't ask, so I didn't provide it.