Никита Митусов Обсудить задачу

Расширение, у которого сегодня 50 000 пользователей. Я написал основу и большую переработку, дальше заказчик развивает его сам.

Это окно работает. Впишите домен в адресную строку или выберите:

Block Websites

Простой с виду переключатель

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

ЗаблокировалиРазблокировали
Из настроек
С кнопки
На этой вкладке
На остальных
По сайту
По слову
Из настроек
С кнопки

Нажмите на клетку. Красным в начале горят участки, где заказчик находил сбой. Матрица собрана по переписке, точный перечень клеток не сохранился.

Перезагрузка, которой никто не видел

Заказчик показал: у других расширений список меняется сразу. У меня локальное хранилище подтягивалось только с загрузкой страницы. Как это обходят, я не знал. Потом при разбане случайно заметил: они просто обновляют страницу. Заказчик не поверил, рефреша он не видел. Настолько он быстрый.

Январская переработка: оценка неделя, приняли через 2 дня. Новый интерфейс, блокировка по сайту и по словам, пароль, синхронизация попапа и настроек.

Настройки расширения

Заблокированные сайты

  • reddit.com
Скорость

Заблокировал YouTube, а упал чужой блог

В блог встроен ролик. Расширение гасило всю страницу. То же в AdSense после входа. Правка уместилась в одном файле, background.js.

Пять разрешений, два отказа

Модерацию Chrome Web Store проходил заказчик. Первый отказ на мне: забыл убрать лишнее разрешение. Про второе я сказал, что без него расширение не заработает. Заказчик проверил: работает. Мой прогноз не сбылся, зато разрешений осталось три, и Google одобрил.

manifest.jsonConsoleNetwork
"permissions": [
  "storage",
  "declarativeNetRequest",
  "activeTab",
  "tabs",
  "webNavigation"
]

Отказ 14 марта

Отказ 17 марта

Одобрено 19 марта

Второе расширение: 90 дней и столбцы

Quick Chrome History Export мой целиком: CSV, JSON и XLSX, выбор периода, режим forever. Сегодня у него 10 000 пользователей, это тоже цифра продукта заказчика.

Chrome хранит историю 90 дней. Сначала я поставил отсечку на 3 месяца, потом заказчик заметил, что лучше startTime: 0: начнёт Chrome хранить дольше, расширение подхватит само.

В Numbers на Mac файл выглядел иначе, чем в Excel. Mac у меня нет, поэтому сравнил скриншоты: в CSV стилей нет вообще, это работа самой программы.

orderiddatetimetitleurlvisitCounttypedCounttransition
Карточка расширения в Chrome Web Store: 50 000 пользователей и рейтинг 4,9

50 000

пользователей и 4,9 из 153 оценок у продукта заказчика на 2 ноября 2026. Это его цифры, не мои: последнюю правку я сдал в марте 2025, дальше заказчик развивает продукт сам. На снимке нынешняя версия, в ней много того, что я не делал.

  1. Май 2024Универсальный обработчик, сдан в ту же ночь
  2. Июль 2024Второе расширение целиком
  3. Январь 2025Большая переработка
  4. Март 2025Реалтайм, слово и сайт, кнопка, вкладки, плеер

4 захода, 15 подробных видео с багами от заказчика и 23 передачи сборок. Десять месяцев по календарю, но это короткие заходы с паузами.

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

Заказчик, июль 2025. Пересказ из переписки.

Что я вынес

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

Что я делал
Писал код блокировщика и второе расширение для экспорта истории целиком, сделал большую переработку в январе 2025, закрывал баги по видео заказчика
Кто ещё работал
Заказчик вёл продукт: публикация, модерация, тестирование, часть правок. Всё развитие после марта 2025 его
Когда
май 2024 – март 2025
Инструменты
JavaScript, расширения Chrome, локальное хранилище

Нужно похожее? Доработка и поддержка: от 3 000 ₽