# Mue Project Guidelines for GitHub Copilot ## Project Overview Mue is a fast, open-source browser extension that provides a customizable new tab page for Chrome, Firefox, Edge, and Safari. Built with React and Vite, it emphasizes privacy, performance, and extensibility. ## Technical Stack - **Framework**: React 19 with hooks and functional components - **Build Tool**: Vite with SWC - **Package Manager**: Bun >= 1.3.0 (ALWAYS use Bun, never npm or yarn) - **Styling**: SCSS with component-scoped styles - **Target**: Browser extensions (Manifest V3) - **Testing**: Manual testing across Chrome, Firefox, and Safari ## Code Style & Quality - Follow ESLint configuration in `eslint.config.js` - Run `bun run lint:fix` before committing - Run `bun run pretty` to format code with Prettier - Use conventional commits: `feat:`, `fix:`, `chore:`, `docs:`, etc. - All commits must pass commitlint validation ## File Organization ``` src/ ├── components/ # Reusable UI components (Elements, Form, Layout) ├── features/ # Feature-specific code (background, weather, etc.) ├── utils/ # Utility functions and helpers ├── contexts/ # React Context providers ├── hooks/ # Custom React hooks ├── i18n/ # Internationalization files └── scss/ # Global styles, variables, mixins ``` ## Critical Rules ### 1. Translation Files (IMPORTANT!) - **`en_GB.json` is the base translation file** - Never edit other locale files directly - Workflow: Edit `en_GB.json` → Run `bun run translations` - This ensures consistent formatting across all 30+ locales - Translation files are in `src/i18n/locales/` ### 2. Branch Strategy ``` dev (active development) ↓ beta (release candidates) ↓ main (production/stable) ``` - All PRs target the `dev` branch - Never commit directly to `beta` or `main` - See `CONTRIBUTING.md` for full workflow ### 3. Package Manager - **ALWAYS use Bun**, never npm or yarn - Commands: `bun install`, `bun run