The Idea
It's Saturday, 1 PM. You want a personal movie watchlist — somewhere to track movies you want to watch, movies you've seen, and your rating for each one. You've looked at apps for this and none of them are quite what you want. So you're going to build it yourself, today, using AI.
Your tools: a browser and Claude.ai. Nothing else. No code editor, no terminal, no programming knowledge required.
Here's how the afternoon actually goes.
1:00 PM — The First Prompt
Build me a movie watchlist app. I want to add movies with a title and year, mark them as "want to watch" or "watched", and rate the ones I've watched from 1-5 stars. Show the list sorted with unwatched movies first. Clean dark design. Save everything in the browser so it's still there when I come back.
Notice what this prompt includes: what the app does (add, categorize, rate), what data it stores (title, year, status, rating), how it should look (dark design), and how data should persist (browser storage). Every detail you include is a detail AI gets right.
Claude generates an Artifact — a live, interactive preview right in the chat. You can see the app immediately. It has an input form, a list area, and a dark color scheme.
First impression: it works. You can add a movie, it appears in the list. But a few things aren't right.
1:15 PM — The First Round of Fixes
You click around and find three issues:
- The star rating is just a number dropdown — you wanted clickable stars
- There's no way to delete a movie you added by mistake
- The "year" field accepts any text, not just numbers
Three changes:
1. Replace the rating dropdown with clickable star icons. Click a star to set the rating, click it again to remove it.
2. Add a small delete button (X) on each movie card. Show a "Are you sure?" confirm before deleting.
3. The year field should only accept 4-digit numbers between 1900 and 2030.
Only make these changes. Don't modify anything else.
That last line — "Only make these changes. Don't modify anything else" — prevents AI from "improving" parts you're happy with. Without it, AI might rearrange the layout or add features you didn't ask for.
The updated version appears. Stars work, delete works, year validation works. On to the next round.
1:45 PM — Making It Look Better
The app functions correctly but looks basic. Time to improve the design.
Improve the visual design:
- Movie cards should have a subtle border and rounded corners, with a slight glow on hover
- Watched movies should look slightly different from unwatched ones — maybe a dimmer card or a green checkmark
- The star rating should be gold colored
- Add a count at the top: "5 movies — 3 to watch, 2 watched"
- Make the add form more compact — put title and year on the same line
- The whole thing should look good on a phone screen too
This is a design-focused prompt. Notice it's specific about visual changes — "subtle border and rounded corners" rather than "make it look nicer." Specific descriptions produce specific results.
The result looks significantly better. The cards have depth, watched movies have a green checkmark, stars are gold, and the counter at the top gives a quick overview.
Pro Tip: Test on Your Phone
If you asked for mobile-friendly design, actually test it. In Claude, the Artifact preview shows a desktop view. Open the full preview and resize your browser window to phone width. Things that look fine on desktop often have overlapping text or tiny buttons on mobile.
2:15 PM — Adding a Feature
The core app works and looks good. Now you want to add something that wasn't in the original description: filtering.
Add filter buttons above the list: "All", "Want to Watch", "Watched". Clicking one filters the list to show only that category. "All" is selected by default. Show the count for each filter, like "Want to Watch (3)".
One feature, clearly described. AI adds the filters, they work, the counts update when you add or change movies. This took about 2 minutes from prompt to working feature.
2:30 PM — Something Breaks
You decide to add search. You ask for a search bar that filters movies as you type. AI adds it — but now the filter buttons and the search bar conflict. If you filter to "Watched" and then search, the search ignores the filter and shows results from all movies.
This is normal. When AI adds a new feature, it doesn't always consider how it interacts with existing features.
The search bar and the filter buttons need to work together. If I select "Watched" and then search for "star", it should show only watched movies that match "star" — not all movies. The search should filter within the currently selected category.
This fix works. The key was describing the expected behavior precisely: "filter within the currently selected category." If you'd just said "fix the search," AI might have interpreted the problem differently.
Don't panic when a new feature breaks an existing one. Describe how the features should work together. The more precisely you describe the expected behavior, the faster AI fixes it. "These two things should work together" is vague. "Search should filter within the selected category" is actionable.
3:00 PM — Testing Everything
Two hours in, the app has grown. Before adding more features, it's time to test what exists:
- Add 5-6 movies. A mix of watched and unwatched. Do they all appear? Are they sorted correctly?
- Rate some movies. Click stars to rate. Click again to change. Do the ratings save?
- Use the filters. Does each filter show the right movies? Do the counts match?
- Search. Does it find movies by title? Does it work with filters active?
- Delete a movie. Does the confirm dialog appear? Does the count update after deletion?
- Refresh the page. Is everything still there? This tests whether browser storage is actually working.
- Try to break it. Add a movie with a very long title. Add a movie with just spaces. What happens?
The refresh test reveals a bug: the ratings are saved, but when the page reloads, the gold star icons show the wrong number of stars. The data is correct but the display is wrong.
Bug: when I refresh the page, the star ratings display incorrectly. A movie rated 4 stars shows only 2 filled stars after reload. The rating data seems to be saved correctly (if I click to re-rate, it knows the old rating) but the visual display is wrong on page load.
That's a good bug report: what you did (refreshed), what you expected (correct stars), what actually happened (wrong display), and an additional observation (data is correct, display is wrong). AI fixes it in one round because the description was precise.
3:30 PM — The Final Touches
The app is solid. A few polish items:
Final improvements:
1. Add an empty state — when there are no movies, show a friendly message like "Your watchlist is empty. Add your first movie above."
2. When I add a movie, clear the form fields so I can add another one immediately.
3. Add a small note at the bottom of the page: "Data is saved in your browser. It will be here when you come back."
4. Animate new movies sliding in when added.
4:00 PM — Saving Your Work
The app is done. You've tested it, it works, it looks good. Now save it.
In Claude, click the code view of the Artifact and copy the entire contents. Open any text editor on your computer (Notepad on Windows, TextEdit on Mac — set to plain text mode), paste the code, and save it as watchlist.html.
Double-click the file to open it in your browser. Your app runs locally, with all the features you built. Your data saves to this browser, on this computer.
Total time: about 3 hours, including testing and fixing bugs.
What the Day Actually Felt Like
Here's the honest version of how this afternoon went:
The pattern is always the same: fast start, growing confidence, a frustrating middle section where things break, then a satisfying finish once you push through the bugs. This is normal. Every project feels like this — even for professional developers.
What You Learned
Even if you weren't trying to learn anything, you picked up several skills during this afternoon:
- How to write effective prompts — You learned that specific descriptions ("clickable gold stars") work better than vague ones ("make it look better")
- How to iterate — You didn't get it right on the first try. Nobody does. The skill is refining, not perfecting.
- How to describe bugs — "The stars display wrong after refresh" is useful. "It's broken" is not.
- How to constrain AI — "Only make this change" prevents AI from breaking things you already fixed.
- When to test — Testing after adding features (not just at the end) catches bugs early when they're easy to fix.
- How to save your work — Copy the code, save as HTML, open in browser. Simple but essential.
These skills transfer to every future project. The next thing you build will go faster because your prompts will be better from the start.
The Day — Quick Reference
- Start with a complete description — What it does, what it stores, how it looks, how data persists.
- Fix in focused rounds — List specific issues. End with "Don't modify anything else."
- Design with specifics — Name colors, sizes, and behaviors. "Subtle border" beats "make it nicer."
- Add one feature at a time — Test before adding the next.
- When things break, describe the expected behavior — "Search should filter within the selected category."
- Test by trying to break it — Refresh, enter weird data, use every button.
- Save working versions — Before big changes, copy what works.