A Chrome Extension (Manifest V3) built with React + TypeScript that tracks browsing time and captures user highlights using the Chrome Extensions API.
This project demonstrates:
- Manifest V3 architecture
- Background service workers
- Content scripts
- chrome.storage.local usage
- React-based popup UI
- Type-safe state management
- Track time spent per page
- Save selected text via context menu
- Persistent local storage (no backend)
- Search through saved entries
- Toggle tracking on/off
- Clear stored memory
- React
- TypeScript
- Vite
- Chrome Extensions API (Manifest V3)
- chrome.storage.local
- background.ts → Handles tab events + time tracking
- content.ts → Captures selected text
- popup/ → React UI
- storage.ts → Storage abstraction layer
- Clone repository
- Install dependencies: npm install
- Build: npm run build
- Open Chrome → chrome://extensions
- Enable Developer Mode
- Load unpacked → select dist/
- Managing state between popup, background, and content scripts
- Handling Chrome lifecycle events
- Preventing popup resize collapse
- Structuring scalable extension architecture
- IndexedDB for larger data
- Smarter highlight anchoring
- Unit tests for storage layer