1-ый день разработки проекта PlayVibe
Веду дневник разработки своего Telegram Mini App проекта.
Моя идея в том, чтобы сделать конструктор соревнований, дабы любой TMA проект смог проводить своих игроков через серию осмысленных квестов, знакомя их с проектом.
Существующие решения вроде Zealy (бывший Crew3) показали, что это возможно, но они дают слишком много выбора, настолько много, что ты просто теряешься и не понимаешь, как создать свои квесты мечты?
Я же хочу взять идею конструктора квестов и добавить к этому свои шаблоны, научить владельцев проектов создавать действительно интересные конкурсы.
Ведь все мы хотим не тупо подписаться в твиттер очередного проекта, мы хотим действительно быть вовлечены в путешествие, которое нам обещают, мы хотим интересно провести время и стать частью сообществ.
Я уже имел опыт создания своих квестов на Zealy, раньше предоставлял крипто-проектам такую услугу как соревнование пользователей под ключ.
Затем попробовал провести серию квестов в своем проекте с торговыми ботами.
Оказалось, что если подзапариться, можно придумать очень интересные задачи для пользователей.
Первое время мы с командой позиционировали MatrixBot как относящийся к Матрице - Нео, Морфеус и всё такое. Тогда я разработал конкурс, используя эту идею и атмосферу, придумал нарратив конкурса: (по памяти)
Ты - один из трейдеров сопротивления, наша задача противостоять рынку. Мы входим в систему и торгуем, чтобы противостоять агентам..
И всё в таком духе. Было очень забавно. В ходе квестов надо было создать аккаунт на сайте, попробовать создать своего первого торгового бота, затем пригласить друзей в "сквад", вместе выполнять задания, устраивать рейды в другие комьюнити, а по итогу надо было сражаться с агентами, публикуя в Твиттере определенные посты.
У меня с тех пор осталось много мемов, которые создавали пользователи в рамках участия в конкурсе
Заканчиваю с лирической частью, перехожу к технической.
Для начала мне пришлось определиться с внутренним устройством проекта. Я
пишу на Golang, но он заточен на backend разработку, а интерфейс,
визуал, взаимодействие с пользователем — задача frontend.
Я не любитель NodeJS, мне не нравится сама философия этой системы. Для
меня Javascript — это нечто для интерактива на веб-страничках, поэтому
для фронта я выбираю, так сказать, Native JS — обычный Javascript,
который не требует какой-то отдельной среды, не требует перегруженных
фреймворков и может выполняться в любом браузере.
Меня раздражает, когда на, казалось бы, обычном сайте я не могу нажать
на какую-то кнопку, потому что разработчики применили какую-то новую, но
не проверенную временем технологию, из-за этого ваш браузер постоянно
оказывается устаревшим.Это называется "выстрелить себе в ногу": клиенты
сталкиваются с проблемами, а ваш бизнес несет убытки.
Пожалуй, мой главный принцип, которого я всегда придерживаюсь —
оптимизация. Надо убирать всё лишнее, избавляться от излишних
фреймворков и сред.
К примеру, есть целый ряд приложений для ПК, которые на самом деле
веб-приложения и для своей работы тащут за собой целый браузер. А если у
вас в системе несколько таких приложений, каждое из них имеет в себе
отдельный браузер Chrome.
Ну потому что современное IT не про оптимизацию, а про желание сделать
так, чтобы хоть как-то работало. Кваллификация кадров постепенно падает,
а запросы у них растут, вот и начинают халтурить, использовать чужие
наработки, которые не беспокоятся об оптимизации.
К слову, поэтому сейчас мобильные игры весят гигабайты, а некоторые компьютерные игры уже начинают требовать терабайт места.
Что я сделал в 1-ый день разработки?
Решил, что пора освоить работу с Vercel. Много об этом слышал, никогда не пробовал.
Эта штука решает вопрос авто-разворачивания приложения на сервере, причем бесплатно и сервер как бы дают свой для хобби-проектов. Для начала - супер.
Тем более, что пока не охота возиться с докер-контейнерами и на каждый чих их пересобирать (даже если с автоматизацией через Github CI).
Пришлось немного запариться, поставить NodeJS в систему (oh no!) просто чтобы работала команда vercel test и можно было локально проверять как оно там работает и выглядит.
Запариться пришлось где-то на час, изучая как это все работает, настраивать и тд. И вуаля, каждый раз, когда я обновляю master ветку своего репозитория, оно само собирается и обновляется. Классно.
Что ждет проект дальше?
- Как работает и как подключить Ton Connect
- Понять, использовать JQuery, Alpine.JS или просто функцию fetch, чтобы еще больше оптимизировать и не тащить в приложение лишние скрипты.
Вообще, идея у меня в том, чтобы сделать по ходу разработки себе движок для TMA приложений, супер оптимизированный, супер легковесный. Чтобы приложение открывалось за долю секунды.
Как маркетолог скажу, что каждая лишняя секунда при загрузке вашего приложения снижает конверсию в онбоардинг (ознакомление), поэтому это критично для PlayVibe - проекта, который строится на онбоардинге юзеров.
Надеюсь, вам понравилась статья, если еще не подписаны, вступайте в мой канал, найдете продолжение и сможете следить за ходом разработки.
Буду делиться своими заметками, возможно вам они пригодятся.