Product case study · Independent product · Chrome Web Store
Chotu Pet
A pixel companion that lives on every page you visit and evolves through five stages based on your browsing — a Manifest V3 Chrome extension.
- Role
- Solo: design, extension, motion
- When
- Live
- Browsing activity
- Evolution rules
- Persisted state
- Page overlay
The problem
A playground for the hard parts of browser extensions: one character whose state has to persist across every tab, rendered on top of pages the extension doesn’t control.
What I did
- Designed and built the extension end to end
- Motion design across WebGL, CSS and spring physics
- Published on the Chrome Web Store
Architecture
- Manifest V3 extension built with CRXJS and Vite, with HMR during development
- Pet state persisted across tabs with Zustand
- Three.js aura, Framer Motion idle physics, CSS Houdini particle effects
- Hybrid audio: Web Audio API plus an MP3 sound pack
- CSS cascade layers and @scope to avoid colliding with host-page styles
Stack
- React 19
- TypeScript
- Chrome MV3
- Three.js
- Zustand
- Web Audio
- Vitest
- Playwright