I design and build maintainable, UX-focused web systems with a strong emphasis on architecture, performance, and interaction design.
🔗 Live Site: https://hanseo.tech
💼 LinkedIn: https://linkedin.com/in/hanseooo
🐙 GitHub: https://github.com/Hanseooo
- Horizontal scroll storytelling built with GSAP ScrollTrigger
- Gesture-based navigation (drag + scroll hybrid)
- Desktop-first interaction patterns with mobile-safe fallbacks
- Clean separation between animation logic and UI structure
- UX-driven decisions for performance, clarity, and accessibility
- React + TypeScript
- GSAP (ScrollTrigger)
- Framer Motion
- Tailwind CSS
- shadcn/ui
- Component-driven design
- Runtime environment detection (desktop, mobile, in-app browsers)
- Progressive enhancement for complex interactions
- Desktop and Mobile uses pinned horizontal scrolling for narrative flow
- Mobile in Webview browsers avoid scroll hijacking in favor of native vertical behavior
- Optional Drag Gesture for Desktop for horizontal scroll
- Animations are selectively disabled in WebViews for stability
- ScrollTrigger instances are scoped and reverted to avoid side effects
npm install
npm run devIf you plan to enable the Live Activity section, copy .env.example to .env.local and set the values.
Required:
GITHUB_TOKENGITHUB_USERNAMESPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REFRESH_TOKENDISCORD_USER_ID
Optional tuning:
ACTIVITY_GITHUB_REVALIDATE_SECONDSACTIVITY_SPOTIFY_REVALIDATE_SECONDSACTIVITY_DISCORD_REVALIDATE_SECONDS
