Introduction

Devin recently rolled out a pay-as-you-go option with a $20 starting minimum (billed by Agent Compute Units, or ACUs), replacing the previously team-only $500/month entry point. It’s finally affordable enough to try on personal projects, so I did.

For anyone new to Devin: it’s an autonomous AI software engineer that can plan tasks, write and run code, test changes, and open PRs. It also supports MCP (Model Context Protocol) servers and integrates with tools like Slack and GitHub, which makes it easy to drop into existing workflows.

The key difference between current code generation AIs and Devin is in how the work gets done. Traditional code gen AIs are mostly limited to fixing raw code snippets, and the user still does the heavy lifting—copying, pasting, and editing code directly in the chat.

Devin works differently. It has its own working environment, so you don’t need to paste code into a chat window. Once you give a task, Devin automatically creates a branch, makes changes, and opens a pull request when it’s done. All you need to do is review, test, and merge it into production.

This means you’re not tied to a continuous back-and-forth chat. Instead, you just wait for Devin to finish the job, like working with a real teammate who handles the coding for you.

In this post, I connected Devin to my GitHub repo for my iOS Health app (it collects iPhone biometrics and analyzes them with ChatGPT) and asked Devin to ship a tiny UX improvement. Devin created a branch and opened a pull request within a few minutes—exactly the sort of “tight loop” I wanted to validate. (docs.devin.ai)

Objective

My Health app had a small UX issue. When a user tapped the Ask AI button, the keyboard stayed open and the text remained in the input box. This confused users because it wasn’t clear if their request had actually been sent.

What I wanted Devin to do was fix it so that when the button is tapped, the system hides the keyboard and clears the text box, while still showing the “waiting” state on the button.

Requirements:

ScreenRecording_09-11-2025_8-47-35_AM_1_1p75x_480w_8fps.gif

The Prompt I Gave Devin

Right now, the app keeps the keyboard open and the text in the input box while waiting for the response.
Fix this so that when the user taps the Ask AI button, the keyboard closes and the text box is cleared. The waiting animation should remain visible on the Ask AI button.

Screenshot 2025-09-11 at 9.03.42.png

Experience

Within a few minutes I got a PR from Devin. In the Devin console I could see its plan, and the PR comment explained the change clearly. This time I didn’t need to iterate—review passed, tests looked good, and the branch was ready to merge.

From a PM perspective, the flow felt familiar: write a ticket → get a plan → review → test → merge. If I wired Devin into Slack, I could even kick off runs and discuss changes in channel; Devin supports tagging @Devin in Slack to start a session.

Screenshot 2025-09-11 at 9.17.26.png

image (9).png

Result

The fix landed in ~3 minutes, and the UX now behaves as intended:

ScreenRecording_09-11-2025_9-18-39_AM_1_1p75x_480w_8fps.gif

What Devin Can Do (and How It Hooked Into My Repo)