Todo-it: an experiment in AI pair programming

A side project to test whether Cursor could function as a design and development partner. What stayed human, what accelerated.

Why build another todo app

Todo apps are the hello world of product design. Everyone has built one. The point is not novelty. The point is control. You know the domain. You know the edges. You can focus on the process: how does it feel to build this thing with AI assistance?

Todo-it runs on Rails. It uses Cursor for generation and iteration. The project is live at todo-it.app. The outcome is less important than what the build process revealed about AI-assisted development.

Where the AI helped

Scaffolding was the clear win. “Generate a Todo model with title, completed, and due_date.” “Add a controller with index, create, and destroy.” The boilerplate appeared in seconds. For someone who prototypes in code, that removes friction at exactly the moment when you want to move quickly.

The AI was also useful for debugging. Paste an error message. Get a proposed fix. Often correct, sometimes not. The failures were instructive. They forced you to understand the stack trace, to verify the suggestion. The AI did not replace reading the code. It accelerated the cycle of try, fail, fix.

Where it fell short

Design decisions need context. The AI has no memory of your previous projects, no intuition about when a pattern fits and when it does not. It will suggest standard Rails conventions. Sometimes that is right. Sometimes you need to break the convention and the AI will not tell you when.

The most valuable takeaway: AI assistance amplifies what you already do well. If you can read code quickly, it makes you faster. If you can spot when a suggestion is wrong, it saves time. If you rely on it to make decisions for you, it will give you generic solutions. The tool works best as a pair programmer. Not as a replacement.