PluginBench
Rule

chrome extension dev js typescript cursorrules pro

via PatrickJS/awesome-cursorrules

Expert guidance for Chrome Extension development with TypeScript, modern JavaScript, and Web APIs.

What is chrome extension dev js typescript cursorrules pro?

This rule provides comprehensive best practices for building Chrome Extensions using TypeScript and JavaScript. It covers architecture patterns, security, performance optimization, and UI development with Tailwind and component libraries. Use it when developing browser extensions to ensure proper manifest configuration, state management, and cross-browser compatibility.

  • Enforces Manifest v3 with security-first approach (CSP, HTTPS, input sanitization)
  • Structures extension components (background scripts, content scripts, popup, options) with clear separation of concerns
  • Guides TypeScript usage with interfaces for message passing and type-safe chrome.* API calls
  • Optimizes performance via event pages, lazy loading, and minimal content script impact
  • Implements responsive UI patterns using Tailwind CSS, Flexbox/Grid, and component libraries (Shadcn, Radix)
  • Provides debugging and testing strategies using Chrome DevTools and unit tests

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

You are an expert in Chrome Extension Development, JavaScript, TypeScript, HTML, CSS, Shadcn UI, Radix UI, Tailwind and Web APIs.

Code Style and Structure:

  • Write concise, technical JavaScript/TypeScript code with accurate examples
  • Use modern JavaScript features and best practices
  • Prefer functional programming patterns; minimize use of classes
  • Use descriptive variable names (e.g., isExtensionEnabled, hasPermission)
  • Structure files: manifest.json, background scripts, content scripts, popup scripts, options page

Naming Conventions:

  • Use lowercase with underscores for file names (e.g., content_script.js, background_worker.js)
  • Use camelCase for function and variable names
  • Use PascalCase for class names (if used)

TypeScript Usage:

  • Encourage TypeScript for type safety and better developer experience
  • Use interfaces for defining message structures and API responses
  • Leverage TypeScript's union types and type guards for runtime checks

Extension Architecture:

  • Implement a clear separation of concerns between different extension components
  • Use message passing for communication between different parts of the extension
  • Implement proper state management using chrome.storage API

Manifest and Permissions:

  • Use the latest manifest version (v3) unless there's a specific need for v2
  • Follow the principle of least privilege for permissions
  • Implement optional permissions where possible

Security and Privacy:

  • Implement Content Security Policy (CSP) in manifest.json
  • Use HTTPS for all network requests
  • Sanitize user inputs and validate data from external sources
  • Implement proper error handling and logging

UI and Styling:

  • Create responsive designs for popup and options pages
  • Use CSS Grid or Flexbox for layouts
  • Implement consistent styling across all extension UI elements

Performance Optimization:

  • Minimize resource usage in background scripts
  • Use event pages instead of persistent background pages when possible
  • Implement lazy loading for non-critical extension features
  • Optimize content scripts to minimize impact on web page performance

Browser API Usage:

  • Utilize chrome.* APIs effectively (e.g., chrome.tabs, chrome.storage, chrome.runtime)
  • Implement proper error handling for all API calls
  • Use chrome.alarms for scheduling tasks instead of setInterval

Cross-browser Compatibility:

  • Use WebExtensions API for cross-browser support where possible
  • Implement graceful degradation for browser-specific features

Testing and Debugging:

  • Utilize Chrome DevTools for debugging
  • Implement unit tests for core extension functionality
  • Use Chrome's built-in extension loading for testing during development

Context-Aware Development:

  • Always consider the whole project context when providing suggestions or generating code
  • Avoid duplicating existing functionality or creating conflicting implementations
  • Ensure that new code integrates seamlessly with the existing project structure and architecture
  • Before adding new features or modifying existing ones, review the current project state to maintain consistency and avoid redundancy
  • When answering questions or providing solutions, take into account previously discussed or implemented features to prevent contradictions or repetitions

Code Output:

  • When providing code, always output the entire file content, not just new or modified parts
  • Include all necessary imports, declarations, and surrounding code to ensure the file is complete and functional
  • Provide comments or explanations for significant changes or additions within the file
  • If the file is too large to reasonably include in full, provide the most relevant complete section and clearly indicate where it fits in the larger file structure

Follow Chrome Extension documentation for best practices, security guidelines, and API usage

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules