Designing with Cursor

What I learned building a Rails app with AI assistance. Todo-it started as an experiment in whether AI could function as a pair programmer.

The experiment

Todo-it (todo-it.app) is a Rails todo application built with Cursor. The goal was not to ship a product. It was to understand what it means to design and develop with an AI as your pair programmer.

I have spent years advocating for prototyping in code, for design that ships rather than design that gets handed off. The question was whether AI assistance could extend that practice. Could an LLM help with the scaffolding, the boilerplate, the iterations that slow you down when you are exploring alone?

What worked

The AI excelled at structural tasks. Generating model migrations, controller actions, view templates. The kind of code that follows conventions and where a small mistake is easy to spot. It was fast. A full CRUD flow for todos could take shape in minutes instead of an hour.

It also helped with refactoring. “Extract this into a partial.” “Add validation for presence.” The AI could propose changes that were mostly correct, and the moments where it drifted were useful learning. You have to read the output. You have to understand what it produced. That discipline keeps you engaged with the code.

What it revealed

The AI does not have taste. It does not know when to break a pattern or when a convention is wrong for the context. It will give you Rails-way code by default. That is valuable when you want Rails-way code. Less so when you are designing an interaction that does not fit the scaffold.

The real gain was velocity on the parts that are not the design challenge. Models, migrations, routes. The design work, the decisions about flow and feedback and edge cases, stayed human. The AI was a fast first draft. Not a replacement for judgement.