Всем привет! Прошло два месяца с момента анонса typegram на Хабре. И у меня для Вас просто жуткое количество новостей и прохладных историй! Всё так бурно развивается что даже страшно. Начну с приветствия:
Привет, меня зовут Вадим, я представляю проект typegram. Typegram — онлайн платформа для публикаций с открытым исходным кодом.
Это то, что меня выдрессировали делать в стартап школе YC. Начинать с представления себя и своего проекта.
Да, мы (точнее я) каким то странным образом попали в это чудесное место где куча таких же шизиков пилят свои проекты и каждую неделю рассказывают о своих достижениях и неудачах. Ещё там куча полезных видео, от успешных менторов с экстраординарным подходом. Рассказывают интересно и нетипично. О своих первых впечатлениях и как всё происходит я уже писал, не буду повторяться. Там есть ссылки на видео прошлых лет. Как окончу школу (через три недели) обязательно напишу подробнее. Перейдем к интересным штукам (все о чем я буду рассказывать — лежит в открытом доступе на гитхаб).
Начнем, пожалуй с монстров:
У каждого пользователя теперь есть личный маскот, монстрик или аватарка попросту говоря. Каждая аватарка уникальна и генерируется для username. Вот, например автарка дизайнера, который рисовал монстров:
Как это работает? При первом запросе по адресу ru.tgr.am/a/username.png — сервер проверяет есть ли картинка с таким именем. Если есть — рендерит. Если нет — собирает картинки из частей, в папке github.com/recoilme/tgram/tree/master/data/monster — лежат картинки частей тела, и они просто собираются в одно изображение. Получилось очень удобно. Во первых все происходит на сервере и один раз (нет тормозов яваскрипт). Во вторых — дизайнер просто накидал картинок в папки и вуаля (на самом деле он неделю вычерчивал по сетке в фотошопе, чтобы рот на нос не наезжал и получалось клёво) Поиграться можно скачав typegram и подсовывая другие картинки в папки, всё работает на автомате. Если, вдруг хотите дополнить медиатеку монстров своими работами — велком. Вот тут еще отчужденный от bindata код, который лег в основу. Если хотите из командной строки попробовать генератор, например.
44 Эссе.
Неожиданный поворот, но очень важный. Неожиданный, потому что не про dev, а важный потому что человек существо игровое и творческое. Не помню кто сказал, но не суть. Мы запустили конкурс для начинающих авторов — 44 эссе. Ну как запустили, запустил то его телеграм канал «Хемингуэй позвонит», но сами работы размещаются на typegram по тегу 44esse
Принять в нём участие может любой желающий. Будут оффлайн арт вечеринки с чтением лучших рассказов, правда без айфонов в конце мероприятия. Я думаю это важно, потому что после анонса на хабре, многие начали публиковать на тайпграм рассказы. И это здорово и интересно. Попробуйте, это бесплатно.
Интеграция с Email
Старый добрый email отлично подходит для рассылки уведомлений. Например, когда пользователя упоминают в комментарии. Тут моего запала на написание полноценного конкурента gmail не хватило, простите, и прикручена была банальная интеграция по smtp. Технически — письмо отправляет Яндекс. Нужно только пнуть его. В гоу это просто. Попробуйте, посмотрите код, если тоже хотите просто слать пуши.
Автопубликация в телеграм
Появился скрипт, который отправляет статью в телеграм. Это очень противоречивая штука. В телеграм совсем все плохо с форматированием материалов, с одной стороны. Писать длиннопосты в нем крайне неудобно. Теперь пост можно написать в тайпграм, и если он привязан к каналу — всё произойдет автоматически. Выглядит как магия. Но практической пользы немного. Потому что, как правило — интересней написать банальную подводку с ссылкой на статью в конце, чем пропускать через вот этот вот адский конвертер. Вобщем такая фича, технически интересная, практически — малоценная. Реализация на github
Сервер статистики
Меня конкретно бомбит от того насколько плохо реализованы счетчики аналитики. И еще больше бомбит от того, что все они следят за пользователями, чтобы показать затем унитаз, в самый неподходящий момент. К счастью — есть бесплатные альтернативы. Я выбрал проект Fathom Теперь статистику можно смотреть прям в рилл тайм: stat.tgr.am и никаких унитазов. Есть и своя, примитивная статистика — прямо в коде проекта. У каждой статьи есть каунтер просмотров. Для каждого субдомена меряется DAU и WAU, и все это реализовано без сбора персональных данных на сервере.
Планируемые в ближайшее время фичи:
Server less андроид приложение
Мы придумали очень интересную концепцию. На мобильных платформах — тайпграм будет работать как мессенджер. Уведомляя о изменениях состояния — мгновенно. Как это работает.
У гугл есть такая штука как уведомления. Забавно, что помимо обычных нотификейшен — есть скрытые «посылки». Можно послать произвольный json приложению, и он будет обработан как пуш, но без тревожного сообщения вверху экрана. Ну или с искусственно созданным уведомлением, тут уж на свой вкус. Еще есть такая вещь как каналы. Итак, соберем все воедино. Приложение подписывается на канал typegram/all Например. И на личный канал пользователя typegram/recoilme — для персональных уведомлений. При публикации новой статьи — сервер шлет в FCM — уведомление — вышла новая статья. Приложение его обрабатывает и рендерит. Удобно. Риал тайм. И никаких запросов от приложения к серверу. Пока мы собрали только рабочий прототип. Описание идеи тут: github.com/recoilme/tgram/issues/107
А посмотреть как это реализовано на сервер сайд можно тут. Приложение пилит habr.com/users/chukachichi — как только станет не стыдно — обещал выложить на гитхаб)
Dogecoin
Мы будем встраивать эту самую милую на свете криптовалюту прям в движок. У каждого пользователя будет кошелёк и возможность донатить в один клик. И да, если Вам интересна эта тема — ишью пока свободно! Хотите попробовать? Велком.
В конце хочется ещё раз поблагодарить всех видимых и невидимых контрибьютеров. Без вас тайпграм не развивался бы так стремительно. И многие из них пришли с хабра. Приходите и вы. Opensource — это прежде всего весело и дает возможность реализовать самые смелые вещи. Никто не даст вам на работе внедрить Dogecoin на сайт в качестве оплаты. А на typegram — вас встретят с распростертыми объятиями!
Автор: recompileme