Введение

Addfox — это фреймворк для разработки браузерных расширений на базе Rsbuild, который помогает вам разрабатывать и собирать расширения для Chrome и Firefox в рамках одного проекта.

Обзор архитектуры Addfox

Почему стоит выбрать Addfox

Разработка браузерных расширений должна быть простой — нужны лишь веб-технологии: HTML, JavaScript, CSS. Но на практике разработчиков постоянно беспокоят проблемы с hot reload, отладкой ошибок, интеграцией фронтенд-фреймворков и т.д.

Цель Addfox — вернуть разработке расширений её простоту:

В эпоху AI Addfox идёт ещё дальше, позволяя AI лучше понимать и помогать в разработке ваших расширений:

  • AI-ориентированная структура проекта — автоматическая генерация структурированной документации llms.txt, meta.md и др., позволяющая AI-ассистентам быстро понимать архитектуру и конфигурацию проекта
  • Вывод ошибок в терминал — ошибки при разработке выводятся прямо в терминал, без необходимости открывать DevTools браузера, что удобно для использования функции Ask AI в любом редакторе
  • Поддержка Skills — встроенная библиотека переиспользуемых AI-навыков (таких как migrate-to-addfox, addfox-debugging и др.), позволяющая AI-ассистентам более профессионально помогать в разработке и отладке
  • Минимальные ограничения кода — не навязывает определённый способ организации кода, код, сгенерированный AI, может бесшовно интегрироваться в проект

Независимо от того, являетесь ли вы разработчиком или используете AI-помощь при разработке, Addfox обеспечивает лучший опыт.

Функциональные возможности

Для разработчиков

Hot reload, поддержка множества браузеров и минимальная конфигурация помогут вам быстрее выпускать расширения.

ФункцияОписание
Молниеносный HMRИспользование независимого Reloader для управления обновлениями расширения, content_script и background поддерживают молниеносный HMR
Всесторонняя поддержка браузеровПоддержка популярных браузеров на базе Chromium и Firefox, автоматическое определение пути установки браузера по умолчанию и запуск без необходимости конфигурации
Независимость от фреймворкаМожно использовать Vanilla, а также Vue, React, Preact, Svelte, Solid и другие фреймворки
Поддержка Content UIПредоставляет встроенный метод createContentUI для лёгкой интеграции Iframe, ShadowDom и нативного контента
Экосистема RstackВстроенная поддержка Rsdoctor и Rstest для быстрого анализа сборки и юнит-, e2e-тестирования
Поддержка Zip-выводаАвтоматический вывод zip-архива расширения при сборке для удобства установки и распространения

Для AI

Структурированные meta-данные, вывод ошибок в терминал и Skills позволяют AI понимать и расширять ваши расширения.

ФункцияОписание
llms.txt и markdown метаинформацияПредоставление чёткой информации о плагине, сообщений об ошибках и prompts для разработки AI agent
AI-ориентированный мониторинг ошибокВключение вывода ошибок в терминал при использовании --debug, позволяющее получать все сообщения об ошибках плагина без необходимости работы в браузере, удобно для прямого использования Ask AI в любом Editor
Поддержка SkillsРасширяемые Skills с поддержкой Agent и автоматизации

Ключевые концепции

Addfox инкапсулирует распространённые проблемы разработки расширений:

  • Автообнаружение Entry — просто разместите файлы по соглашению, без необходимости ручной настройки entry
  • Интеллектуальная обработка Manifest — автоматическая инъекция путей после сборки
  • Автоперезагрузка при разработке — WebSocket отслеживает завершение сборки и автоматически обновляет расширение

Сравнение с другими решениями

Экосистема разработки браузерных расширений обогатилась благодаря этим отличным фреймворкам. WXT принёс мощную производительность Vite и тщательно спроектированную систему плагинов, а также интуитивный конвенциональный опыт разработки. Plasmo предоставляет комплексную интеграцию облачных сервисов и отличный опыт разработки из коробки. Extension.js известен своей простотой и удобством, идеально подходя для быстрого прототипирования. Каждый фреймворк внёс важный вклад в снижение порога входа в разработку расширений.

Addfox, опираясь на эти лучшие практики, идёт своим путём:

РешениеСборщикОпыт разработкиГибкость
Ручная настройка Webpack/ViteСамостоятельная конфигурацияТребуется ручная обработка HMRПолный контроль
PlasmoParcelРаботает из коробкиОснован на конвенциях, включает облачные сервисы
WXTViteРаботает из коробкиОснован на конвенциях, богатая экосистема плагинов
AddfoxRsbuildРаботает из коробкиМинимальные конвенции + AI-нативность

Уникальные преимущества Addfox:

  • Экстремальная скорость Rsbuild — по сравнению с решениями на Vite/Parcel, более быстрый cold start и hot reload
  • AI-first дизайн — встроенные llms.txt, структурированный вывод ошибок и поддержка Skills, созданные специально для AI-помощи в разработке
  • Максимальная свобода — не навязывает структуру файлов, нет пользовательских API, используйте любимый способ организации кода
  • По-настоящему независим от фреймворка — не требует обёрток компонентов или специальных адаптеров, бесшовная работа с любым UI-фреймворком

Быстрый старт

# Создание проекта с помощью scaffolding
pnpm create addfox-app

# Переход в директорию проекта
cd my-extension

# Запуск dev-сервера
pnpm dev

Отредактируйте файл app/popup/index.tsx, сохраните, и расширение автоматически перезагрузится.

Следующие шаги