KOMPOSE.
All resources
WebsiteClaudeGemini

Steal This Portfolio's Structure (Prompt Included)

The problem it solves

Most portfolios look the same, here's one that doesn't, plus the base prompt to build your own.

The prompt to copy

Optimized withClaudeGemini
Build a single-viewport personal portfolio hero using React, TypeScript, Vite, and Tailwind CSS. Dark navy background (#0a0e2a or similar deep blue). The whole page is one fixed-height hero with no scroll required to see the full effect.

**Top bar:**
- Left: site mark (your name/brand), small, uppercase, plus a two-line tagline underneath (e.g. "Design & Engineering" style two-word category label).
- Right: a text nav row with 2 plain links ("Work", "Contact") followed by 2 bracketed toggle-style controls, e.g. "Theme[A]" and "Sound[ ]" that visually read as live switches (use a real onClick toggle for at least one, even if it just flips a CSS class).

**Left rail:**
- A thin vertical strip pinned to the left edge of the viewport containing a small badge/logo and a label rotated -90deg (CSS `transform: rotate(-90deg)`), styled like an awards/credibility tag.

**Hero centerpiece:**
- A large 3D-styled word (your name or a greeting) rendered with a glossy, inflated "tube" look. If you don't have a WebGL/Three.js setup handy, approximate this with a bold cursive/script font, heavy layered text-shadow or SVG gradient fill plus a subtle CSS `filter: drop-shadow(...)`, and a slow `transform: rotate()` keyframe animation for the wobble.
- Scatter 3-4 small decorative badge/sticker images or emoji-style icons around the centerpiece at different positions and z-indexes, each with a slow independent `translateY` float animation (different durations, e.g. 3s/4s/5s) for a parallax feel.
- Layer a faint grid of small "+" tick marks across the background (repeating CSS background pattern or absolutely positioned spans), opacity ~10-15%.

**Bottom HUD bar:**
- Bottom-left: a live-updating text readout combining a timezone/location string and a temperature or similar live number (fake data is fine, just make it look live with a `setInterval` tick).
- Bottom-center: live cursor coordinates that update via a `mousemove` listener, formatted like "0759 X 0347 Y".
- Bottom-right: a small icon (globe or similar).

**Headline:**
- A large, bold, multi-line personal claim/statement in white, positioned beside or below the centerpiece (e.g. 3 short punchy lines, `text-4xl md:text-6xl font-bold leading-tight`).

**Optional hover-reveal state (do this if you want the "wow" moment):**
- On hover/click of the hero area, swap the background to pure black, fade in a portrait photo and a short bio paragraph with 2-3 underlined inline links (past work/projects), and animate in a small signature-style cursive logo mark in an accent color (e.g. green) at the top-left. Use a simple React state toggle plus CSS transitions, no need for a real backend.

Tech stack: React + TypeScript + Vite, Tailwind CSS, plain CSS keyframes for the float/wobble animations (no Three.js required unless you want to go further). Everything happens in one viewport, no scroll needed.

This is the structure behind a personal portfolio that genuinely stands out: a 3D balloon-styled centerpiece word, a quiet HUD strip (live time, live cursor coordinates), and a hover state that reveals a portrait and bio without ever leaving the screen. Everything that matters fits in one viewport, exactly the kind of immediate « wow » that hooks a visitor before the first scroll.

What’s worth stealing

  • A 3D tube/balloon centerpiece word instead of a flat headline instantly reads as more technical and more expensive.
  • A persistent live HUD strip (time, temperature, coordinates), cheap to build, disproportionately effective at signaling « this person builds real interactive things. »
  • A hover state on the hero itself rather than a second section to scroll to, keeps the « wow » contained to one screen.

The prompt below is deliberately generic: structure and technique, not anyone’s actual personal content. Swap in your own name, claim, and links.

Related resources

All resources
WebsiteClaude

How the Lando Norris, Charles Leclerc and Oscar Piastri sites are built

F1 driver sites (landonorris.com, charlesleclerc.com, oscarpiastri.com) look like an unreachable budget, yet none of the three uses 3D: it is all Lenis, GSAP ScrollTrigger, masked line-by-line text reveals and well encoded full-bleed video. The real blocker is that a single prompt cannot produce this kind of site, because the systems depend on each other (scroll engine before any animation, preloader before the hero, consecutive pins in one sequence). This breaks down what actually runs on all three, then splits the build into 10 steps with a ready-to-paste prompt for each.

›_You are my build partner for a cinematic athlete / driver one-page site in the style of la
Open the sheet
WebsiteClaude

Build an Apple-style product page from A to Z (the code teardown)

Apple product pages look out of reach, yet they rest on five stackable layers that are all reproducible. This resource opens the production JavaScript bundles of iPhone 17 Pro, AirPods Pro and MacBook Pro, shows what each one actually does (hand written GLSL shaders, HLS video scrubbing, a CSS driven keyframe engine), then gives the build order and the full prompt.

›_You are building an Apple-style product page: a long scroll where the visuals are driven b
Open the sheet
WebsiteClaude

Building genuinely high-end scroll animations

Smooth scroll dropped in with three lines gives you a sluggish site that judders on pinned sections and turns annoying on mobile. Studio-grade scrolling is four distinct layers, each tuned separately: inertia, reveal, pinning, scrubbing. This guide covers all four, with the code, the values that actually work, and a teardown of three sites that get them right.

›_# Scroll motion layer: build spec # Portable: save it as CLAUDE.md (Claude Code) or AGENTS
Open the sheet
Take action

Want us to build the site?

These resources set the tone. We can deliver the full site, fast and built to convert.

Book a callAbout us