Skip to content
Ankit Raminwar
All work

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
Links
Chrome Web StoreSource
  1. Browsing activity
  2. Evolution rules
  3. Persisted state
  4. Page overlay
System flow

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
Esc
↑↓ navigate↵ open