
В детстве я разгадывал ребусы, как все. Потом обнаружил, что составлять интереснее. Это выяснилось довольно рано и с тех пор не прошло.
Недавно я заинтересовался, что происходит в жанре, и слегка приуныл. Ребусы составляли все кому не лень, но правил не помнил почти никто. А правила есть, и они точные. Запятая в ребусе — инструмент (а я похоже зануда)) и хвостик у неё всегда смотрит в сторону от рисунка: это не украшение, это тоже часть записи. Обо всём этом можно было написать статью. Я написал. Потом ещё несколько.
Так появились уроки, группа в ВК. Люди приходили, решали, некоторые оставались.
Ответы в группе принимал чужой плагин. Он слушал ленту и ловил совпадения — тупо, посимвольно. Знаков препинания не понимал, пробелов не прощал. Приходилось объяснять людям, что отвечать надо не как им удобно, а как удобно плагину. Дальше было хуже: Список правильных ответов рос, появлялись повторы и ложные срабатывания, ответы то были ко всем опубликованным ребусам… Мне хотелось своей механики, нормального учёта, рейтингов. Я упирался в чужие ограничения примерно каждый раз, когда придумывал что-нибудь интересное.
Поэтому — свой сайт. Фреймворк выбрал тот, которого не знал, — Laravel. Логика, приём ответов, соревновательная часть, рейтинги. Делал, тестил, переделывал, переделывал ещё раз. Зато ограничивала меня теперь только собственная фантазия и умение придумать алгоритм.

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

Авторизацию сделал через ВК и пока (увы) только через ВК. Причин две. Оттуда пришли почти все пользователи, и заставлять человека регистрироваться заново — верный способ его потерять. Плюс чужая авторизация избавляет от спамеров: пусть их отсеивает тот, у кого на это есть возможности. Подружить сайт с VK API оказалось отдельным квестом — он меняется, когда захочет, без предупреждения и вменяемой документации.
Сейчас на сайте больше трёхсот ребусов, и они регулярно пополняются. Уроки, ребусы и маскот —енот учёный — придуманы мной от первой строчки до последнего пикселя. Имени у енота до сих пор нет.