Web App
Vite-powered React application running on port 4000
Browser Extension
Plasmo-based extension supporting Chrome, Firefox, Edge, and Safari
Web App
The web application is a progressive web app (PWA) built with Vite and React, providing a fast and modern development experience.Configuration
Package Details
Package Details
apps/web/package.jsonDevelopment
Tech Stack
Build Tool & Framework
Build Tool & Framework
- Vite (v5.4.11) - Fast build tool and dev server
- React (v18.3.1) - UI framework
- @vitejs/plugin-react-swc - Fast refresh with SWC compiler
- TypeScript (v5.3.3) - Type safety
Routing & State Management
Routing & State Management
- react-router-dom (v6.16.0) - Client-side routing
- Zustand (v5) - Lightweight state management
- use-sync-external-store - State synchronization
Data & Forms
Data & Forms
- Dexie (v4.0.9) - IndexedDB wrapper for local storage
- react-hook-form (v7.47.0) - Form management
- @hookform/resolvers (v3.3.2) - Form validation
- Zod (v3.22.4) - Schema validation
- Axios (v1.5.0) - HTTP client
UI & Animation
UI & Animation
- Framer Motion (v11.11.9) - Animation library
- GSAP (v3.12.2) - Advanced animations
- Lucide React (v0.454.0) - Icon library
- Recharts (v2.13.0) - Chart components
- Sonner (v1.5.0) - Toast notifications
- next-themes (v0.3.0) - Theme management
Utilities
Utilities
- date-fns (v4.1.0) - Date manipulation
- date-fns-tz (v3.2.0) - Timezone support
- i18next (v23.10.1) - Internationalization
- react-i18next (v15.1.4) - React i18n bindings
- clsx & tailwind-merge - Class name utilities
PWA Features
The web app includes Progressive Web App capabilities:vite.config.ts
The web app uses vite-plugin-pwa (v0.20.5) to generate service workers and enable offline functionality.
Testing
Shared Dependencies
The web app consumes these workspace packages:@repo/shared- Core business logic and components@repo/ui- shadcn/ui component library@repo/eslint-config- Linting rules@repo/prettier-config- Code formatting@repo/tailwind-config- Tailwind configuration@repo/typescript-config- TypeScript settings
Extension App
The browser extension is built with Plasmo, a framework specifically designed for building browser extensions with modern web technologies.Configuration
Package Details
Package Details
apps/extension/package.jsonDevelopment
Browser Support
The extension supports multiple browsers with dedicated build targets:Chrome
Manifest V3
Firefox
Manifest V3
Edge
Manifest V3
Opera
Manifest V3
Safari
Manifest V3
Brave
Manifest V3
Manifest Configuration
Permissions
Permissions
Host Permissions
Host Permissions
Web Accessible Resources
Web Accessible Resources
Action
Action
Extension-Specific Dependencies
In addition to shared dependencies with the web app:@plasmohq/storage provides a unified storage API that works across different browser extension APIs.
Packaging
Create distributable packages for each browser:Shared Code
Both the web app and extension share the same workspace packages:@repo/shared- Business logic, stores, hooks, and components@repo/ui- UI component library- All configuration packages (eslint, prettier, tailwind, typescript)
File Structure
Next Steps
Shared Packages
Learn about the shared packages both apps depend on
Development Setup
Set up your local development environment