From absolute beginner to shipping a paid client site.
You're holding the course I wish I had when I started. It's not a pile of tutorials. It's a video-game-shaped path with 9 levels, 60+ quests, and one boss battle at the end.
Each level has 5 parts:
| Part | Purpose |
|---|---|
| Lessons | The ideas in plain language. Read once, skim later. |
| Prompt Playbooks | Copy-paste prompts matched to the best AI for that job. |
| ๐ฅ Bronze quests | Smallest possible practice. 1+1 level. Don't skip, they unlock the rest. |
| ๐ฅ Silver quests | Add one variable. Harder, still playful. |
| ๐ฅ Gold quests | Portfolio-grade work. Do these on the tools that click for you. |
Before you touch a keyboard, you need three beliefs that separate people who build from people who watch.
A website is just a folder of files that a browser downloads and reads. There is no magic. There are exactly three types of files that matter for what we will build:
| File type | What it does (in plain language) |
|---|---|
| HTML (.html) | The skeleton. Says: here is a heading, here is a button, here is an image. |
| CSS (.css) | The skin. Says: make the heading blue, 40 pixels tall, centred. |
| JavaScript (.js) | The muscles. Says: when someone clicks the button, open the menu. |
Good news: AI tools now write all three for you. You describe what you want in English; the tool writes the files. Your job becomes creative director, not typist.
There are four ways AI helps a modern web designer. You will touch all four in this course.
| AI job | What it looks like in practice |
|---|---|
| Generate code | You type: 'make me a dark landing page with a pulsing hero button'. Lovable / v0 / Bolt / Cursor write the code. |
| Generate design | You type: 'wireframe a portfolio in 3 sections'. Relume / Figma AI draws it. |
| Generate content | You type: 'write a homepage for a coffee shop'. ChatGPT / Claude / Gemini writes it. |
| Generate assets | You type: 'a 3D flying coffee bean on a black background'. Spline / Runway / Midjourney make it. |
You are not competing with AI. You are learning to direct it. The person with the best taste and the clearest prompt wins.
Animation is any visual change over time. A button that grows when you hover over it. A logo that floats. Text that appears letter by letter. A 3D object that rotates as you scroll.
Animation matters because it tells the visitor: this site is alive, modern, and cared for. In 2026, a static website feels like a black-and-white TV. People still notice, but not in a good way.
Before Level 1, you need accounts. Take 20 minutes. Use the same email everywhere. Save passwords to a password manager (Bitwarden is free).
| Account | Why you need it |
|---|---|
| 1. Google (Gmail) | Everything signs in with Google. Make a dedicated brand email, e.g. modvia.yourname@gmail.com. |
| 2. ChatGPT (chatgpt.com) | Your everyday writing + prompting brain. |
| 3. Claude (claude.ai) | Longer, smarter thinking + coding help. |
| 4. Google AI Studio | Free access to Gemini, great for vision + free tier generous. |
| 5. Figma (figma.com) | Design tool. Where you plan before you build. |
| 6. Lovable (lovable.dev) | AI that builds full websites from prompts. |
| 7. v0 (v0.dev) | AI that builds React components from prompts. |
| 8. Framer (framer.com) | No-code animated website builder. |
| 9. GitHub (github.com) | Where your code lives. Even if you don't code, you'll need it to deploy. |
| 10. Vercel (vercel.com) | Where your websites go live. Free forever for personal sites. |
Don't pay for anything yet. The free tiers are enough to finish this course.
You will hear these words constantly. Learn them once and the rest of the course gets easy.
| Word | Plain meaning |
|---|---|
| Hero | The big top section of a page. First thing visitors see. |
| Section | A block on the page. A homepage usually has 4โ6. |
| Hover | When the mouse is over something (without clicking). |
| Viewport | The visible part of the browser window. |
| Responsive | Looks good on phone, tablet, and laptop. |
| Breakpoint | A screen size where the layout changes. |
| Component | A reusable piece of a site (button, card, nav). |
| Deploy | Put the site online so the world can see it. |
| Domain | The address, modvia.com, yourname.dev. |
| Hosting | The computer your site lives on (Vercel, Netlify, etc.). |
| Repo (repository) | A project folder tracked by GitHub. |
| Commit | A saved snapshot of your project. |
| Prompt | The instruction you give to an AI. |
| Token | A small chunk of text the AI sees. Long prompts cost more tokens. |
| Easing | The 'feel' of a motion, slow-start, bouncy, elastic. |
| Parallax | Background moves slower than foreground, depth illusion. |
| Lottie / Rive | File formats for interactive animations. |
| 3D model | A 3-dimensional object file (often .glb or .gltf). |
| WebGL / Three.js | The tech that renders 3D inside a browser. |
A weak prompt gives you a weak website. A strong prompt gets you 80% there. Use this template every single time you talk to an AI tool.
That's it. Role, Goal, Style, Sections, Constraints. Remember those five words.
Finish these three quests in order before moving to Level 1. They are small on purpose, the point is to push the start button on your career.
Goal. You need a professional base. This is where every account lives.
Goal. Get accounts out of the way today so the course moves without friction.
Goal. Feel the difference between AIs. Pick your favourite. That matters.
The whiteboard where every modern website begins.
Designing the site before you build it. Wireframing, moodboarding, and handing off clean specs to Framer, Webflow, or devs.
| Plan | Cost / What you get |
|---|---|
| Starter (free) | Unlimited personal files, 3 team projects, enough for all of this course |
| Professional | $15 / editor / month, more team files, version history |
| Organization | $45 / editor / month, branded team libraries, shared components |
Act as a senior product designer. Write a Figma brief for a landing page that sells an online course on 'Animated AI Websites' to aspiring designers. Return: 1) Site map (sections in order) 2) For each section: goal, headline, sub-headline, CTA copy 3) Colour palette in hex (4 colours max) 4) Typography pairing (Google Fonts) 5) Reference sites I should mood-board Tone: cinematic, confident, modern.
Goal. Open any website you love, screenshot the hero, and rebuild it pixel-for-pixel in Figma.
Goal. Produce three distinct hero directions for the same fictional product.
Goal. Ship a designed homepage you'd show a client.
No-code website builder with animation baked into the DNA.
Launching an animated, pro-looking site in a weekend without writing code. Drag, drop, animate, publish.
| Plan | Cost / What you get |
|---|---|
| Free | framer.website subdomain, unlimited personal sites |
| Mini | $5 / site / month, custom domain, 1 page |
| Basic | $15 / site / month, unlimited pages |
| Pro | $30 / site / month, CMS, forms, A/B, analytics |
Open Framer โ type 'AI' in the command bar โ Paste: Design a dark-mode landing page for 'Halo Coffee', a premium subscription for espresso beans. Hero has a floating 3D coffee bag, scroll reveals for 3 tasting notes, testimonial quotes, subscribe CTA. Fonts: Inter + Playfair Display. Accent colour: #F2B544.
Goal. Get a real URL live in under an hour.
Goal. Animate without being annoying.
Goal. Copy pressure-tests your skills faster than any course.
The visual builder agencies and enterprises trust for real CMS sites.
Big, content-heavy sites with blogs, case studies, and multiple page templates. More power than Framer, steeper learning curve.
| Plan | Cost / What you get |
|---|---|
| Starter (free) | 2 pages, webflow.io subdomain |
| Basic | $14 / month, custom domain, 150 pages |
| CMS | $23 / month, 2,000 CMS items, blog-ready |
| Business | $39 / month, 10,000 items, higher bandwidth |
I'm building a Webflow site for a photography portfolio. Write me: 1) A complete class-naming system (BEM or utility-first, pick one, justify it) 2) A list of reusable components I should build (nav, hero, grid, lightboxโฆ) 3) For each component, the exact Webflow structure (Section > Container > Div > โฆ) 4) Three interactions I should add on scroll, with timing and easing suggestions
Goal. Learn the navigator / style-manager rhythm.
Goal. Content that updates without re-designing.
Goal. Replicate what Webflow does best: cinematic scrolling.
The fastest way to turn a prompt into production-quality React components.
When you already code (or use Cursor / Lovable) and need a beautiful specific component, a navbar, pricing grid, hero, in 30 seconds.
| Plan | Cost / What you get |
|---|---|
| Free | 200 credits / month, enough to play |
| Premium | $20 / month, 5,000 credits, private generations |
| Team | $50 / user / month, shared projects, chat history |
A pricing section for a SaaS called 'Modvia Pro'. - Three tiers: Hobby (free), Creator ($19), Studio ($59). - Use shadcn/ui card components, subtle border, glass effect on the middle 'Creator' card. - Toggle switch for monthly/yearly at the top; yearly shows 20% off badge. - Each card has a checkmark list of 5 features. - Hover: card lifts 4px with soft shadow. - Dark mode with neon-green accent (#00FFB2) on primary CTAs.
Goal. Kick the tyres.
Goal. A personal design system in an afternoon.
Goal. Go end-to-end.
Prompt-to-full-app. Frontend, backend, database, auth, generated and hosted.
Anyone who wants a real web app (not just a marketing page) without touching a terminal. Great with Spline imports.
| Plan | Cost / What you get |
|---|---|
| Free | 5 messages / day, public projects |
| Starter | $20 / month, 100 messages / month, private projects |
| Pro | $50 / month, 500 messages, custom domain |
| Teams | $100+ / month, collab, versioning, SSO |
Build a personal finance tracker called 'Moneta'. Pages: 1) Auth (email + Google login, Supabase) 2) Dashboard, summary cards (balance, month income, month expenses), animated bar chart of last 6 months, recent 10 transactions 3) Transactions, list with filters, add/edit/delete modal 4) Settings, currency, dark mode toggle Design: - Dark theme, purple accent #8B5CF6, glass cards, subtle grid background - Fonts: Geist Sans + Geist Mono - Motion: stagger-fade cards in on load, numbers count up on first view Mobile-first. Store everything in Supabase.
Goal. Get Lovable's rhythm.
Goal. Go from marketing to functional.
Goal. Prove to yourself you can ship a real product.
Prompt-to-full-stack inside a real in-browser IDE. Generates, runs, debugs live.
When you want more control than Lovable, see the code, fork it, debug it, push to GitHub.
| Plan | Cost / What you get |
|---|---|
| Free | Limited daily tokens |
| Pro | $20 / month, 10M tokens, private projects |
| Teams | $50 / user / month, collab |
Build me a Next.js 14 (App Router) + Tailwind + shadcn/ui project.
Feature: a 'focus timer' with 25/5 Pomodoro, ambient sound toggle,
daily streak tracker persisted in localStorage,
animated circular progress ring.
File structure: app/, components/, lib/, with clear separation.
Add a README with setup instructions.
Goal. Learn Bolt's loop.
Goal. Edit AI-generated code yourself.
Goal. Preview of Level 3 integration quests.
Wix's pro-grade builder for agencies, heavy on animation presets and CMS.
Client work where the client wants to edit later without breaking things. Solid e-commerce and booking.
| Plan | Cost / What you get |
|---|---|
| Studio free | Build unlimited sites, pay only when publishing |
| Light | $17 / month / site, custom domain |
| Core | $29 / month / site, more storage, bookings |
| Business Elite | $159 / month, e-com heavy, unlimited bandwidth |
I'm building a Wix Studio site for a yoga studio. Deliver a full page-by-page blueprint: - 5 pages with section order - Breakpoint-specific content rules (what's hidden on mobile) - Animation recipe per section (entrance + scroll) - CMS collection proposal for 'Classes' + 'Teachers'
Goal. Learn Wix Studio's grid.
Goal. Use Wix's strongest feature.
Goal. What agencies ship.
AI site in 30 seconds. Best for small local businesses who need a presence yesterday.
Offering $200 website packages to local businesses (plumbers, cafรฉs, gyms). Turn-key, ugly-proof.
| Plan | Cost / What you get |
|---|---|
| Free trial | Build + preview for free |
| Starter | $15 / month, publish, domain, email |
| Business | $25 / month, CRM, invoicing, automation |
Rewrite this generic homepage copy for a local business in a warm, confident, specific voice. Keep it short. Remove buzzwords. Inject 3 concrete proof points (years, clients, credentials). --- [PASTE DURABLE'S OUTPUT HERE] ---
Goal. Fastest-site-ever badge.
Goal. Practice the $200 sale.
Goal. Real money quest.
3D for the web without opening Blender. Drag, animate, embed.
A jaw-dropping 3D hero that loads fast and responds to scroll or mouse.
| Plan | Cost / What you get |
|---|---|
| Basic (free) | 2 public files, 1 GB assets, enough to ship a hero |
| Super | $9 / month, unlimited files, private, better exports |
| Super Team | $15 / seat / month |
I'm designing a 3D hero for a premium coffee brand 'Halo Coffee'. Give me: 1) Camera composition (angle, focal length feel) 2) Lighting setup (hex colours, positions) 3) 3 object ideas (not literal beans, think metaphor) 4) Mouse-controlled interaction that feels premium 5) A scroll-linked animation idea Keep it minimalist and high-end, not cartoonish.
Goal. Smallest Spline you can ship.
Goal. Unlock scroll choreography.
Goal. Portfolio centrepiece.
Interactive animations that respond to state. Basically: smart Lottie.
Animated characters, buttons, onboarding scenes, animations that change based on user actions.
| Plan | Cost / What you get |
|---|---|
| Free | Unlimited public files |
| Pro | $18 / month, private files, higher export limits |
| Team | $45 / seat / month, shared workspaces |
Design the state machine for an animated Rive button with 4 states: idle, hover, loading, success. Deliver: - State names + trigger names (boolean/number) - Transition rules (which state leads to which, on what condition) - Timeline for each state (what animates, duration, easing) - Example runtime code (React) that drives the states from a form submit
Goal. Smallest Rive you can ship.
Goal. Build the exact button from the playbook.
Goal. Portfolio-grade Rive.
The world's library of ready-to-drop lightweight animations.
Need a quick animated icon, loader, or illustration without designing it yourself.
| Plan | Cost / What you get |
|---|---|
| Free | Download community animations |
| Premium | $19 / month, pro animations, no credit, AI tools |
| Team | $49 / seat / month |
Rather than a prompt, here's a search-phrase cheat sheet: - 'subtle hover icon', for nav items - 'page loader minimal', for loading states - 'success tick morph', for form submit success - 'particles ambient loop', for hero background - 'scroll-down chevron', for hero bottom cue
Goal. Zero to first Lottie.
Goal. Make them feel on-brand.
Goal. Make a Lottie interactive.
Fastest general-purpose AI. Your writing + brainstorming + quick-code partner.
Daily thinking: writing copy, outlining, spitballing designs, quick HTML/CSS/JS, image prompts.
| Plan | Cost / What you get |
|---|---|
| Free | GPT-5 mini access, limited |
| Plus | $20 / month, GPT-5, image gen, voice, Canvas |
| Pro | $200 / month, GPT-5 Pro, o3-Pro, research mode |
| Team | $25 / user / month (annual) |
You are my senior creative director at a boutique web studio. Today's job: come up with 10 radically different landing-page hero concepts for a new AI writing tool called 'Quill'. I want one-line headline, one-line sub, and the core visual gimmick for each concept. Constraints: - No more than 9 words in the headline. - Each concept feels distinct (don't just swap adjectives). - Include at least one concept with 3D, one with typography as hero, and one with a no-image all-gradient hero.
Goal. Feel the speed.
Goal. Make ChatGPT act like your employee.
Goal. Push ChatGPT to its multi-modal limit.
The deep-thinker. Better long-form writing, better code reasoning, kinder output.
Coding hard problems, architecting sites, long documents, anything where taste + depth matter more than speed.
| Plan | Cost / What you get |
|---|---|
| Free | Claude Haiku access, limited Sonnet |
| Pro | $20 / month, Sonnet 4.6 + Opus 4.6 generous use |
| Max | $100โ$200 / month, highest limits, priority access |
| Team | $30 / user / month |
I'm designing an animated site for an AI education brand called 'Modvia'. Think through: 1) The 3 design directions that could work for this audience (aspiring designers wanting to learn AI). Rank them and defend the winner. 2) The 5 most convincing proof-of-skill moments to put on the homepage, and what each one should visually look like. 3) The single strongest CTA copy for 'join the community'. 4) Finally, write the production HTML+CSS for the hero, using only Tailwind + GSAP. No external dependencies.
Goal. First HTML Artifact shipped.
Goal. Stop re-explaining yourself.
Goal. Use depth where it matters.
Free playground for Gemini, massive context, image + video understanding.
Free access to one of the best models + the best image/video understanding on the market.
| Plan | Cost / What you get |
|---|---|
| Free tier | Generous daily token limit, Gemini 2.5 Pro + Flash |
| Paid API | Pay-per-token if you build apps on it, cheap |
I'm attaching 3 screenshots of websites I love. Extract for me: 1) Shared design patterns (colour, type, grid, motion feel) 2) Specific CSS techniques visible (glassmorphism, gradients, etc.) 3) How I could combine these patterns into a unique hero section 4) Tailwind classes that approximate the look Bonus: suggest 2 ways to make it MORE distinctive, not less.
Goal. Try multimodal.
Goal. Exploit the video input.
Goal. Synthesis over imitation.
Google's agentic IDE, AI writes, runs, and tests code across a full project.
Real development work where you want the AI to plan, edit multiple files, and run things itself.
| Plan | Cost / What you get |
|---|---|
| Free preview | Currently free during public beta |
| Team / Pro | Expected tiered pricing post-GA |
In this Next.js project, build a dark-mode toggle that: - Uses next-themes library (install if missing) - Adds a sun/moon icon button to the navbar - Persists choice in localStorage and respects system preference - Works without flashing on page load When done, run the dev server and confirm it compiles.
Goal. Trust the agent.
Goal. Debug via intent, not clicks.
Goal. See the ceiling.
The AI-native code editor that feels like VS Code but thinks with you.
Any real-world project. Pair-programming with Claude Opus or GPT-5 right in your editor.
| Plan | Cost / What you get |
|---|---|
| Hobby (free) | 2,000 completions / month, slow requests |
| Pro | $20 / month, unlimited completions, priority model access |
| Business | $40 / user / month, team management, privacy mode |
(Inside Cursor's Composer), In this Next.js 14 project, add a newsletter signup flow: - Create components/NewsletterForm.tsx (email input, subscribe button) - POST /api/subscribe route that writes to Supabase 'subscribers' table - Client-side toast on success/error (sonner) - Add the form to the footer of app/layout.tsx - Write a test with vitest that mocks Supabase Don't install anything that isn't already in package.json unless necessary.
Goal. Learn โK.
Goal. Multi-file change.
Goal. Build a real app inside Cursor.
The default professional code editor. Extend with Copilot / Claude / Continue.
When you want full control, every extension under the sun, and zero lock-in.
| Plan | Cost / What you get |
|---|---|
| Free forever | The editor itself costs nothing |
| Copilot | $10 / month, GPT-powered pair programmer |
| Copilot Business | $19 / user / month |
(In Copilot Chat or Continue), /explain (select a function in your file, then press enter) /doc (same, generates JSDoc) /test (generates a test file for the selected function)
Goal. Ready-to-work editor.
Goal. Editor + brain.
Goal. Prove the free stack works.
AI sitemap + wireframe generator that plugs straight into Figma and Webflow.
Skipping the 'what sections should this site have' question. Relume answers it in 10 seconds.
| Plan | Cost / What you get |
|---|---|
| Starter | $39 / month, unlimited sitemaps + wireframes |
| Pro | $52 / month, team features |
| Team | $87 / month, 3 editors |
Write a Relume sitemap brief for: a mid-range Italian restaurant with delivery, catering, and a 40-seat dining room in Porto. Deliver: - 2-sentence company description (to paste into Relume) - The 6 pages they actually need (no fluff) - For each page, 5 sections in recommended order - Tone of voice: warm, classic, unpretentious
Goal. See the magic.
Goal. End-to-end.
Goal. Use Relume like the pros do.
AI video generation + editing. Hero videos and moving backgrounds without cameras.
Unique moving backgrounds, product videos, hero loops, social cuts, all generated with prompts.
| Plan | Cost / What you get |
|---|---|
| Free | 125 credits one-time |
| Standard | $15 / month, 625 credits, 720p |
| Pro | $35 / month, 2,250 credits, 4K export |
| Unlimited | $95 / month, unlimited standard generations |
Write a Runway Gen-4 video prompt for a hero loop on a coffee brand site. Requirements: - 4 seconds, seamless loop - Describe camera move (dolly / orbit / crane) - Describe lighting (moody key light, low fill, golden spills) - Describe subject motion and timing - Describe grain, depth-of-field, colour grade - End with 'cinematic, 35mm, filmic'
Goal. First Runway ship.
Goal. Turn a still into a loop.
Goal. Level up your portfolio.
The most natural AI voices. Voiceovers for video, podcasts, and interactive sites.
Adding narration to explainer videos, hero clips, podcast intros, or cloning your own voice.
| Plan | Cost / What you get |
|---|---|
| Free | 10k characters / month (~10 min of audio) |
| Starter | $5 / month, 30k chars |
| Creator | $22 / month, 100k chars, commercial, voice cloning |
| Pro | $99 / month, 500k chars, pro voice cloning |
Write a 45-second voiceover script for a hero explainer video about Modvia, a community teaching aspiring designers to build animated AI websites. Tone: confident, intimate, a friend on a walk. Pace: ~140 words. Structure: hook โ problem โ shift โ promise โ CTA. Include one pause beat (โ) and one emphasis word (in ALL CAPS).
Goal. Ship a 20-second audio.
Goal. Own the voice of your brand.
Goal. Audio-rich website (rare, memorable).
Almost everything here has a free tier. Here's the shortlist of paid subscriptions that earn their money back fast.
| Tool | Pay whenโฆ |
|---|---|
| ChatGPT Plus ($20) | you work with it daily, day one. |
| Claude Pro ($20) | you code or write long-form, day one. |
| Cursor Pro ($20) | you code regularly. |
| Framer ($15โ$30) | you publish a real client site. |
| Webflow CMS ($23) | you need a blog. |
| Lovable ($20) | you need full-stack apps, not just pages. |
| Runway ($15) | you're shipping video monthly. |
| ElevenLabs ($22) | you're cloning voices or shipping narration monthly. |
Most beginner sites look cheap because every element is animated. Pros do the opposite: 80% stillness, 20% motion in the right places. Memorise these rules.
| Rule | In plain language |
|---|---|
| Motion carries meaning | If the animation doesn't tell the user something, cut it. |
| One thing at a time | Don't stack five animations on one scroll trigger. |
| Easing beats speed | Slow, eased motion feels more premium than fast, linear. |
| Respect reduced motion | Always check prefers-reduced-motion, some people get dizzy. |
| Test on an old phone | If it stutters there, it's broken, even if your Mac hides it. |
| Word | What it is |
|---|---|
| Ease | The acceleration curve. 'ease-out' starts fast, ends slow, the most useful default. |
| Duration | How long it takes. 200โ400ms for UI. 600โ1200ms for storytelling. |
| Delay | When it starts. Used for stagger. |
| Stagger | A list of items animating one after another instead of all at once. |
| Timeline | A sequence of animations chained together. |
| Tween | Animate FROM one value TO another (position 0 โ 100). |
| Keyframe | A value at a specific time in a timeline. |
| Spring | Physics-based easing, mass, stiffness, damping. Feels bouncy or rubbery. |
| Scrub | Tie animation progress to scroll position, no time, only distance. |
| Pin | Lock a section in place while the user scrolls, playing animations instead. |
When you animate on the web, you are choosing one of four tools. They each have a sweet spot.
| Language | Sweet spot | Difficulty | Install |
|---|---|---|---|
| CSS transitions | Hover states, tiny UI changes | ๐ข Easy | Built into every browser |
| Framer Motion (React) | App UI, micro-interactions, entries | ๐ข Easy | npm i framer-motion |
| GSAP + ScrollTrigger | Marketing sites, scroll cinema | ๐ก Medium | npm i gsap (free since 2024) |
| Lottie / Rive | Complex vector + character anim | ๐ก Medium | npm i lottie-react / rive-react |
Start here. Every animation learner should be fluent in basic CSS transitions before touching a library.
Give me 5 CSS class snippets using transition-only (no JS): 1) A button that lifts 2px and shadows on hover 2) A card that scales 1.02 and reveals a border-glow on hover 3) A nav link with an underline that slides in from the left 4) An image that zooms 1.05 inside a fixed-size frame on hover 5) A theme-toggle icon that rotates 180ยฐ on click (with .is-dark class) Use cubic-bezier(0.22, 1, 0.36, 1) and 300ms for all of them. Tailwind-compatible: give me both raw CSS AND Tailwind classes where possible.
If you're using Lovable, v0, Bolt, or Cursor, you're probably in React. Framer Motion is THE library for animating React components.
| You want toโฆ | Framer Motion pattern |
|---|---|
| Fade + slide in on mount | <motion.div initial={{opacity:0, y:20}} animate={{opacity:1, y:0}} transition={{duration:0.6}} /> |
| Animate a list with stagger | <motion.ul variants={container}> + <motion.li variants={item} /> |
| Scroll-triggered fade | whileInView={{opacity:1}} viewport={{once:true}} |
| Spring hover | whileHover={{scale:1.03}} transition={{type:'spring', stiffness:300}} |
| Exit animation | <AnimatePresence> + exit={{opacity:0}} on the child |
I'm using Next.js 14 + Tailwind + Framer Motion.
Generate these 5 components as .tsx files, each under 40 lines:
1) <FadeUp>, wraps children, fades + slides up on viewport enter, stagger by index via parent
2) <NumberCounter value={1234} />, counts up when in view, 1.5s, ease-out
3) <MagneticButton>, button that pulls slightly toward the cursor on hover
4) <PageTransition>, layout.tsx wrapper that fades between routes
5) <TextReveal>, splits string into words, fades each word up with 50ms stagger
Respect prefers-reduced-motion in all of them.
GSAP is how you make sites like Apple's product pages. It became fully free in 2024. There's no reason not to learn it.
The key concept is the TIMELINE. You chain animations one after another (or with relative offsets). ScrollTrigger then maps that timeline to the scroll position.
Next.js 14 project, I want a 'scroll cinema' landing page hero. Build me: 1) Section 1, pinned hero. As the user scrolls, a headline splits apart, a background gradient shifts hue, and a 3D-ish text depth grows. 2) Section 2, horizontal scroll. Three panels move right-to-left as the user scrolls down. Each panel has a headline + image. 3) Section 3, stacked pins. Three text blocks pin one after the other, each fading the previous out. Use GSAP + ScrollTrigger. Clean up on unmount. Respect reduced motion. Keep all three as separate components I can drop into a page.
| Format | Use whenโฆ |
|---|---|
| Lottie (.json / .lottie) | You want a plug-and-play icon, loader, illustration. Plays the same forever. Under 50kb usually. |
| Rive (.riv) | You want STATES, hover, click, loading, success. Playable logic inside the file. |
Each quest is one specific motion pattern. Do them in order. Each one feels like 1+1, until you realise you now know the whole language.
Goal. Ship a button that lifts 2px and casts a soft shadow on hover.
Goal. Text fades + slides up when it enters the viewport.
Goal. Six cards fade + slide in one by one when the grid scrolls into view.
Goal. A stat like '1,248 students' counts up from 0 when the section enters view.
Goal. A section pins at the top of the screen and a timeline plays as you scroll past.
Goal. Three panels move right-to-left as the user scrolls down.
Goal. A button with 4 states (idle / hover / loading / success) animated in Rive.
Every integration has three moves. Memorise them:
| Move | What happens |
|---|---|
| 1. Export | Tool A produces a universal file or URL (.glb, .riv, Lottie .json, iframe, public URL, npm package, React component, CSS). |
| 2. Bridge | You pass that file/URL to Tool B, via upload, iframe embed, code import, script tag, or copy-paste. |
| 3. Consume | Tool B renders it, respects it, controls it, usually via a runtime library (rive-react, lottie-react, Three.js, SplineReact). |
When an integration feels impossible, ask: what's the export format? Every pro tool exports something universal.
| From | Exports | Bridge | Consume in |
|---|---|---|---|
| Spline | .glb / iframe URL / React component | Drop in hero | Lovable, Bolt, Next.js, Framer, Webflow |
| Rive | .riv | rive-react / web SDK | Next.js, Framer code components, Webflow custom code |
| LottieFiles | .json / .lottie | lottie-react / <lottie-player> | Anywhere HTML runs |
| Figma | Design tokens / Variants / Dev Mode CSS | Copy CSS, Anima plugin, Locofy, Figma-to-code tools | Framer, Webflow, Next.js |
| v0 | JSX / React components | Copy code / push to repo | Next.js, Cursor |
| Runway | .mp4 | <video> tag | Any site |
| ElevenLabs | .mp3 | <audio> tag | Any site |
| Relume | Figma file / Webflow project | Direct export | Figma, Webflow |
Let's do the most-requested chain in painful step-by-step detail. A 3D hero made in Spline, rendered inside an app built by Lovable.
Add a Spline 3D scene as the hero background. - Install @splinetool/react-spline and @splinetool/runtime - Public Spline URL: [PASTE YOUR SPLINE URL HERE] - Wrap it in a div that is 100vh tall - Overlay on top: a headline, a sub, and a CTA (text content stays crisp) - Add a subtle dark gradient overlay between the 3D and the text - On mobile (<768px), replace the 3D with a static poster image for perf - Lazy-load the Spline component (dynamic import, ssr: false) - Show a minimal loader while the scene is initialising
This one is borderline magic, Framer lets you paste Figma frames and get an editable site.
| Animation | How to embed in Webflow |
|---|---|
| Lottie | Native, Webflow has a Lottie element. Drag, upload .json, set loop/trigger. |
| Rive | Custom code embed. Page Settings โ before </body>: <script type='module' src='https://unpkg.com/@rive-app/canvas@2/rive.js'></script>. Add a <canvas id='rive'> and a tiny init script. |
I uploaded my Rive file to my own CDN at: [URL].
Give me the exact Webflow custom embed code:
- A <canvas> with id='rive-hero', width/height set
- Inline <script type='module'> that imports rive from jsDelivr
- Creates a new Rive({ src, canvas, stateMachines: ['main'], autoplay: true })
- Adds a click listener on the canvas that fires a boolean state input 'clicked'
- Respects window.matchMedia('(prefers-reduced-motion: reduce)')
Keep total code under 25 lines.
AI builders are great for drafts. The moment you need a pixel-perfect tweak, move the code into Cursor.
Pick at least three. Gold quests here are the most portfolio-worthy pieces in the course.
Goal. Add a looped Lottie icon to a Framer hero.
Goal. Paste a Figma hero into Framer and keep everything editable.
Goal. Embed a Spline iframe inside a Framer site.
Goal. Embed an interactive Rive button inside Webflow.
Goal. Take one idea through four tools into a live site.
Goal. The 'I can do anything' quest.
Goal. Learn the pro handoff.
15 minutes of planning saves 3 hours of redoing. Write these four paragraphs before touching a tool.
| Paragraph | What to write |
|---|---|
| Who | Independent home-baristas who already drink good coffee and are bored by supermarket beans. |
| What | A subscription that ships single-origin espresso beans monthly. Pause anytime. |
| Why we're different | Small roasters, named farms, a tasting card with every bag, cheaper than a boutique cafรฉ habit. |
| Feel | Linear-meets-Aesop. Cinematic, warm, confident. Dark theme, cream accents, cinematic photography. |
One page, 7 sections, in this order:
| # | Section purpose |
|---|---|
| 1. Hero | 3D floating coffee bag, headline, sub, primary CTA. |
| 2. Problem | "Supermarket espresso is a compromise." One hook sentence. Subtle animation. |
| 3. How it works | 3 steps: choose profile โ ships monthly โ enjoy. |
| 4. This month's beans | Featured roaster card with tasting notes, origin map. |
| 5. Social proof | 3 short testimonials + a press logo strip. |
| 6. Pricing | One plan. Simple. Cancel anytime callout. |
| 7. FAQ + CTA | 4 questions. Final subscribe button. |
Design a 3D hero scene for Halo Coffee in Spline. Deliver: 1) Camera: angle, focal length feel, position coordinates if possible 2) One hero object (not a photo-real coffee bag, a symbolic 3D form) 3) Lighting: key + fill + rim, with hex colour suggestions (warm creams and deep navy) 4) A mouse-parallax interaction that doesn't nauseate 5) A scroll-linked movement (object rotates 30ยฐ as user scrolls first 100vh) 6) Material hints: matte ceramic, subtle grain, not glossy Bias: minimalist, premium, not cartoonish.
One mega-prompt first, then refine in chat. Copy this whole block into Lovable:
Build a 1-page marketing site for 'Halo Coffee', a premium single-origin espresso subscription. Stack: Next.js 14 (App Router), TypeScript, Tailwind, shadcn/ui, Framer Motion. Design system: - Dark theme: #0A0908 background, #F2E3C2 cream text accents - Type: 'Fraunces' for display, 'Inter' for body - Cinematic, generous whitespace, subtle grain overlay on hero - All motion uses cubic-bezier(0.22, 1, 0.36, 1), 600ms default Install and use @splinetool/react-spline. Hero uses Spline URL: [PASTE YOUR SPLINE URL HERE] Overlay a dark gradient on hero so text stays readable. Sections in order: 1) Hero, full viewport. Spline on the right half (desktop), behind text (mobile). Headline 'Espresso worth waking up for.' Sub 'Single-origin beans from small roasters, delivered monthly.' CTA 'Start tasting, โฌ22/mo' 2) Problem, centered heading 'Supermarket espresso is a compromise.' One paragraph. Fades in on scroll. 3) How it works, 3 cards stagger in on scroll. (1) Taste profile quiz, (2) We ship fresh-roasted, (3) Pause anytime. 4) This month, card with roaster name, country (show on a subtle map/dot), tasting notes list. 5) Social proof, 3 testimonial cards, then a press logo row. 6) Pricing, one card, โฌ22/mo, includes list, big CTA. 7) FAQ (4 questions, accordion) + final CTA block. Responsive. Mobile: hide the 3D scene, show a poster image instead. Accessibility: respect prefers-reduced-motion. Alt text everywhere. Don't use stock photos, use CSS gradients and SVG shapes if needed. When done, add a /confirmation page and a Supabase table 'subscribers' (email, plan, created_at). The CTA posts to /api/subscribe and writes to Supabase.
| Polish item | How to do it |
|---|---|
| Grain texture | Ship a 400ร400 SVG noise pattern at 3% opacity, fixed position. |
| Favicon | Generate an SVG favicon via realfavicongenerator.net; replace /favicon.ico. |
| OG image | Use Vercel OG (built into Next.js), a dark card with the logo + headline. |
| Micro-copy | Rewrite every button. 'Subscribe now' โ 'Start tasting'. Verbs, not marketing. |
| 404 page | Design a custom 404 with the same grain + a witty line. One line of ChatGPT + 10 minutes. |
| Loading states | Skeletons on hero while Spline loads; spinner on the subscribe button while submitting. |
Polish pass for Halo Coffee homepage. Do these in order: 1) Rewrite every CTA (button, hero, pricing, final) with a verb + specificity. No 'Learn more' or 'Get started'. 2) Rewrite FAQ questions from a customer's voice, not ours. Short and real. 3) Write a 404 page line, witty, on-brand, not cringe. 4) Write the OG image card copy (โค10 words) that would make someone click. Return as a single markdown table.
From Lovable, click 'Publish' โ you get a halo-coffee-xxx.lovable.app URL.
For a real domain (e.g. halocoffee.co), we move to Vercel in Level 6. For now, share the lovable.app URL everywhere, this is enough to add to your portfolio.
This level is one continuous quest in three tiers. Finish all three and you have a portfolio piece.
Goal. Prompt Lovable, get all 7 sections, accept whatever it gives you.
Goal. Add the Spline hero and do the polish pass.
Goal. Turn this build into a client-ready piece of work.
A dot or ring that follows the mouse, grows on links, shrinks on text. Small detail, huge brand feeling.
Build me a <SmoothCursor /> component for Next.js 14 + Tailwind. Behaviour: - Hide the native cursor only on desktop (keep native on touch devices) - Render a 32px ring that lags the mouse with a spring (~200 stiffness) - Render a 6px dot that follows instantly - On hover over [data-cursor='grow'], ring scales to 72px and dims - On hover over text inputs, cursor becomes a 2px vertical bar - Respect prefers-reduced-motion (fallback to native cursor) - All styles in Tailwind; use motion values (no layout thrash)
Goal. Ring follows mouse with lag, dot is instant.
A soft fade + slight slide between routes. Makes an SPA feel like a film cut instead of a whiplash.
Next.js 14 App Router + Framer Motion. Build a <PageTransition> that: - Wraps children in AnimatePresence with mode='wait' - Uses usePathname as key - Fades + slides up 16px on enter, fades + slides down 16px on exit - Duration 300ms with ease [0.22, 1, 0.36, 1] - Lives in app/template.tsx so it runs on every route change - Respects prefers-reduced-motion (fallback to instant)
Goal. Every route change fades through.
Buttons that slightly lean toward the cursor or morph shape on click. Signature Apple move.
Build a <MagneticButton> component: - Child translates toward cursor with a damping factor of 0.3 - Resets on mouseleave with a spring - Boundary: max 10px translation in any direction - Respects prefers-reduced-motion - Uses pointer events (works on stylus too, not just mouse)
Headlines that split by word or letter and stagger into view. Your single most-reused hero move.
Build a <SplitReveal> Framer Motion component.
API: <SplitReveal text='Espresso worth waking up for.' stagger={50} by='word' />
- 'by' accepts 'word' | 'char' | 'line'
- Each piece fades + slides up 12px
- Triggers on viewport enter, once
- Respects prefers-reduced-motion
- Works with Fraunces and Inter without breaking kerning
When Spline isn't enough, custom GLSL shaders and Three.js. This is the deep end. Do the Silver quest first.
Build a Next.js hero using @react-three/fiber + @react-three/drei. Scene: - Dark scene, single floating torus in warm gold material - OrbitControls disabled, scene rotates 30ยฐ based on scroll progress - Mouse parallax, camera offsets up to 20px - Post-processing: subtle bloom + film grain - Fallback: on low-end device (navigator.hardwareConcurrency < 4), render a static poster image Make it a single Hero.tsx file, dynamic-imported with ssr:false.
Goal. A custom Three.js hero on a real site.
A scroll drives frame-by-frame playback of 60 images. What Apple does for their iPhone reveals.
Goal. A product reveal driven by scroll.
Optional, very niche, very memorable. A hero ring or waveform that pulses to an audio track.
Build a React component <AudioRing audioSrc='/bg.mp3' />: - SVG circle 200px radius - Uses Web Audio API AnalyserNode (fftSize 256) - Scale and hue shift the ring based on average frequency amplitude - Play/pause button inside the ring - Muted by default, gesture-gated autoplay policies respected - Respects prefers-reduced-motion (still plays audio, no animation)
Google ranks sites partly on three measurements. Know them, beat them.
| Metric | Plain meaning |
|---|---|
| LCP (Largest Contentful Paint) | How long until the biggest visible thing shows up. Target < 2.5s. |
| INP (Interaction to Next Paint) | How responsive the page feels after click/tap. Target < 200ms. |
| CLS (Cumulative Layout Shift) | How much stuff jumps around while loading. Target < 0.1. |
Check yours for free at pagespeed.web.dev. Lighthouse (in Chrome DevTools) gives the same numbers locally.
| Villain | How to neutralise |
|---|---|
| Unoptimised images | Ship AVIF or WebP. Use <Image> in Next.js. 150kb hero > 1.5MB hero. |
| Big JS bundles | Code-split. Dynamic-import heavy components (Spline, Three.js). Tree-shake. |
| Blocking fonts | Use next/font or self-host with font-display: swap. Never use 6 font weights. |
| Third-party scripts | Heatmaps, chatbots, analytics, each adds weight. Keep max 3. |
Here's my Lighthouse mobile report and my Network tab summary. [PASTE LIGHTHOUSE OUTPUT] [PASTE NETWORK WATERFALL SUMMARY] Give me: 1) The single biggest LCP bottleneck and the 1-line fix 2) The 3 biggest JS bundles and whether each can be lazy-loaded 3) Any font-related issues with fix commands 4) Expected gain per fix, in milliseconds Rank in priority order. Don't suggest anything that gains < 100ms.
Vercel is the easiest free host for Next.js / React / Framer-exported code. Here's the literal sequence:
| Step | What to do |
|---|---|
| 1 | Push your project to GitHub (from Cursor: terminal โ git init, git add ., git commit, gh repo create, git push). |
| 2 | vercel.com โ 'Add New Project' โ select your repo. |
| 3 | Vercel auto-detects framework (Next.js, Vite, Astro). Leave defaults. |
| 4 | Click 'Deploy'. ~60 seconds later: you have a .vercel.app URL. |
| 5 | Every git push auto-deploys. Every pull request gets a preview URL. |
Going from halo-coffee-xyz.vercel.app to halocoffee.co takes ~10 minutes + $12/year.
| Step | What to do |
|---|---|
| 1. Buy domain | namecheap.com or cloudflare.com (cheapest + cleanest). Pay with card. $12โ$20/year. |
| 2. Vercel โ Domains | Add halocoffee.co (and the www. variant). |
| 3. Vercel shows DNS records | Usually: an A record pointing to 76.76.21.21, and a CNAME for www. |
| 4. Go to registrar โ DNS | Paste the records. Save. |
| 5. Wait 10 min to 24 hours | DNS propagates. Vercel auto-issues a free SSL certificate (https). |
| 6. Test | halocoffee.co loads, has the green padlock, redirects www โ apex. |
| Do this | How |
|---|---|
| Unique <title> per page | Under 60 chars. Include the main keyword + brand. |
| Meta description | Under 155 chars. Sells the click, not the page. |
| H1 = primary keyword | One H1 per page. Matches the user's search intent. |
| Alt text on images | Descriptive. Not 'image1.jpg'. |
| Sitemap.xml + robots.txt | Next.js: next-sitemap package. Framer/Webflow: built-in. |
| Open Graph tags | og:title, og:description, og:image, so shares look good on social. |
| Google Search Console | Add site, submit sitemap, watch indexing. search.google.com/search-console. |
Write SEO metadata for Halo Coffee's homepage. Brand voice: cinematic, warm, specific. Primary keyword: 'specialty coffee subscription'. Secondary: 'single origin espresso delivery'. Deliver: - <title> (โค60 chars) - meta description (โค155 chars) - og:title + og:description + twitter:description variants - Suggested og:image concept (what it should show, text on it) - JSON-LD schema for 'Organization' type
| Tool | When |
|---|---|
| Vercel Analytics | Free tier included with Vercel deploys. Page views + Core Web Vitals. |
| Plausible / Umami | Privacy-friendly, no cookie banner required. ~$9/month or self-host free. |
| PostHog | Free tier generous; product analytics + session replay. |
| Google Analytics 4 | Free, powerful, slow UI, cookie-banner required. |
Start with one. Don't install four heatmaps. Observe for 2 weeks before changing anything.
Goal. Get a production URL that auto-deploys on push.
Goal. A real halocoffee.whatever domain pointed at your site.
Goal. Turn your site from 'pretty but slow' to 'pretty AND fast'.
Goal. Ready-for-Google launch state.
Goal. The 'I won't get embarrassed' pass.
Pick ONE of these three by end of today:
| Target | Why it works |
|---|---|
| Local cafรฉ / restaurant | Simple scope, visual content easy, results you can walk past. |
| Personal trainer / yoga studio | High emotion, high conversion value, booking flow you can show off. |
| Independent creative (photographer, architect, designer) | They appreciate good design, your work speaks directly to their audience. |
Don't build in the dark. Either (a) call or email the owner for 15 minutes, or (b) answer these yourself as 'the brief' for a concept piece.
| Session | What to ship |
|---|---|
| 1, Brief & sitemap | 2-sentence positioning, 5-section sitemap in Relume or Figma, colour + type pair. |
| 2, Hero & visual direction | Hero designed in Figma. 1 Spline scene OR 1 Runway clip OR 1 Lottie for hero. |
| 3, Section drafts | All sections built in Lovable or Framer. Ugly but complete. |
| 4, Motion pass | Add the Level 2 motion patterns. Fade-up, stagger, one GSAP pin. |
| 5, Polish + copy | Rewrite every CTA, 404, OG, favicon, case-study copy. |
| 6, Launch + case study | Deploy. Loom. Portfolio entry. Post in community. |
Write a 130-word cold email from me, a freelance animated-web designer, to the owner of [BUSINESS NAME], a [BUSINESS TYPE] in [CITY]. Context: - I built a concept redesign of their site as a showcase. - Video Loom link: [LOOM URL] - Portfolio: [PORTFOLIO URL] - Offer: fixed-fee โฌ690 launch package (or whatever you set). Rules: - Subject line under 45 chars, no clickbait. - First sentence shows I actually visited their place or site. - No 'I hope this email finds you well.' - One clear CTA at the end, either reply or book a 15-min call. - Sign-off warm, not corporate.
A single email has a 5โ10% reply rate. A sequence of 3 has 30%. Space them 4 days apart.
| Follow-up | What to say |
|---|---|
| Day 4 | 'Quick bump, wanted to make sure this didn't get buried. Any thoughts?' |
| Day 8 | 'Last one from me. I'll leave the Loom link here, if the timing is off, no worries. If it's ever the right moment, [reply | call link].' |
Goal. A rebuilt homepage in your portfolio as a concept piece.
Goal. Practice the outreach. This is often the moment the course pays for itself.
Goal. Close a deal. Any deal. โฌ100, โฌ500, โฌ1,500, the amount matters less than the fact that a stranger paid you money for web design you learned here.
Four pricing models. Pick one per engagement. Most beginners should start with fixed-fee packages.
| Model | When to use |
|---|---|
| Fixed-fee package | Small businesses who want clarity. 'Launch Package โฌ690.' Best entry-level model. |
| Hourly | Retainers + maintenance work. โฌ35โโฌ120/hr depending on scope + country. |
| Day rate | Consulting / audits / quick projects. โฌ350โโฌ1,200/day. |
| Revenue share | Rare. Only if you also help sell the thing. 3โ10% of revenue for 12 months. |
Write a 1-page fixed-fee proposal for [CLIENT NAME], a [BUSINESS TYPE]. Structure: 1) Summary (2 sentences) 2) What I'll build (bulleted, 5โ8 lines) 3) Timeline (3 phases with dates) 4) What's included / what's not (two short lists) 5) Price + payment terms (50% upfront, 50% at launch) 6) Next step (1 sentence) Tone: confident, clear, human. No agency fluff. Under 450 words. Don't use: 'synergy', 'solutions', 'unleash', 'elevate'.
Don't use a 20-page legal template for a โฌ500 job. Use a 1-page agreement with these two paragraphs:
Email it. Get 'I agree to these terms, please start' as a reply before you write one line of code.
The community is the reason the course works. These eight rules keep it that way.
Goal. Three packages, clear prices, clear scope.
Goal. Send a real proposal to a real lead.
Goal. A personal site that itself is your best proof of work.
Goal. Your reputation inside Modvia is your multiplier.
If you've finished the Levels and all the Master Quests, you have: a vocabulary, a toolkit, three projects, a pricing sheet, a proposal template, a deployed portfolio, and, if you pushed through Level 7, a paying client.
That's not a certificate. That's a career.
Keep shipping. Keep helping one person a week. Keep reinvesting 10% of every cheque into the tools that made it possible.
, Modvia Academy