Cпасибо всем, кто написал, оказалось весело делать ботов! ❤️
Бот #1: сделали со Стасом и его племянницей, Женей: t.me/WordTLeBot/WordTLe — Wordle в телеграме.
Написали на NextJs + Tailwind.
Есть twa.js для более удобного доступа к данным, которые отдаёт телеграм, мейнтейнит Влад из СЕРПа Яндекса, стримит всё на twitch.tv/qbnk.
Фичи
- Добавили разные языки, занимает несколько минут, чтобы добавить новый, если есть нормальный словарь. Сделал красивые анимированные флажки для выбора языка!
- Текущая попытка кэшируется в CloudStorage, так что можно закрывать бота, открывать с разных устройств, прогресс должен сохраняться.
- Хотелось хранить всю историю попыток в CloudStorage, но длина значения всего 4096 символов, так что даже msgpack показался недостаточно компактным, так что решил хранить в структурированом формате — protobuf или capnproto, а в CloudStorage писать бинарное представление.
Понравилось
- Телеграм отдаёт всю информацию о текущей теме пользователя: задний фон, цвет шрифта, цвета кнопок, платформу — можно делать интерфейсы, похожие на сам телеграм, чтобы miniapp не казался отдельным приложением.
- Есть CloudStorage — документная БД в самом телеграме, можно хранить до 1024 пар, ключ до 128, значение до 4096 символов. Привязано к паре (user; bot) — можно достать все свои данные в конкретном боте, но нельзя чужие.
Не понравилось
- Инфраструктура ещё не особо готова, иногда приходится дебажить в продакшене, на линуксе вообще ничего не запускается, приходится мокать все данные телеграма.
- Нет каких-то очевидных API: нельзя поделиться (navigator.share), приходится просто открывать https://t.me/share/url. Нельзя писать в буфер (navigator.clipboard.write) — приходится как в 2007 создавать textarea и вызывать execCommand("copy").
- Своеобразно работают свайпы: если тянуть вниз, то на айфонах приложение закрывается.
Пишите фидбек! Пишите, если хотите сделать ещё что-нибудь вместе, идей куча! 😎
Бот #1: сделали со Стасом и его племянницей, Женей: t.me/WordTLeBot/WordTLe — Wordle в телеграме.
Написали на NextJs + Tailwind.
Есть twa.js для более удобного доступа к данным, которые отдаёт телеграм, мейнтейнит Влад из СЕРПа Яндекса, стримит всё на twitch.tv/qbnk.
Фичи
- Добавили разные языки, занимает несколько минут, чтобы добавить новый, если есть нормальный словарь. Сделал красивые анимированные флажки для выбора языка!
- Текущая попытка кэшируется в CloudStorage, так что можно закрывать бота, открывать с разных устройств, прогресс должен сохраняться.
- Хотелось хранить всю историю попыток в CloudStorage, но длина значения всего 4096 символов, так что даже msgpack показался недостаточно компактным, так что решил хранить в структурированом формате — protobuf или capnproto, а в CloudStorage писать бинарное представление.
Понравилось
- Телеграм отдаёт всю информацию о текущей теме пользователя: задний фон, цвет шрифта, цвета кнопок, платформу — можно делать интерфейсы, похожие на сам телеграм, чтобы miniapp не казался отдельным приложением.
- Есть CloudStorage — документная БД в самом телеграме, можно хранить до 1024 пар, ключ до 128, значение до 4096 символов. Привязано к паре (user; bot) — можно достать все свои данные в конкретном боте, но нельзя чужие.
Не понравилось
- Инфраструктура ещё не особо готова, иногда приходится дебажить в продакшене, на линуксе вообще ничего не запускается, приходится мокать все данные телеграма.
- Нет каких-то очевидных API: нельзя поделиться (navigator.share), приходится просто открывать https://t.me/share/url. Нельзя писать в буфер (navigator.clipboard.write) — приходится как в 2007 создавать textarea и вызывать execCommand("copy").
- Своеобразно работают свайпы: если тянуть вниз, то на айфонах приложение закрывается.
Пишите фидбек! Пишите, если хотите сделать ещё что-нибудь вместе, идей куча! 😎