Selim Ataballyev

Браузерные расширения

Разработка браузерных расширений под ключ

На выходе - опубликованное расширение в каждом сторе: собранное, оформленное, с листингом и автоматическим релизным пайплайном. Не архив с исходниками, к которому магазины прилагаются отдельно.

  • MV3-расширение с ~1M пользователей: поддержка и релизы в четырёх сторах
  • Расширения с нуля до ~50k пользователей суммарно
  • Разбор инцидентов модерации: отклонения и риск бана
Что я выпускал

Что входит

Шесть этапов. Большинство смет закрывает первые два и на этом заканчивается - и именно там проекты встают.

  1. Manifest и архитектура

    MV3 сразу: service worker или event page, границы контент-скриптов, хранилище и набор permissions, урезанный до того, что реально пройдёт ревью.

  2. Одна кодовая база, четыре браузера

    Chrome, Edge, Opera и Firefox из одного дерева исходников: ветки манифеста под каждый браузер и особенности MV3 в Firefox закрыты заранее, а не обнаружены после подачи.

  3. Промо-материалы

    Иконки, скриншоты 1280x800, промо-тайлы 440x280, 920x680 и 1400x560, короткое демо-видео. Каждый стор просит свой набор - отдаю все.

  4. Листинги и политики

    Тексты для сторов, политика конфиденциальности, обоснование permissions и декларации об использовании данных - под то, что расширение реально делает.

  5. Публикация и модерация

    Подача в каждый стор, отслеживание ревью и работа с отклонениями. Отклонённый листинг - часть работы, а не отдельная услуга.

  6. Автоматизация релизов

    GitHub Actions: матрица сборок под браузеры, упаковка и загрузка через API Chrome Web Store, Edge Partner Center и AMO. Версионирование и чейнджлог в комплекте - следующий релиз это один тег.

Все сторы, а не только Chrome

Четыре каталога, четыре набора требований к материалам, четыре очереди модерации.

  • Chrome Web Store

    Самое строгое ревью. Обоснование permissions и политика конфиденциальности обязательны.

  • Edge Add-ons

    Сертификация в Partner Center, свои размеры материалов, более медленный цикл ревью.

  • Firefox Add-ons

    Ручное ревью с подачей исходников для собранных бандлов и MV3, отличающийся от Chromium.

  • Opera Add-ons

    Chromium-пакет, отдельный каталог и своя очередь модерации.

Пакеты

Фиксированный состав и фиксированная точка отсчёта. Объём вашего расширения двигает сумму, поэтому это нижняя граница.

  • Расширение MVP

    Один браузер, одна задача, опубликовано.

    от $900

    от 2 недель

    • Сборка под Chrome на MV3
    • Основная функция без расползания скоупа
    • Иконки, скриншоты и текст листинга
    • Опубликовано и прошло ревью
  • Полный цикл

    Все четыре стора, полный комплект материалов и автоматические релизы.

    от $2400

    от 4 недель

    • Chrome, Edge, Firefox и Opera из одной кодовой базы
    • Полный промо-комплект, включая демо-видео
    • Листинги, политика конфиденциальности, обоснование permissions
    • Публикация и модерация в каждом сторе
    • Автоматизация релизов на GitHub Actions
  • Сопровождение

    Расширение уже живёт и должно продолжать жить.

    от $600 / месяц

    помесячно, отказ в любой момент

    • Обновления и небольшие функции
    • Изменения MV3 и правил сторов
    • Реакция на инциденты модерации
    • Поддержка релизного пайплайна
  • Расширение MVP

    Один браузер, одна задача, опубликовано.

    Запросить смету

    от 2 недель

    • Сборка под Chrome на MV3
    • Основная функция без расползания скоупа
    • Иконки, скриншоты и текст листинга
    • Опубликовано и прошло ревью
  • Полный цикл

    Все четыре стора, полный комплект материалов и автоматические релизы.

    Запросить смету

    от 4 недель

    • Chrome, Edge, Firefox и Opera из одной кодовой базы
    • Полный промо-комплект, включая демо-видео
    • Листинги, политика конфиденциальности, обоснование permissions
    • Публикация и модерация в каждом сторе
    • Автоматизация релизов на GitHub Actions
  • Сопровождение

    Расширение уже живёт и должно продолжать жить.

    Запросить смету

    помесячно, отказ в любой момент

    • Обновления и небольшие функции
    • Изменения MV3 и правил сторов
    • Реакция на инциденты модерации
    • Поддержка релизного пайплайна

Кто это делает

Selim Ataballyev

Fullstack-разработчик

Расширения я делаю сам. Без агентской прослойки и без передачи джуну - вы общаетесь с тем, кто пишет манифест, режет материалы для сторов и отвечает на письмо об отклонении. Почти всё, что описано на этой странице, я проходил и на своих расширениях, поэтому знаю, где процесс ломается.

Опыт

Расширения, которые я выпустил и продолжал поддерживать, а не список технологий.

  • Легаси MV3 на ~1M пользователей

    Возрастное расширение с большой базой установок и релизным процессом, размазанным по четырём сторам, у каждого своя очередь ревью.

    Вёл кодовую базу MV3 и мультистор-релиз, включая инциденты модерации, где листингу грозило отклонение или бан.

    База установок пережила все релизы и изменения правил без потерь.

  • Расширения с нуля

    Сегменты рынка, до которых существующий продукт не дотягивался.

    Собирал и выпускал расширения с нуля, каждое со своим листингом, материалами и подачами в сторы.

    ~50k пользователей суммарно.

  • Собственные продукты

    Всё выше было внутри компании. Эти - мои, от начала до конца.

    Несколько собственных расширений - написаны, опубликованы и поддерживаются в одиночку, от первого коммита до листинга в сторе.

    Каждый этап с этой страницы я прохожу на собственных релизах.

Вопросы

Сколько идёт ревью в сторах?

Chrome обычно несколько дней, Edge и Opera могут дольше, в Firefox расширение смотрит человек. Закладывайте одну-две недели на все четыре и больше на первую подачу с широкими permissions.

Что если расширение отклонят?

Разбираюсь я. Отклонения - это норма, чаще всего из-за permissions или невнятной декларации о данных, и доработка подачи до прохождения входит в пакет, а не идёт как отдельный запрос.

Чьи аккаунты разработчика и кому принадлежит код?

Ваши. Расширение публикуется под вашими аккаунтами в сторах, код ваш с первого коммита. Если аккаунтов ещё нет - заводим вместе.

Можете перевести существующее расширение с MV2?

Да. Это переписывание фонового слоя, модели permissions и обычно контент-скриптов. Оцениваю отдельным проектом после чтения текущего кода.

Что происходит после релиза?

Правила сторов и API браузеров меняются, поэтому брошенное расширение рано или поздно ломается. Пакет сопровождения закрывает обновления, изменения правил и инциденты модерации; без него у вас остаётся релизный пайплайн, который можно гонять самим.

Делаете расширения для Safari?

По запросу. Safari - это обёртка в Xcode и ревью в App Store, процесс отличается от четырёх браузеров выше, поэтому считается отдельно.

Есть расширение, которое нужно сделать?

Расскажите, что оно должно делать и какие браузеры важны. В ответ - состав работ, сумма и сроки, без вводного созвона.

Или напишите в Telegram