Home / Blog / Animated sites with AI

What it actually takes to build an animated site with Claude Code

Two 8-second video loops, a week of revisions on a $20 plan, and a site that reads better than the ones I used to pay agencies $10–20K for.

May 3, 2026 9 min read Built with Claude Code + Claude Design
Claude Code + Nanobanana 2 + Claude design = $15K Animated Sites — video walkthrough by Taelo Kim
Watch the build — 18:08

Almost everyone who sets out to build an animated website with AI gets the same website back. Same hero. Same gradient. Same three-column feature grid, same section order, same tasteful greys. You can spot it in a second, and so can whoever you were trying to impress.

I have a slightly unusual angle on this. I used to buy websites that were the most expensive in their category, with a full team of designers and programmers behind them, at $10–20K a build. As a VC partner I also sat across from a lot of founders raising rounds, and investors judge them on two artifacts: the website and the pitch deck. That's it. So the site has to be aesthetic, and it has to carry the story.

The site I'm about to break down was built with Claude Code, two generated video clips and a colour reference, on the $20 Pro plan. It's better than the ones I paid for. It also took a week and I hit the usage limit almost every day, so if an AI influencer tells you to one-shot something like this, they haven't built one. Here's the workflow, the prompt structure, and the two places it went wrong.

What you'll get out of this

  • Why "build me a website that sells X" produces a generic site every single time — and what to prompt instead
  • The three-part prompt structure that carried the whole build: reference, intent, constraints
  • How two 8-second video loops cross-fade on scroll without reading as a hard cut
  • What it really costs on the $20 Pro plan: limits, session tricks, and a week of revisions
  • The Claude Code → git → Claude Design handoff, and the mistake that rebuilt the wrong site

Why AI-built websites all look the same

Most people prompt forward. "Build me a website that sells X." "Build me a site that resembles Y." The model has nothing to push against except its own average, so it hands back the median of every site it has ever seen. That's not a model failure. That's the prompt describing what you're selling, and a page that describes what you're selling is a brochure.

The prompt history for this build is not glamorous. It's weeks of back-and-forth on one machine, plus more on a second one, mostly consisting of me telling it what to remove.

Claude Code terminal scrolled back through a week of website revision prompts during the animated site build
A week of revision prompts on one MacBook, and this wasn't the only machine in play. The visible pattern: almost every prompt is a subtraction, not an addition.

Design backwards: start from the first second, not the sell

I don't start from what I want to sell. I start from how somebody lands on the page. What do they feel in the first second? What makes them go wait, what is this, then okay, that's actually cool, maybe a small laugh. That feeling is the thing you're designing. Everything after it is content.

For this site the feeling was a specific scene: the tesseract sequence in Interstellar, where Cooper is floating in the bookshelf reaching through to affect the past. Every CTA on the page is meant to be that gesture — the action you take here changes what happens next. Abstract, sure. But it's a constraint, and a constraint is the one thing a model can't supply for you.

Three things multiplied the output quality more than any prompt trick:

The prompt structure that works: reference + intent + constraints

People ask how the visuals got so specific. The answer is boring: I generate video and imagery in GPT image 2 or Nano Banana, paste those into Claude Code and Claude Design, and pair them with very explicit instructions about what I want and what I don't. Reference plus intent plus constraints. That's the whole structure.

The constraints half is where most people quit. Here's the shape of a real revision pass from the middle of this build:

# revision pass — hero + bottom video
reference  two clips, 8s up top, 8s at the bottom
intent     smoother transition, more immersive, more interactive
constraint don't shrink the first video — I want it big
constraint kill the left bookshelf images, the video covers that
constraint cross-fade, not a cut, and not right at the CTA
constraint flip the second video 180° so the character sits left

Nothing in there is clever. It's just decided. The reason it works is that each line closes off an option the model would otherwise take on its own, which is exactly how you get off the template. The same instinct powers the four-step approach I use to turn Claude into a design collaborator rather than a slot-machine.

The animated website hero section mid-revision, wider than the previous pass but still carrying the extra bookshelf layer
Mid-build. The hero got wider and better after one pass, and the very next prompt was to delete a whole layer of it. Additive prompting is what makes AI sites feel cluttered.

Where the video backgrounds actually come from

If you want a video background like mine, you bring your own. Generate one or film one — there's no prompt that conjures a usable clip out of nothing. The light in the hero started life as a ChatGPT image that I then animated into a loop. Once the reference exists, the rest of the work is mechanical.

The constraint nobody warns you about is quota. On a paid Gemini Pro subscription you get three video generations. Three. That is your entire budget for the look of the page, so the decision has to be made before you spend one.

Spend the cheap currency first Iterate on the still image until you'd sign off on it as a poster. Images are effectively unlimited; the animation pass is not. Animate only the frame you've already committed to — the same reason I hand mechanical work to a pipeline instead of doing it by hand when automating my video editing with Claude Code.

How to cross-fade two video backgrounds on scroll

The single hardest part of the build wasn't visual, it was temporal. One 8-second loop at the top, one at the bottom, and the page has to hand off between them without the seam showing.

How two 8-second video backgrounds cross-fade on scroll SCROLL 0% VIDEO 1 8s loop VIDEO 2 8s loop SCROLL 100% Hero clip: character sits right kept full size — shrinking kills it Cross-fade starts 60–70% down at the midpoint it reads as a cut Second clip flipped horizontally character lands left, no collision PAYOFF the two hands meet exactly at the main CTA button extra dead space buys the scroll
The percentages are the whole trick. 60–70% down was the first setting where the transition stopped announcing itself; anything earlier and visitors register a section change rather than a continuous space.

Two details make or break it. First, the flip: the hero character sits on the right, so the second clip is mirrored 180° horizontally to put its character on the left. Without it, the two collide in the middle of the frame during the fade and the effect turns into a mess.

Second, dead space — the page needs extra length at the bottom so the fade has room to happen without the sections overlapping each other.

The other seam problem was structural. The hero had three visibly cut edges where sections met, each one reading as a pasted square. The fix was a gradient fade at the boundaries so the sections blend into the background instead of stacking on it.

The cross-fade tuning is the part that's genuinely easier to watch than to read — you can see the exact moment the fade stops looking like a cut and the two characters' hands land on the CTA. Watch the cross-fade →

Getting a colour that isn't every other AI site's colour

The first build came back gold and orange, which is fine and also everywhere. I fed it thumbnails from a podcast as the colour reference and asked it to move the whole theme there — a green that isn't mint, near mint but not the mint everybody uses. My own colour, that sits well against red and plain white.

The first attempt landed too stale and too blue, so the follow-up got specific about which part of the reference image mattered: the brighter region near the person, not the darker stale areas. More glow, more gradient, brighter overall. That's the method in miniature — reference (the thumbnail), intent (a colour that isn't already everywhere), constraint (not stale blue, not mint, lean bright).

The AI-built animated website after the colour pass, with the new green theme replacing the default gold and orange
After the colour pass. Two prompts moved the entire theme off the default gold — because the reference was an image I already owned, not an adjective like "premium".

What a site like this actually costs

No designers, no programmers, no Framer, no Figma. A $20 Pro plan, against a $10–20K agency build with a full team on it.

The real cost is ceilings

The real cost isn't money, it's ceilings. I hit the five-hour Pro limit constantly, and got limit-conscious enough that I started opening fresh sessions purely to save tokens — the same discipline that made the difference when I cut an agent's usage by 35x.

Doing the bulk of the work in Claude Code and saving Claude Design for the final touch isn't a stylistic preference on Pro. It's the only way the budget works. On the $200 tier you'd have more room to iterate in one place.

Time cost: one week. The next one is under a day, because the prompts now exist and can be pasted. If you're building sites for other people, that gap between "one week" and "under a day" is the entire business — which is roughly how I think about actually making money with Claude rather than posting screenshots about it.

Claude Code vs Claude Design: which one does what

Claude Code does the build. Claude Design does the final touch. The handoff between them is a file, and getting that file right took one prompt: make me something I can import into Claude Design, with all the files and the necessary guidelines. What came back was a site handoff containing the entire site with inline JS and HTML, plus an architecture map.

The Claude Code to Claude Design handoff, and where it breaks CLAUDE CODE structure, scroll, video layering where ~90% of the build happens GIT PUSH handoff.md + current repo state the only bus between the two tools CLAUDE DESIGN final touch + free tweaks smoother motion, no cliché tilt tweak ate a feature → revert Burns the 5-hour Pro limit fastest. New sessions = cheaper context. Skip the push and Design reads the last commit — you get the old site back, fully rebuilt. Tweaks cost no tokens — the one feature worth the trip on Pro. One of mine dropped video 2. Rule: push before every handoff, and again before you max out.
The repo is the interface between the two tools, which means an unpushed commit isn't a small mistake — it silently changes which website you're editing.

Why the first handoff failed

Which is exactly how the first handoff failed. Claude Design came back having rebuilt a version of the site I'd abandoned days earlier.

It revived the old version. Are you kidding? I want a full refund.

The cause was mundane: git wasn't pushed. Claude Design reads the repository, and the repository was behind my working tree, so it faithfully rebuilt the wrong site. The fix was to push everything, hand over the current link, and tell it to re-read and redo the job.

After that it was noticeably better — smoother motion, the hands meeting at the CTA, working navigation, the small animations on the YouTube, X and email icons, and none of the cliché tilt that gives AI-built pages away.

Two things worth knowing before you start Tweaks in Claude Design don't spend tokens, which on a Pro plan makes them the most valuable feature in the product. But one of mine quietly reverted the hero and lost the second video entirely, so verify after each one. And skip the voice input — dictated prompts were bad enough that I went back to typing and never tried again.

When the tweak regressed, I reverted to the last good version and finished in Claude Code. That's not a criticism of the tool so much as the actual shape of the workflow: the code environment holds the truth, and the design environment is a finishing pass you can walk away from.

The build order I'd use next time

  1. Generate the reference before you prompt

    Decide the feeling first, generate the still in Nano Banana or GPT image 2, iterate on the image, and animate only the frame you've committed to. Video generations are the scarce resource, not prompts.

  2. Write the metaphor down before the layout

    One paragraph on what the visitor should feel in the first second and why. This is the constraint the model can't invent for you, and it's what keeps the output off the template.

  3. Build the whole thing in Claude Code

    Structure, scroll behaviour, video layering. Prompt in reference + intent + constraints form, and always say what you don't want alongside what you do.

  4. Push to git, then hand off

    Export a handoff file with the entire site inline plus an architecture map, push the repo, and give Claude Design the link to the current version. Say "current version" explicitly.

  5. Final touch, then get out

    Use the free tweaks for small adjustments, check nothing regressed, and go back to Claude Code the moment a tweak eats a feature you already shipped.

That's it. A site that beats what I was paying agencies $10–20K for, with no team, no Framer and no Figma. Just Claude, the right references, and being specific about what you actually want. If you want to see how the finished thing behaves, it's the approach I use across everything on this site.

Watch the parts that didn't work

The scroll cross-fade being tuned live, the colour pass landing in two prompts, and Claude Design confidently rebuilding the wrong website — 18 minutes, unedited around the failures.

Frequently asked questions

Can Claude Code build a website with animated video backgrounds?

Yes. Claude Code handled the structure, the scroll behaviour and the layering of two 8-second video loops that cross-fade into each other. What it cannot do is invent the video. You bring the asset, generated or filmed, and Claude Code wires it into the page. Expect many revision passes rather than one shot.

Do I need the $200 Claude plan to build a site like this?

No. This site was built on the $20 Pro plan. The trade-off is time: I hit the five-hour usage limit constantly and started fresh sessions purely to save tokens. On Pro, do the bulk of the build in Claude Code and save Claude Design for the final touch. A higher tier mainly buys you room to iterate without stopping.

Why do AI-generated websites all look generic?

Because the prompt describes what you are selling. Build me a website that sells X gives the model nothing to push against, so it returns the median of everything it has seen: same hero, same gradient, same three-column feature grid. Give it a real reference asset, a stated feeling and an explicit list of what you do not want.

How do you get video backgrounds for an AI-built website?

Generate a still first in Nano Banana or GPT image 2, then animate that still into a short loop. On a paid Gemini Pro subscription you only get three video generations, so iterate on the image, which is cheap, and animate only the frame you have already committed to. Filming your own clip works just as well.

Why did Claude Design rebuild an old version of my site?

Because it reads your git repository, not your local working tree. Mine pulled a state from before my latest commits and rebuilt the wrong site. Push everything, then tell it explicitly to re-read the repo and redo the job. The same rule applies to the handoff file: it has to point at the current version.

The animated site rebuilt in Claude Design after pushing the current version to git, with smoother motion and the CTA in place
The rebuild after the repo was pushed. Same prompt, different commit, completely different result — worth remembering the next time a design tool seems to have ignored you.