Как написать свою шахматную платформу на Node.js и Go и набрать первые 360 пользователей
Можно ли запустить работающий шахматный сайт без бюджета и рекламы, получить первые сотни регистраций и не сойти с ума? Спойлер: можно, но больно.
Я создатель open-source проекта ChessHome. За время разработки я успел пережить падение серверного железа и DDoS-атаки.. Вайбкодил с помощью бесплатного Claude, но иногда какой-то мелкий баг приходилось фиксить самому.
Изначально ChessHome задумывался как классический пет-проект на Node.js и Express. Быстро, просто, для пет-проекта - самое то. За real-time передачу ходов отвечал (и отвечает) Socket.IO, а все данные складывались (и складываются) в PostgreSQL.
Чтобы платформа не легла при росте онлайна, я принял решение переписать критически важные сервисы на Go
- Старое ядро всё еще крутится на Node.js, но новые бэкенд-фичи постепенно уезжают в отдельный сервис на Go.
- Они делят одну базу данных PostgreSQL и общаются между собой.
Если вы думаете, что маленький сайт на 300 человек никому не нужен - вы ошибаетесь. Нас атаковали (не важно кто и зачем). В один из дней сервер просто перестал отвечать. Атака была не супер-сильная, но хватило для падения сайта, ибо защиты вообще не было. Я на ходу настроил nginx и привязал защиту от Solar Space. Думаю, самый лучший вариант, т.к. Cloudflare - минус поток пользователей из РФ, т.к Cloudflare заблокан в РФ, DDOS-GUARD и подобные сервисы - слишком дорого.
Сейчас на сайте реализованы турниры (клубные, межклубные, просто турниры), задачи, клубы, блоги, форумы, ЛС, живой чат и ещё много чего! Однако баги есть, и их много. Фикшу потихоньку :)
Моя цель - увидеть 1000 зарегистрированных пользователей до лета 2027. Не для коммерции (сайт полностью бесплатный), а ради спортивного интереса и проверки гипотезы: можно ли сделать крутую платформу силами сообщества. Недавно я добавил полную поддержку английского языка, так что готов принимать шахматистов со всего мира.
- Поиграть и потестить: chesshome.pro
- Посмотреть код, поставить звезду или закинуть Pull Request: https://github.com/ChupikPupik/ChessHome
Заходите, регистрируйтесь, создавайте клубы и пишите в комментариях: какие баги нашли первыми и чего, по вашему мнению, не хватает сайту, чтобы составить конкуренцию Lichess? Буду рад любому фидбеку и критике!