Расширение, у которого сегодня 50 000 пользователей. Я написал основу и большую переработку, дальше заказчик развивает его сам.
Это окно работает. Впишите домен в адресную строку или выберите:
Block Websites
Обычный сайт в этом окне. Он открыт, пока вы его не заблокируете.
Простой с виду переключатель
Сначала я оценил «и слово, и сайт» в час. Потом понял, что надо считать блокировку с двух сторон и пересобирать готовый код. Сказал, что нужен день и раньше среды не получится. Сдал во вторник. Заказчик написал, что с виду всё просто, а нюансов столько. Пересказ из переписки.
Нажмите на клетку. Красным в начале горят участки, где заказчик находил сбой. Матрица собрана по переписке, точный перечень клеток не сохранился.
Перезагрузка, которой никто не видел
Заказчик показал: у других расширений список меняется сразу. У меня локальное хранилище подтягивалось только с загрузкой страницы. Как это обходят, я не знал. Потом при разбане случайно заметил: они просто обновляют страницу. Заказчик не поверил, рефреша он не видел. Настолько он быстрый.
Январская переработка: оценка неделя, приняли через 2 дня. Новый интерфейс, блокировка по сайту и по словам, пароль, синхронизация попапа и настроек.
Заблокированные сайты
- reddit.com
Заблокировал YouTube, а упал чужой блог
В блог встроен ролик. Расширение гасило всю страницу. То же в AdSense после входа. Правка уместилась в одном файле, background.js.
Пять разрешений, два отказа
Модерацию Chrome Web Store проходил заказчик. Первый отказ на мне: забыл убрать лишнее разрешение. Про второе я сказал, что без него расширение не заработает. Заказчик проверил: работает. Мой прогноз не сбылся, зато разрешений осталось три, и Google одобрил.
"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 стилей нет вообще, это работа самой программы.
50 000
пользователей и 4,9 из 153 оценок у продукта заказчика на 2 ноября 2026. Это его цифры, не мои: последнюю правку я сдал в марте 2025, дальше заказчик развивает продукт сам. На снимке нынешняя версия, в ней много того, что я не делал.
- Май 2024Универсальный обработчик, сдан в ту же ночь
- Июль 2024Второе расширение целиком
- Январь 2025Большая переработка
- Март 2025Реалтайм, слово и сайт, кнопка, вкладки, плеер
4 захода, 15 подробных видео с багами от заказчика и 23 передачи сборок. Десять месяцев по календарю, но это короткие заходы с паузами.
Расширения сделаны очень хорошо, баги исправлялись быстро, работой крайне доволен.
Заказчик, июль 2025. Пересказ из переписки.
Что я вынес
Дважды заказчик проверял старую сборку: архивы ходили с одним именем, и подхватывался прежний. Баг выглядел настоящим, пока не сверились в одном месте. Нужен один способ передачи версий и одно место сверки.
- Что я делал
- Писал код блокировщика и второе расширение для экспорта истории целиком, сделал большую переработку в январе 2025, закрывал баги по видео заказчика
- Кто ещё работал
- Заказчик вёл продукт: публикация, модерация, тестирование, часть правок. Всё развитие после марта 2025 его
- Когда
- май 2024 – март 2025
- Инструменты
- JavaScript, расширения Chrome, локальное хранилище
- Сайт
- Chrome Web Store