Project #1 – dead.domains [draft]

Project #1 – dead.domains [draft]

Dima


История запуска

16 августа, во время одного из перерывов в работе, я зашел в Твиттер. В одном из тредов создатель betalist.com рассказал, что у него есть много доменов, которые он покупал с надеждой, что когда нибудь сделает для каждого из них проект. В комментариях несколько человек заметили, что поступали точно так же. В итоге, проектов как не было, так и нет, но и расставаться с доменом, за который ты уже несколько раз заплатил, не хочется. Поговорили, посмеялись и разошлись. А я подумал, почему бы не попробовать сделать простой сайт, куда люди могли бы выкладывать свои домены на продажу с описанием начальной идеи. Просто так рассказывать свои идеи не принято, но когда идея продается вместе с доменом – в этом что-то есть. Главная мотивация для меня — такой проект идеально подходит для изучения основ программирования.


Открыл Sublime, написал первую строчку кода и не заметил, как пролетели 7 часов. Посчитал — за это время я 57 раз искал что-то на Stackoverflow. Посреди ночи у меня была готова полностью работающая альфа версия. Стэк технологий — Node.js + Express + MongoDB + Pug/SCSS/JS. Честно говоря, мне не верилось, что первый релиз в жизни выйдет таким будничным и непринужденным.

Первая версия dead.domains

Наутро я понял, что мне совсем не нравится получившийся дизайн. Вдохновившись лучшими идеями www.uxbrutalism.com, я полностью перерисовал и сверстал новую версию.

Вторая версия dead.domains

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


Первое размещение

Как и положено с альфа версией, мне тут же захотелось проверить свою идею. Для этого я выбрал хардкорный путь — designernews.co. Главная страница этого ресурса принесла мне 837 уникальных посетителей и 57 добавленных доменов за первый же день после размещения.

На следующий день dead.domains каким-то образом оказался на главной webdesignernews.com, еще через день — в рассылке sidebar.io. За неделю трафик составил 4к уникальных пользователей, а в базе оказалось 210 доменов. Разумеется, я не ожидал ничего подобного. Приятно, когда проект, который ты собирался использовать исключительно в тренировочных целях, получает такой резонанс. Да, 4 тысячи посетителей — не так уж и много. Но не для новичка, который за 3 недели до этого не был в состоянии разместить даже простую HTML страницу в сети.

Статистика через 4 дня

Кстати, здорово, что я догадался сразу же сделать кнопку "Like This Idea", которая изначально задумывалась как быстрый способ, чтобы твитнуть сообщение вида "Great idea {домен}, by @{твиттер владельца}. Я был удивлен, когда понял, что вместо того, чтобы делиться с друзьями крутыми находками, люди стали нажимать на неё, потому что им понравилась сама идея моего проекта. Посмотрите на предыдущий скриншот (где вторая версия дизайна), и вы поймете о чем я говорю. Первое время оповещения на телефон приходили буквально каждый час, через неделю счетчик твитов со словом dead.domains превысил отметку в 100 сообщений. Ещё раз — я и не предполагал, что это будет так работать.


Проблемы

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


Решение проблемы с именами — авторизация через Твиттер. Для авторизации в приложениях, написанных на Node.js, все используют http://passportjs.org/. Действительно, очень удобная библиотека с огромным количеством стратегий (способов авторизовать пользователя через фейсбук, гмейл, твиттер, контакт, почту и т.д.).

Авторизация через твиттер


Окей, но это по-прежнему не решает проблему валидации доменов. Человек может залогиниться через Твиттер и начать постить все те же гуглы, реддиты и порнхабы. Решение «в лоб» — найти список из 200-300 самых посещаемых в мире сайтов, и при помощи него проверять каждый новый домен. Быстро, автоматизированно, но крайне ненадежно. К тому же, последнее, что мне хочется сделать из своего сайта — площадку для киберсквоттеров. Так я решил, что без проверки руками не обойтись. Нужно было придумать, как получать уведомления о каждом добавленном домене. Решение оказалось простым — бот в телеграме, который будет отправлять мне сообщение о новой записи с двумя кнопками — принять и отклонить. До тех пор, пока я не нажму «принять», домен будет находиться в состоянии «In Review» и не будет отображаться на сайте. (TODO: заметка о том, как я писал бота для телеграма).

Бот в телеграме для проверки доменов


Запуск

....



Report Page