Danilo Alessandro Vinciprova

Danilo Alessandro Vinciprova

AI-Assisted Web Developer · React · Next.js · Claude Code

I learned to think of building as parts that must fit together.

Project 03 / 06 · website

CURATA

A prototype boutique of Amazon UK finds, curated by the character Cura. It is a prototype, not a live shop.

PrototypeNext.js, Tailwind CSS, Framer Motion

Overview

Screenshots

Evidence tier: Existing evidence

CURATA: screenshot of the home page, desktop (1440 px).
CURATA: screenshot of the home page, mobile (375 px).
Desktop 1440 × 900 and mobile 375 × 812, captured 29 September 2026 from project running locally (not online).
See proof
  1. Claim

    CURATA: a prototype boutique of Amazon UK finds, curated by the character Cura. It is a prototype, not a live shop.

    Stated by Danilo

  2. Evidence

  3. Result

    Real screenshots of the page, taken from the running project on 29/09/2026. That Danilo built it is his statement.

On this page

  1. 02 In action: a screen recording of the prototype running
  2. 03 Code: excerpts of the home page source

Not on this page

  • A 3D view: the prototype’s current source renders no 3D scene, so there is nothing real to record.
  • Measured: this prototype runs only on a local development server, and scores taken there would not be representative.

In action

The home page, then the six “rooms”: each card plays its own short video while the pointer is over it.

Screen recording

Evidence tier: Existing evidence

Screen recording of the CURATA prototype running (13 s, no sound). Recorded on 29/09/2026 with Playwright from the project running locally: the home page, then the room cards playing their own videos on hover.

Code

The six rooms are data; the page maps each one to a card whose video plays while the pointer is over it, and rewinds when it leaves.

src/app/page.tsx lines 76–84

Raw text of src/app/page.tsx, lines 76–84
/* ─── Data ────────────────────────────────────────────────────── */
const CATEGORIES: Category[] = [
  { id:'tech',     title:'Tech Room',         subtitle:"Boring tech that quietly works.",         href:'/tech-room',     poster:'/images/rooms/tech.jpg',     video:'/videos/rooms/tech.mp4',     count:'6 finds', status:'open' },
  { id:'beauty',   title:'Beauty Edit',       subtitle:"Skincare without the alchemy marketing.", href:'/beauty-room',   poster:'/images/rooms/beauty.jpg',   video:'/videos/rooms/beauty.mp4',   count:'6 finds', status:'open' },
  { id:'kitchen',  title:'Kitchen Lab',       subtitle:"Tools that actually cook, not collect dust.", href:'/kitchen-room', poster:'/images/rooms/kitchen.jpg', video:'/videos/rooms/kitchen.mp4', count:'6 finds', status:'open' },
  { id:'home',     title:'Home Upgrade',      subtitle:"Small flat. Big quietly-clever fixes.",   href:'/home-room',     poster:'/images/rooms/home.jpg',     video:'/videos/rooms/home.mp4',     count:'6 finds', status:'open' },
  { id:'wellness', title:'Wellness Room',     subtitle:"Sleep, recover, breathe. No miracle cures.", href:'/wellness-room', poster:'/images/rooms/wellness.jpg', video:'/videos/rooms/wellness.mp4', count:'6 finds', status:'open' },
  { id:'pet',      title:'Pet Room',          subtitle:"For the small ones who run the house.",   href:'/pet-room',      poster:'/images/rooms/pet.jpg',      video:'/videos/rooms/pet.mp4',      count:'6 finds', status:'open' },
]

Evidence tier: Existing evidence

CURATA source: the six rooms · copied 29 September 2026 · sha256 9a72df962cff…

src/app/page.tsx lines 522–545

Raw text of src/app/page.tsx, lines 522–545
            const isOpen = cat.status === 'open'
            const inner = (
              <motion.div variants={reduce?undefined:FV.fadeUp} className="st-cat-card"
                onMouseEnter={(e) => {
                  const v = e.currentTarget.querySelector('video') as HTMLVideoElement | null
                  v?.play().catch(() => {})
                }}
                onMouseLeave={(e) => {
                  const v = e.currentTarget.querySelector('video') as HTMLVideoElement | null
                  if (v) { v.pause(); v.currentTime = 0 }
                }}
                style={{position:'relative',padding:0,background:P.bg,border:`1px solid ${P.border}`,borderRadius:'14px',display:'flex',flexDirection:'column',cursor:isOpen?'pointer':'default',opacity:isOpen?1:0.7,overflow:'hidden'}}>
                {/* Cinematic visual — poster image + hover video */}
                <div style={{position:'relative',aspectRatio:'16/9',width:'100%',background:P.surf2,overflow:'hidden'}}>
                  {/* eslint-disable-next-line @next/next/no-img-element */}
                  <img src={cat.poster} alt="" loading="lazy" style={{position:'absolute',inset:0,width:'100%',height:'100%',objectFit:'cover',zIndex:1}}/>
                  <video
                    src={cat.video}
                    muted
                    loop
                    playsInline
                    preload="none"
                    aria-hidden
                    style={{position:'absolute',inset:0,width:'100%',height:'100%',objectFit:'cover',zIndex:2}}

Evidence tier: Existing evidence

CURATA source: a room card that plays its video on hover · copied 29 September 2026 · sha256 2a8d72f752dc…