- WebExtension which adds an option to the context menu to search with an image on various services
# Reverse Image Search WebExtension
## Overview
- WebExtension which adds an option to the context menu to search with an image on various services
- Code is written in TypeScript
- UI is built with Svelte 4
- Linted with Biome
- Tested with Vitest
- Built with web-ext
## Source code structure
- `source/`: Source code
- `service-worker/`: Service worker code
- `options/`: Options page
- `components/`: Svelte components
- `stores/`: Svelte stores
- `App.svelte`: Main Svelte component
- `options.scss`: Stylesheet
- `options.ts`: For initialization of Svelte
- `public/`: Built code
- `build/`: Built JavaScript and CSS
- `_locales/`: Localizations
- `manifest.json`: Manifest
- `icons/`: Icons
## Build
Build with `npm run build`. Never run the `start:BROWSER` commands, the user will do it manually. Lint with the `npm run lint:types` for TypeScript and `npm run lint:code` for Biome. Do not use `npm run dev` as it will start a long running watch commands - just use `npm run build`.
## Important to note
For every string, add the localization to `public/_locales/LOCALE/messages.json` and use the `getMessage` function to retrieve it. Do not hardcode any strings in the code. Translate the strings in all languages. For German, use the informal (Du) version.
Only add tests for core code and when neccessary. Do not test Svelte components.
Comprehensive .cursorrules file for Next.js 15 App Router projects with TypeScript, enforcing server components by default, proper use of "use client" directive, and App Router conventions.
Cursor rules for Python FastAPI projects enforcing async patterns, Pydantic v2 models, dependency injection, and proper error handling.
Rules for consistent React component development with TypeScript interfaces, proper hook patterns, and component composition.
Rules optimizing Cursor Agent mode behavior including multi-file editing context, session management, and autonomous task completion patterns.
Cursor rules for projects using Tailwind CSS with shadcn/ui component library, enforcing consistent utility class usage and component patterns.
Rules for Go backend services enforcing idiomatic Go patterns, proper error handling, and clean architecture conventions.