Проект: Полюс.Ноль — дневник, придуманный заново  Публичный пост
1 марта 2024  966
Полюс.Ноль - дневник, придуманный заново
https://zeropole.app

Господи, как долго я мечтал написать сюда этот пост 😍

Поехали 🛫

Оно мне надо?

Вам знакомо чувство, что вы пишете пет, вы такие заряженные и креативные, а через неделю вы понимаете, это все точно уйдет в стол? 😕

Так вот, полюс.ноль - это первый мой проект, с которым у меня не случилось такого ощущения. Я ПОВЕРИЛ в него 😏

О чем это?

Вкратце: полюс.ноль - это конструктор-дневник, который позволяет не только и не столько запоминать, что было интересного сегодня (с этим справится любой Notes), а скорее:

  • помогает глубоко рефлексировать 👁️
  • пытаться замечать неочевидные зависимости между тем, что мы делаем, и тем, что чувствуем 👀
  • помогает придерживатся своих принципов 📃
  • помогает задавать самому себе правильные вопросы (с небольшой щепоткой ИИ) 🤔

В этом и суть названия: если взглянуть на компас - там 4 направления. Меня же интересовал сугубо центр - поиск себя.

Мои траблы

У меня была банальная проблема: сегодня я живу с одним вектором развития, завтра - с другим, послезавтра - с третьим. Полная каша 🤪

Потом у меня добавились панические атаки и я решил, что мне точно нужен какой-то способ "удерживать ноги на земле".

Плюс я нигде не видел именно конструктор, чтобы мне давали возможность самому составлять форму своей рефлексии.

Так я года 3 назад и начал его писать ✍️

Вдохновился, воодушевился, даже жене своей не рассказывал, что именно делаю.

Базовая идея

Мысль была супер проста. Я хотел записывать и понимать, что я делаю, и как это влияет на мое состояние. 😌

Мне нужно было дать возможность создавать факторы (то, что я делаю) и состояния (то, что я чувствую). Причем акцент был сделан не на текстовые поля, а на числовые и бинарные. Иначе как я посчитаю зависимость?

Пример: стресс на работе (фактор) - 5 баллов, чувство опустошения (состояние) - 5 баллов.

Потом добавить это все на одну форму. Сохранить. Обсчитать. Показать результат.

Есть даже видос, где я объясняю, как работала первая версия.

Стэк, куча, связный список

Т.к. я рубист, выбор технологий был для меня очевидным.

  • Rails 🛤️
  • Ruby 💎
  • Telegram Bot Ruby gem 🤖
  • MongoDb (ниже расскажу, почему именно монга) ⛺️
  • React ⚛️
  • TailwindCSS 💅
  • Digital Ocean 🌊
  • Capistrano (да, в 2к24).

Я делал все на server rendering кроме сложных страниц, где мне помогал React. Но позже я отказался от него в пользу более интересной и перспективной технологии (читай ниже).

Почему MongoDB?

Для рубистов это не самый частый выбор, но мне нужна была технология, которая

  1. позволит гибко составлять дочерне-родительские связи.

Вот у меня есть рефлексия, в ней есть результаты факторов (ссылка на фактор + значение сегодня) и состояний (ссылка на состояние + значение сегодня).

Можно использовать JOIN таблицы в реляционке, а можно не дурить себе голову и сделать просто:

{
    "reflection_id": "25",
    "factors":  [
       {
         "id": 100,
         "value": 5
       }
    ]
}
  1. позволит удобно менять схему в гибком к требованиям и идеям проекте;
  2. это новая для меня технология, которую хотелось пощупать.

Почему Telegram Bot

Я считаю себя вменяемым человеком 😅 и осознаю, что веб не должен быть единственным вариантом, а так как я не умел не то, что в Swift/Kotlin, а даже в мобильную верстку, я заюзал телеграм бота, чтобы в нем можно было рефлексировать и получать себе напоминания о принципах.

Это работает до сих пор 🧸

Чем хуже, тем лучше

Спустя несколько месяцев работы в свободное время, я сделал первую версию, торжественно собрал жену и друзей за одним столом, включил камеру и начал ПИТЧИТЬ.

В тот момент я понял, что я неправильно вообще рассказал идею, потому что меня поняли, как будто это просто трекер привычек.

Потом я стал делать акцент, что это все больше про кукуху все-таки 😅

Не просто сложно, а п##дец как сложно

У меня была пипец какая сложная схема, как добавлять себе в страницу рефлексии эти факторы и состояния для трекинга.

НИКТО не мог понять, как это работает. Все только говорили, что должно быть ПРОЩЕ.

Но потом я придумал, как это сделать. Стало лучше, но неидеально до сих пор 😅

УТП (или почему не Notion/Excel)

  • факторы/состояния/вопросы существуют не только личные, но и публичные. то есть можно посмотреть (если человек делится), какие вопросы и факторы/состояния трекают другие. своего рода соцсеть / коммьюнити и вдохновение.
  • зависимость меджу факторами и состояниями считается автоматически. не нужно писать специальных формул и менеджить, что с чем должно коррелировать.
  • в рамках рефлексии можно пользоваться ИИ для вопросов, чтобы углубить анализ. могу сказать, что сам пользуюсь и ИИ действительно помогает задать дополнительные вопросы, которые еще больше заставляют задуматься.
  • есть правила/принципы, которые напоминают тебе, кем ты хочешь стать, которые приходят в ТГ бот.
  • есть геймификация: за рефлексии и напоминания о правилах можно получать очки, а за пропуск рефлексий - терять. очки влияют на твой уровень. банально и просто - но с чего-то надо начать. можно подумать про ачивки и всякие лейблы.

Ренессанс

После какого-то времени я осознал, что сложные UX вещи надо переписать, заодно применив свои новые знания по фронту.

HTML Over The Wire

В то время как раз вышел Hotwire от Rails. Почитайте, если интересно. Вкртаце, это штука, которая отправляет AJAX запросы на сервер, и присылает готовый HTML, который вставляется в нужное место на странице, заменяя или расширяя текущие элементы/списки.

Я выбросил React, взял UI библиотеку Preline.

Это дало мне такой виток вдохновения, что я не мог оторваться!

Вопросики к ChatGPT?

Также я решил заменить текстовые факторы на другую сущность - вопросы. А потом, во время прогулки, придумал, что ответы на вопросы можно скармливать ChatGPT, и получать новые вопросы для углубления рефлексии 😌

Я прям кайфнул от этой идеи и сделал ее буквально за вечер 😄

Лендос

Preline позволил по-новому взглянуть на фронтенд.

Я мечтал сделать хотя бы один лендинг в своей жизни, и теперь я смог это сделать.

Ничего особенного, но кайф получил.

Интернационализация

Ох, как мне здесь помог ChatGPT. Я тупо скармливал ему свои YAML-ики с переводами и получал назад готовые YAML-ики. Надо было немного проверить и подкорректировать.

Stripe

Я был так воодушевлен, что даже завел себе Stripe и мой друг купил у меня подписку 😅

А потом я прочитал статью, как чела зачарджили в ОАЭ на 10к$ за то, что тот не захендлил VAT. Оказалось, что Stripe не хендлит налоги в странах продажи.

А я и не думал даже про это 😔

Прикрыл пока это дело до тех пор, пока не разберусь. Если есть идеи/соображения по этому поводу, поделитесь, пожалуйста 🙏

Маркетинг

Вначале я вообще не планировал, что этим будет кто-то пользоваться, а потом у меня появился азарт. А почему нет?

Ниже расскажу, что я пробовал.

Tik Tok

Я придумал делать короткие видео с глубокими вопросами, которые бы потом вели на мой пет, но создание видео ( даже коротких ) - это ОЧЕНЬ долго. Поэтому этот вариант пока на паузе.

Twitter

У меня не очень много подписичков, но я рассказываю о своем проекте иногда. Не уверен, что кто-то пришел оттуда 😅

Instagram

Недавно сделал промо-сториз в инстаграм. Так рассказал более широкому кругу людей про проект.

При том, что сториз глядело в районе 80 человек - хоть как-то отреагировало человек 5-7.

Возможно, я плохо дал понять, что вообще происходит, и люди подумали, что я просто рассказываю про чей-то проект.

YouTube

Начал вести небольшой блог со своими мыслями. Смотрят в основном друзья 👀 В принципе, все по классике

Reddit, ProductHunt, прямая реклама

До этого я пока не дорос 😕

Над чем работаю сейчас?

Сейчас работаю над тем, чтобы еще упростить UX, немного над дизайном, чтобы просто стало еще аккуратнее.

Очень ценю фидбек первых пользователей и как можно быстрее пытаюсь улучшать. К примеру, по совету одного из пользователей недавно ссылку, с объяснением как работает рефлексия, перенес из футера в самые видные места.

Большое спасибо, что прочитали 🙏

26 комментариев 👇
Анна Малинина Дизайнер интерфейсов 1 марта в 13:08

в целом хочется какого-то онбординга по ходу знакомства. мануал почитать это прикольно, но уже не модно. сейчас знакомство с фичей обычно встраивают в юзерфлоу. люди уже ждут, что щас их за ручку проведут и все тут покажут.

я ввела код, бот ответил "lets go". сижу и думаю, либо следующие сообщения не долетели еще, либо на этом все, дальше сама.

короче, хочется добавить какой-то заботы и уюта для пользователя. тем более в приложении для рефлексии — человек решает позаботиться о себе, и приложение по идее дает ему инструменты, но как-то холодно.

  Развернуть 1 комментарий

@Raspberry, уау! огромное спасибо! все в точку. буду работать над этим 🙏

  Развернуть 1 комментарий

Ух, как-то тяжело сразу въехать, но больше всего похоже на self-reflection/mood journal, аудитория которых пользуется чем-то вроде Notion.

Была мысль тоже искать какие-то корреляции между тем, что происходило, и тем, как я в целом себя чувствовал в этот период, но в итоге... победила лень :(

С точки зрения UI вот этот вариант шаблона показался прикольным, где всё на одном экране:
https://poonamsharma.gumroad.com/l/eaikk?layout=profile

Если представить веб-сервис, в котором для каждого дня будет сформирован автоматический «контекст дня» через API:

— Sleep tracker
— Health apps (Welltory, etc)
— Fitness app
— Weather
— RSS (News, etc)

...то мне останется лишь выдать всему этому оценку или подсветить что-то от себя вручную. Наверное, такой вариант бы мог зайти большинству самоедов, которые уже пользуются чем-то подобным.

В плане фич уверен, что сейчас есть прикольные затеи, но одновременно кажется, что это скорее минус из-за высокого порога вхождения.

P.S. Письма с подтверждением летят в спам gmail, хотя проверку проходят: Why is this message in spam? Lots of messages from zeropole.app were identified as spam in the past.

  Развернуть 1 комментарий

@ste1v0, спасибо за такой развернутый коммент 🙏

шаблоны в Notion - прекрасная идея, причем явно больше денег принесет авторам 😅

насчет сервиса, который автоматически будет делать отчет - тут проблема в том, что у меня немного обратная идея:

я искренне верю, что работа над собой требует сознательных усилий. и мое приложение направлено на то, чтобы стимулировать человека, как можно глубже погружаться в себя, думать, размышлять, придумывать себе вопросы/правила/рефлексии.

с письмами очень грустно, спасибо, что рассказали. пользуюсь mailtrap, но подключил недавно. надо будет поковыряться, почему так может быть.

  Развернуть 1 комментарий

Привет, а у меня не открывается!

  Развернуть 1 комментарий

@VladimirBrejcha, а теперь открывается)

  Развернуть 1 комментарий

Лендос супер, очень вдохновило, но!

Тут ошибка! В 2024 наоборот телефоны больше будут не нужны! (это отсылка на мои новогодние предсказания😁)

Вообще конечно телеграм наверное не самая удачная платформа) не у всех он есть и не все его используют часто/имеют на смартфоне.

Если задумаешься о написании приложеньки — стучись, помогу)

  Развернуть 1 комментарий

@VladimirBrejcha, спасибо большое! да, согласен, что телеграм - не самая удачная. но это то, что я мог реализовать для мобилки, и, кстати, сам вполне пользовался 😅

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Так и не понял для чего и что делать придется. Кажется дополнительно нужен маленький блок текста с супер простым и понятным описанием.

Пойду открою посмотрю.

  Развернуть 1 комментарий

@vasyaivanovpv, есть страничка-инструкция про рефлексии https://zeropole.app/how_to_reflect?locale=ru

  Развернуть 1 комментарий
Анна Малинина Дизайнер интерфейсов 1 марта в 12:58

зарегалась. хотела написать в телегу, но, возможно, ты сменил ник и не получается найти контакт, поэтому напишу тут.

после регистрации и авторизации перекинуло в настройки и тут просят установить ЧП. а зачем? с точки зрения UX хорошо будет пояснить, что это даст юзеру...
далее кнопка "Как это работает" почему-то не редиректит никуда, хотя ссылка-то там есть... хз.
код подключения к боту, честно говоря, выглядит страшно без пояснений опять же. как будто мне надо будет самой подключать какое-то api куда-то и всё такое - выглядит сложно и может поэтому оттолкнуть.

  Развернуть 1 комментарий

@Raspberry, спасибо за коммент! да, ЧП нужно остановить, чтобы правильно приходили нотификахи в ТГ. пояснение добвить будет явно не лишним, спасибо 🙏

кнопка как это работает должна вести на инструкцию. странно, что не работает( попробуй, пожалуйста, еще раз.

а можно чуть подробнее по поводу кода для телеграма? что можно было бы улучшить кроме пояснений?

  Развернуть 1 комментарий

@lovenic, пока ЧП не выбран - редиректит на сеттингс сразу же.

про код надо подумать. как я поняла, варианта сразу передать параметр в бота нет?

мне кажется, как минимум нужно опять же пояснить схему. например:
приложение работает с помощью бота в телеге.

  • скопируйте код для подключения (тут хорошо бы сделать копирование по клику или кнопочку такую с иконкой копирования)
  • откройте бот в телеге (линк) и вставьте код для активации (или как этот процесс называется).

но это такая быстрая идея с ходу ) можно еще поресерчить и поискать варианты получше.

  Развернуть 1 комментарий

@Raspberry, редирект - это такая жестковатая форма welcoming guide, который сделан топорно. пока не было ресурсов сделать красиво аккуратно, подсветить все. в будущем обязательно надо будет заняться, потому рил есть проблемы с пониманием интерфейса, идеи и UX в целом.

спасибо за совет с ТГ, обязательно сделаю подпись 🙏

  Развернуть 1 комментарий

@lovenic, если что пиши в ТГ (сейчас или потом), поштурмим вместе над тем, что можно улучшить.
я еще неофициальный сварщик, но люблю искать решения :)

  Развернуть 1 комментарий

@Raspberry, ой, спасибо огромное 🙏

а "сварщик" - это на сленге что-то? как-то, к стыду своему, не знаю 🤷

  Развернуть 1 комментарий

@lovenic, да мем очередной)) вместо сварщика подставляется профессия по смыслу. например, дизайнер

  Развернуть 1 комментарий
Ivan Klimchuk Senior Software Engineer, SRE, TechLead 25 апреля в 10:53

Вместо Stripe можно попробовать lemonsqueezy, они как раз выступают по сути стором для клиента, беря на себя все детали по налогам и прочему. Ну и по отзывам на индихакерс, они всякие saas любят

  Развернуть 1 комментарий

У меня что-то не работает( после #start ничего не пишет

  Развернуть 1 комментарий

@ltagieva, подскажите, пожауйста, а что такое #start?

  Развернуть 1 комментарий

@lovenic, сразу как открываешь бот отравляется /start и бот молчит :(

  Развернуть 1 комментарий

@ltagieva, спасибо! нашел бажок! надеюсь, сейчас все заработает 🙏

  Развернуть 1 комментарий

@lovenic, потеряла теперь в личном кабинете код 😅 сорри, я не айтишник
Бот прислал « To use the bot, you need a subscription. Check out the profile settings in the web version 🙏»

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб