Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/botnadzor/extension/llms.txt

Use this file to discover all available pages before exploring further.

Thank you for your interest in contributing to the Botnadzor Extension! This guide will help you get started with contributing to the project.

Getting Help

If you have questions about the project or need assistance:

Ways to Contribute

Reporting Issues

If you find a bug or want to suggest an improvement:
  1. Check if an issue already exists
  2. If not, create a new issue with:
    • A clear, descriptive title
    • Detailed description of the problem or suggestion
    • Steps to reproduce (for bugs)
    • Expected vs actual behavior
    • Browser version and extension version

Contributing Code

1

Fork and clone the repository

Fork the botnadzor/extension repository and clone it to your local machine.
2

Set up your development environment

Install the required dependencies:Then install project dependencies:
pnpm install
3

Create a feature branch

Create a new branch for your changes:
git checkout -b feature/your-feature-name
4

Make your changes

Make your code changes following the code conventions.Test your changes locally:
pnpm dev:chrome   # For Chrome
pnpm dev:firefox  # For Firefox
The development server will automatically launch a clean browser instance and open a VK test page.
5

Run tests and linting

Before submitting your changes, ensure all checks pass:
pnpm lint       # Run all linters
pnpm test:unit  # Run unit tests
You can automatically fix many issues with:
pnpm fix        # Auto-fix formatting and linting issues
6

Commit your changes

Write clear, descriptive commit messages that explain the “why” behind your changes.
7

Create a pull request

Push your branch and create a pull request:
  • Provide a clear description of your changes
  • Reference any related issues
  • Explain the motivation and context
  • Include screenshots for UI changes

Code Review Process

Once you submit a pull request:
  1. Automated checks will run via GitHub Actions:
    • Build verification (Chrome and Firefox)
    • All linters (ESLint, Prettier, TypeScript, knip, cspell, pnpm dedupe)
    • Unit tests
  2. Manual review by maintainers who will:
    • Review your code for quality and adherence to conventions
    • Test functionality in both Chrome and Firefox
    • Provide feedback or request changes
  3. Iteration: Address any feedback and push additional commits
  4. Merge: Once approved, your PR will be merged into the main branch

Development Workflow

Local Development

The extension supports hot reloading during development:
pnpm dev:chrome   # Chrome with live reload
pnpm dev:firefox  # Firefox with live reload
Build files are available in the dist/ directory and can be manually loaded into your browser if needed.

Building for Production

pnpm build         # Build for both Chrome and Firefox
pnpm build:chrome  # Chrome only
pnpm build:firefox # Firefox only

Available Scripts

See the complete list of scripts in Testing.

Architecture Overview

The Botnadzor Extension is built with:

Entry Points

The extension has three main entry points:
  1. Background (service worker) - Registers services, manages data and configuration
  2. Content script - Modifies DOM on VK pages through the insertion system
  3. Popup - Extension menu with settings, announcements, and statistics
Communication between background and content script/popup uses @webext-core/proxy-service. For detailed architecture information, see AGENTS.md.

License

By contributing, you agree that your contributions will be licensed under the BSD-3-Clause License.

Build docs developers (and LLMs) love