Sprint Reference

Build websites with AI

Universal rules

  1. 01When something goes wrong — copy the error, paste it into Claude, ask what it means.
  2. 02Two terminal tabs at all times — Tab 1 = Claude Code, Tab 2 = dev server.
  3. 03You are responsible, not Claude. Always review changes before they go live.
  4. 04Push and commit to GitHub after every task — every push is a restore point.

Build day

Day 4 — Animate + expand

Refine, animate, and expand. The site is built and live. Now you fix static issues, add GSAP animations, and generate additional pages off the homepage as a base. No new tools, no setup. Just Claude Code and a browser.

Rules for the day

  1. 01Fix static issues BEFORE animations — animating broken layout just hides bugs.
  2. 02Tell Claude to use GSAP explicitly — otherwise it might reach for a different library.
  3. 03Drag in screenshots when describing problems — "this looks weird" + a screenshot beats a paragraph of explanation.
  4. 04Get the whole site to "good enough" first, THEN refine — don't spend a week perfecting one section.
  5. 05Embrace vague prompts when you don't know what you want — "give me a nice hover effect" is a fine starting point.
  6. 06Add new content types to Sanity in the SAME prompt as the new page — so the page and CMS schema are wired up together.

Part 1 — Fix static issues first

  1. 1

    Walk the whole site, desktop first

    Open localhost on desktop. Scroll the homepage top to bottom and write down everything that looks off. Don't fix anything yet — just capture the list. Things to check: blur effects, image scaling, spacing, alignment, overlay opacities.

  2. 2

    Then walk it on mobile

    Open dev tools and switch to a mobile width (or open it on your phone). Same exercise: scroll, note what's broken. Common mobile issues: scroll bars where there should be sliders, content cut off, scaling looks weird, layouts that don't centre properly.

  3. 3

    Take a screenshot of the broken section

    Cmd + Shift + 4 on Mac. Crop tightly to the problem area.

  4. 4

    Drag screenshot into Claude Code and describe the issue plainly

    Don't worry about technical language. "The blur is fading at the bottom but should be strongest at the bottom" works just as well as anything more technical.

  5. 5

    Convert mobile scroll bars into sliders

    Sections like testimonials and services often default to horizontal scroll bars on mobile, which feel broken. Ask Claude to convert them into proper slider experiences.

  6. 6

    Confirm static is solid before moving to animations

    Don't add animation polish on top of a broken layout — you'll just be hiding bugs. Walk through both desktop and mobile one more time and confirm everything looks right at rest.

Part 2 — Add animations with GSAP

  1. 7

    Pick one section to start with

    Don't try to animate everything at once. Start with the nav, since it's the highest-impact and most visible.

  2. 8

    Tell Claude exactly which library to use

    If you don't say GSAP, Claude might reach for Framer Motion, Anime.js, or CSS-only animations. Specify GSAP up front.

  3. 9

    If you don't have a specific idea, say so

    Vague is fine. "Give me a nice hover effect" lets Claude propose something. If you like it, keep it. If not, ask for something else.

  4. 10

    Use 'all clear' when you're unsure your prompt makes sense

    Just paste "all clear" at the end. Claude does a sanity check on whether it actually understood what you described before building anything.

  5. 11

    Review on desktop AND mobile after each change

    Animations can break differently on different screens. Always test both before moving on.

  6. 12

    Iterate with specific feedback

    Examples: "the button hover effect is boring, do something else", "if I quickly hover off the button it goes all white", "I want 15 pixels more space between Specter and the paragraph below". Specific issues = specific fixes.

Animation ideas covered in Day 4

  1. 18

    Hero — split parallax

    On scroll, the word "Harvey" drifts left, "Specter" drifts right. The "Hello, I'm" label follows Harvey but slightly slower. Background image grows. Creates a really dynamic hero.

  2. 19

    Mission statement — GSAP scrubbing text fill

    Text fills in colour as you scroll, locked to scroll progress (scrubbing). Premium-feeling effect with very little code.

  3. 20

    Quote box — drift left on scroll (desktop only)

    Box parallaxes off to the left as you scroll past it. Disabled on mobile to avoid breaking the layout.

  4. 21

    Image — blur to clarity on scroll

    Image starts blurry, sharpens to fully clear by the time you're scrolled about 50% past it. Subtle but adds depth.

  5. 22

    Deliverables — line-grow + text-move on hover

    Each row has a thin grey line that grows wider on hover, while the deliverable name shifts slightly.

  6. 23

    Selected work — card hover effect

    Project cards lift or shift on hover. Tells the user the card is interactive.

  7. 24

    Testimonials — parallax drift

    Testimonial cards drift slightly as you scroll past them, adding rhythm to the section.

Part 3 — Build out additional pages

  1. 26

    About page — one prompt

    Once the homepage exists, Claude knows the design language: fonts, spacing, animation patterns, classes. Generating new pages becomes dramatically faster.

  2. 27

    Review what comes back, decide whether to refine

    If it's good enough, move on. If not, list specific issues. Either is valid — don't get stuck perfecting one page when others don't exist yet.

  3. 28

    Services page — same pattern

  4. 29

    Projects page — explicit Sanity instruction

    When the page should pull from CMS, say so up front.

  5. 30

    Bundle several pages + features in one prompt

    Once Claude clearly knows what it's doing, bundle requests. Saves tokens and keeps the design consistent.

  6. 31

    Refine one round per page, then stop

    It's better to have all pages at 80% than one page at 100%. Get the whole site to a good baseline, then circle back to polish.

  7. 32

    Adjust shared animations per page if needed

    Example: the sticky-reveal footer doesn't work as well on a black-background projects page. Tell Claude to swap it for something else on that specific page.

Part 4 — Wire pages to Sanity

  1. 33

    Add the schema in the same prompt as the page

    When asking Claude to build a new page that pulls from the CMS, ask for the schema in the same breath. Saves a round trip.

  2. 34

    For demos: let Claude make up a sensible schema

    If you don't have specific field requirements, Claude will infer reasonable ones (title, slug, image, body, date, etc.). Refine afterwards if needed.

  3. 35

    For real client work: specify the fields up front

    If the client has specific fields they need (price, SKU, category, related products), list them in the prompt. Avoids re-doing the schema later.

  4. 36

    Reorder fields and add descriptions in Sanity Studio

    You don't need to manually create fields anymore — but you can still tweak ordering and add helper text directly in the studio interface (or ask Claude to).

  5. 37

    Refresh /studio after each schema change

    Sanity Studio picks up new schemas on save. Refresh localhost:3000/studio to see the new content type appear.

Part 5 — Hook up the contact form

  1. 38

    Claude builds the form, but it can't process submissions

    A form needs a backend handler to actually deliver emails. Claude generates the markup; you bring the handler.

  2. 39

    Use Formspark for form handling

    Julian's pick. One-time $25 payment for 50,000 submissions, no subscription. Better bot protection than the Webflow default. Site: formspark.io

  3. 40

    Sign up at formspark.io and create a form

    Formspark gives you a unique URL for that form.

  4. 41

    Give Claude the URL and ask it to wire it up

  5. 42

    Test by submitting the form on your live site

    Submissions arrive in your Formspark dashboard and to your email.

Part 6 — Push everything live

  1. 43

    Push everything to main

    For brand new projects with no users, push direct to main is fine. GitHub history is your safety net.

  2. 44

    Vercel auto-deploys

    Open Vercel → Deployments. You'll see a new build kick off in a minute or two.

  3. 45

    Test the live site

    Visit your live URL. Walk through each page. Check the animations work, the CMS pulls correctly, and the form submits (if you wired up Formspark).

  4. 46

    Verify Sanity Studio works on the live domain

    Visit yoursite.vercel.app/studio. If you haven't registered the studio host yet, do that now — see Day 3 troubleshooting.

Useful tips from Day 4

  1. 47

    Embrace vague prompts when you're unsure what you want

    Sometimes the best workflow is "make this section feel more dynamic" and seeing what comes back. You can always refine. Specificity isn't a virtue when you don't have an opinion yet.

  2. 48

    AI design quality depends on what you start from

    Generic AI websites look generic because the prompt was generic. Starting from a custom-designed homepage means the AI has a real design language to extend across new pages — that's why the about/services/news pages look intentional rather than templated.

  3. 49

    Use 'all clear' before complex prompts

    Adding "all clear" at the end of a long prompt tells Claude to verify it understood the request before building. Catches misunderstandings early.

  4. 50

    Time-box refinement

    You can spend a week perfecting one page. Don't. Get the site to 80% across all pages, ship it, then refine based on feedback. Most clients can't tell the difference between 80% and 95% anyway — they care that it exists and works.

  5. 51

    Speed isn't the goal — using your hours well is

    If a client paid for 10 hours, use the 10 hours. Just don't spend them on the wrong things. Faster generation means more time for craft (animations, refinement, copy) instead of fighting with code.

  6. 52

    Vibe-design from scratch is also valid

    You don't HAVE to start from a Figma. If you're confident, you can describe the vision in prose and let Claude propose. Figma is a better starting point for client work; vibe-design is great for personal/experimental projects.

Troubleshooting

Common errors and what they actually mean.

  • Claude reached for the wrong animation library
    What:
    If you don't specify GSAP, it might use Framer Motion, Anime.js, or CSS keyframes.
    Fix:
    Always say "use GSAP" in the prompt. If it's already used a different library, tell it: convert these animations to use GSAP instead.
  • Mobile turns into an ugly horizontal scroll bar
    What:
    Sections like testimonials and services default to overflow-x: scroll on mobile.
    Fix:
    Tell Claude: "Convert this section to a proper slider on mobile, not a scroll bar." Specify that all items should be visible and tops shouldn't be cut off.
  • Hover effect causes white flash when cursor leaves quickly
    What:
    Animation transition isn't handling fast mouse-out events.
    Fix:
    Drag in a screenshot of the issue and describe what's happening. Example: "If I quickly hover over a button and exit it, the text goes all white." Claude will add the missing transition state.
  • New page doesn't match homepage style closely enough
    What:
    Sometimes the first generation is generic.
    Fix:
    Be more specific. Tell Claude exactly which homepage patterns to reuse: "Use the same scrubbing text effect from the mission statement, the same parallax blur, and the same hover effect on cards."
  • CMS data isn't appearing on the new page
    What:
    Page was built but isn't actually pulling from Sanity.
    Fix:
    Tell Claude: "This page should pull [content type] from Sanity. Make sure the schema exists and the page is fetching it." Verify the schema appears in /studio.
  • Contact form doesn't send emails
    What:
    Claude can build the form markup but can't process submissions.
    Fix:
    Sign up at formspark.io ($25 one-time). Get the form URL. Tell Claude: "Connect the contact form to this Formspark URL: [paste URL]."
  • Animations feel jittery or laggy
    What:
    Too many animations firing at the same scroll position, or unoptimised transforms.
    Fix:
    Tell Claude: "The animations are jittery on scroll. Optimise the GSAP setup — use will-change where appropriate and make sure transforms are GPU-accelerated."