Written by a working engineer

A media for first-time builders with AI

Web

Build a TODO Screen with Claude Code

Have a conversation with Claude Code to build a TODO app with add, list, delete, and completion toggle functionality.

Reading time: 15 min

Goal - After reading this article -

You'll have a working TODO screen with add, list, complete, and delete functionality. (Data won't persist yet when you close the browser.)

What we're building

In the previous article, we set up a Next.js project. But it's still empty — open it in the browser and all you see is the default Next.js page. Today, we're going to build the actual TODO app screen.

Here's what the finished product looks like:

  • A text input and "Add" button at the top
  • A list of TODOs below
  • A checkbox on each TODO to mark it complete
  • A delete button on each TODO to remove it

Simple, right? But this covers all the basics of building an app: showing a screen, handling user input, and updating what's displayed.

Let's have Claude Code build this screen using the project we set up last time.

Ask Claude Code to build the screen

Open Claude Desktop and open the my-todo-app folder.

Tips!!
If you're not sure how to open a folder, drag and drop it onto the Claude Desktop window, or use "Open Project" and select my-todo-app from your desktop.

Once the folder is open, ask Claude Code:

Build a TODO app screen. I need a text input with an add button, a list of TODOs, a checkbox on each TODO to toggle complete/incomplete, and a delete button on each one. Keep the design simple and clean.

Claude Code will start editing files. It might ask "Can I run this command?" along the way — go ahead and approve it. Claude Code is asking permission to run commands that create or modify files in your project.

After a moment, the code will be ready. If the dev server isn't running yet, ask Claude Code to "start the dev server."

Open your browser to http://localhost:3000 and you should see the TODO app screen.

Try it out

Once the screen loads, give it a spin:

  1. Type "Buy groceries" in the input field and click "Add"
  2. Add "Do the laundry" and "Reply to emails" too
  3. Click the checkbox on "Buy groceries" to mark it complete
  4. Click the delete button on "Reply to emails" to remove it

See how it works? TODOs appear in a list, you can check them off and delete them. It's already a working app.

Tweak the design

Once you have something working, the next step is adjusting the look and feel. This is where Claude Code really shines.

For example, you could ask:

Improve the TODO app design. Center everything with a max width of 500px, show completed TODOs with a strikethrough and light gray text, make the add button blue, and show "No tasks yet" when the list is empty.

Claude Code updates the code, and the browser refreshes automatically. If it doesn't, just hit the refresh button.

If something doesn't look quite right, just ask for more changes:

Make the delete button smaller with red text. Also, disable the add button when the input field is empty.

This cycle of "try it → tell Claude what to fix → see the update" is the core workflow when building with Claude Code.

Tips!!
It's better to ask for 2–3 changes at a time rather than 10 at once. Too many requests in one go can confuse Claude Code. Take it step by step.

When things go wrong

Claude Code doesn't always get it right on the first try. The screen might go blank, or a button might not respond. Honestly, the first time I tried this, the add button did nothing and I panicked — did I break it?

But it's fine. Just describe what's happening, and Claude Code will fix it.

Clicking the add button doesn't add a TODO. There might be a console error. Can you check and fix it?

You don't need to understand the error. "It's not working," "the display looks wrong," "the button doesn't respond" — that's enough for Claude Code to investigate and fix it.

If it's still broken after a few attempts, start fresh:

Rebuild the TODO app from scratch. Same features as before, but with a simpler implementation.

Claude Code writes the code, so starting over costs you nothing. Being able to redo things freely is the biggest advantage of building with AI.

Wrap-up

Here's what we covered:

  • Had Claude Code build a TODO app screen
  • Got add, list, complete, and delete working
  • Tweaked the design through conversation alone
  • When something breaks, just describe the symptom

We now have a working app with a UI and interactions. But there's one problem — close the browser and reopen it, and all your TODOs are gone.

In the next article, we'll add data persistence so your TODOs survive even when you close the browser.

※ AI is a powerful tool, but it can sometimes behave in unexpected ways. We are not responsible for any damages caused by AI-generated content or actions. Always back up important data and review AI outputs yourself before using them.