Проект: Pokoy — Фибоначчи-таймер для медитации  Публичный пост
28 ноября 2021  1266
Pokoy — Фибоначчи-таймер для медитации
👋 Привет, я Мартын. Могу похвастаться исследованием интервальной медитации, марафоном по медитации, а ещё я пилю приложение для, вы удивитесь, медитации. Хочу рассказать о нём.

Приложение: https://pokoy.app
Код приложения: https://github.com/m0rtyn/pokoy
Канал проекта: https://t.me/pokoy_app

К содержанию

Как появилась идея

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

Вместе за месяц мы набрали 228 часов медитации на 19 человек. Для некоторых марафон продолжался весь год. Кто-то впервые пробовал медитировать каждый день.

Найдите 10 соклубовцев
Найдите 10 соклубовцев

Но были и проблемы: занесение данных оказалось рутинным для каждого, ведь мы вручную вели табличку в G.Sheets. Это был высокий порог для закрепления привычки, хотя месяц продержались почти все.

Потом я психанул и сделал «читерское» приложение, которое писало в эту таблицу статистику автоматически, но работало только для меня. Я решил, что стоило бы сделать его для всех, но это заняло время.

На проект меня вдохновили примеры из Клуба и посты Почему каждый должен начать делать свой продукт сейчас , Какие изменения принесет медитация по 45+ мин. в день в течение 10 месяцев без пропусков?

Расскажи о сути проекта?

Так выглядит Покой в светлой теме
Так выглядит Покой в светлой теме

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

  • Как обманывает? Использует когнитивные искажения связанные с оценкой времени.
  • Чем обманывает? Лёгкими стимулами и математикой, а точнее таймерами по Фибоначчи.
  • Что-что? Можете почитать об этом в следующей главе.

Подробнее о сути

ℹ️ Тут много текста. Если неинтересно → следующая глава

За жизнь я медитировал где-то три сотни часов. Мне нравится философия буддизма и нейробиология счастья. Однако медитация остаётся для меня сложной практикой, которой не хватает увлекательности и моментальной обратной связи.

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

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

Я пошёл иначе: попробовал построить модель. К примеру, я хотел накопить 100 часов за год и это означало, что мне достаточно медитировать по 16 минут в день. Здорово, да?

Как говорили древние
Как говорили древние

Окей, можно медитировать по 16 минут в день с помощью таймера. Но часто было так, что сегодня хватило терпения только на 5 минут, а завтра не вышло вообще. А иногда я будто просветлялся и кайфуя сидел в позе лотоса по 20-40 минут за раз! Так я понял, что моя модель хрупка и лучше сделать её динамически адаптивной.

A eщё oна довала пачуствовать себя умным
A eщё oна довала пачуствовать себя умным

Чтож, можно медитировать столько времени сколько получается и ориентироваться на средний результат, не привязываясь к статичной норме. Для подсчёта среднего результата мне потребовалось ограничение по конечной дате измерений. Но потом я почувствовал, что приятнее медитировать без конечной даты и без тревоги о выполнимости плана.

И наконец я сделал бесконечную модель, где мне не требовался дедлайн, а прогнозы строились только на основе данных о длительности медитаций по дням. Чем дольше я медитировал, тем точнее был прогноз. У меня осталась только проблема с доступностью и лёгкостью первого шага к медитации.

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

Работает так:

  • У меня есть обратный таймер.
    • Но он непростой: разделён на части и сообщает, когда окончился этап, а также сколько ждать до следующего. То есть это серия таймеров, которые идут друг за другом.
  • У меня есть этапы.
    • Но они тоже непростые: их длительность начинается с 1 минуты и постепенно нарастает по экспоненте.

Ну типа так
Ну типа так

  • У меня есть экспонента.
    • Но в этот раз простая: это Фибоначчи, где каждый следующий этап это сумма двух предыдущих. Магия тут в том, что акцент не на общей длительности медитации, а на добавочном времени, которое ощущается как терпимое по длинне (тут случаются когнитивные искажения), но длиннее чем предыдущее.
  • В любой из этапов я могу понять, что больше не готов медитировать ещё N минут. Сеанс окончен, длительность записывается в статистику округляясь до последнего этапа.
    • В сумме получается больше чем кажется. Например: 1 + 2 + 3 + 5 = 11 минут, хотя ощущаются как 5. А округление вниз я сдела чтобы оставалась мотивация ждать до следующего этапа.

Вот и вся магия. Меня этот процесс побудил чаще и дольше медитировать. Мое среднее количество медитации в день сейчас около 20 минут.

Что вошло в прототип и сколько времени на него было потрачено?

  • Веб-Приложение с таймером
    • Запустил его недели за две, а потом полгода полировал и дорабатывал под себя.
  • Таблица марафона в G.Sheets
    • Пришлось подгонять формат данных, но на это ушла максимум неделя.
  • Переход на Firebase
    • Это произошло месяц назад. Переход был быстрым, дольше искал и примерял альтернативы.

Суммарно, на проект я затратил более ста часов.

Какой технологический стек вы использовали? Почему?

  • React — a точнее Create React App с компонентом на Canvas для отрисовки спирали.
  • PWA — Эта технология позволяет в обход App Stores устанавливать сайт под видом ярлыка. Ведёт оно себя тоже как приложение, есть независимый от браузера интерфейс, оффлайн-режим и необходимость в ручном обновлении.
  • Google Sheets — Было тупое, но быстрое решение через сторонний сервис. Я записывал все данные в конкретную таблицу. В результате, если кто-то заходил в приложение, то его сессия писалась в мою статистику.
  • Firebase —В итоге я пересел с G.Sheets и приложение получило честных сбор статистики и авторизацию.

Как вы запускались и искали первых пользователей?

Первым пользователем долгое время был я сам. Спустя N месяцев я был готов поделиться с теми, кто участвовал в марафоне. Потом я написал о приложении в личный Телеграм-канал. Сейчас пишу в Клуб. Получаются, что с каждым постом происходит микро-релиз на всё более широкую аудиторию (по экспоненте, кек)

Мне помогают подобные «дэмки» тем, что толкают моё эго на развитие приложения. Каждый раз я обнаруживаю недостатки и понимаю чего не хватает.

У меня сейчас не больше 30 уникальных пользователей, а их активность я пока не изучал.

С какими самыми неожиданными трудностями пришлось столкнуться?

База данных. Я фронтендер и слабо разбираюсь в этом. Был уверен, что мне нужен Postgres с Докером на своём сервере, но я не смог завести это трижды (!).

В итоге меня спас Гугловый Firebase. Кто-то скажет, что я сковал себя им, потому что это проприетарный NoSQL и бездушная машина по заработку. Но мне нравится, ведь я запустил сервак с БД и аутентификацией за вечер.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

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

Если говорить цинично, то это обошлось минимум в 60k рублей. Честно говоря, я впервые посчитал затраты через время * средняя ставка в час и удивился сумме. Протрезвляет, хотя я пока не чувствую убытков.

Планирую монетизировать приложение после запуска на Product Hunt. Но меня раздражают грубые пэйволы как у конкурентных приложений. Скорее всего оно и останется бесплатным по умолчанию.

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

Какие планы на будущее?

Идей куча, планов меньше, но уже есть бэклог с приоритетами.

Стоит сделать

  • Я делаю важную фичу — отображение статистики пользователя подобно тому, как это было в марафоне. Без этого таймер неполноценнен, потому что не показывает перспективы как это было в марафоне.
  • Также из накопленных данных уже можно делать прогнозы по практике. Это тоже было в таблице марафона.
  • Онбординг, который я пока делаю через чат в Телеграме.

Хочется сделать

  • Бот в телеге, который работает в связке с приложением и помогает закрепить ритуал.
  • Улучшения спирали прогресса, чтобы она стала более динамичной и отзывчивой.
  • Монетизация приложение чтобы развиваться и конкурировать.
  • 300 часов медитации в приложении. Иначе зачем оно вообще нужно?

Нужны ли какие-то советы или помощь Клуба?

Благодаря Клубу я уже нашёл первую аудиторию и партнёра (привет, Стас!).
Теперь мне интересны ваши мнения и идеи в общем. Например, что бы вы сделали иначе?

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

Спасибо за внимание!

Содержание

Снова ссылки

Приложение: https://pokoy.app
Код приложения: https://github.com/m0rtyn/pokoy
Канал проекта: https://t.me/pokoy_app

Связанные посты
12 комментариев 👇
Eugene Dmitrenko nmap -sV -sC -p- 159.89.196.106 1 декабря 2021

Вау! Круая идея. Мне кажется ее можно расширить, не привязывать только к медитации. Таиминг нужен много где.
Эта идея супер ложится на практику первых 5 (1,2,3 - в разных источниках разное) минут, когда предлагают решить делать задачу 5 мин, если не пойдет, то будет минимум 5 мин +, а если пойдет, то продолжаем дальше.

Про монетизация наверное можно ограничивать статистику (или давать ее только в платном), всякие скины, звуки и т.д.

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

@f0x1sland
Спасибо огромное за тёплые слова. Да, именно на преодоление первых шагов я и метил. Тоже думаю о расширении цели приложения под разные задачи.

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

классная идея! Захотел попробовать, но у меня на телефоне гаснет экран, когда я ничего не нажимаю, и соответсвенно не слышно звуков из приложения - можно ли это легко исправить?

Статистика - очень важная фича, без нее я бы не использовал твое приложение. + Я бы предпочел если бы был доступ к сырым данным в google sheets - авторизация же все равно через google.

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

@ArtMi, гаснущий экран это баг, но я считал, что он исправлен. По крайней мере я больше его не встречал. Какое у тебя устройство? Версия приложения 0.3.7?

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

@martyns0n, у меня Xiaomi mi 10t, Firefox. Не уверен как найти версию, но это же веб приложение, верно?

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

@ArtMi, в приложении версия прямо на экране снизу. Если нет, то скорее всего у тебя старый кэш и его нужно сбросить. После этого уже всё само будет обновляться до актуального состояния.

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

По поводу статов — согласен, мне их тоже нехватает сильно. Делаем.

По поводу выгрузки в Г.Шитс — в планах нет, но я даже не ресёрчил этот вопрос насчёт трудоёмкости. Добавил в бэклог, спасибо.

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

На самом деле канал проекта: https://t.me/pokoy_app

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

@Arthur
Спасибо, поправил

  Развернуть 1 комментарий
Андрей Борисенко Главный по фронтенду 31 августа 2022

@martyns0n на моем андроиде вёрстка полетела полностью. И функциональность из-за этого крайне не очень

Не знаю, как картинку с телефона прикрепить (

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

@Seigiard,

🤔 что-то новенькое. Уж на Андройде то все было ок. Можешь отправить скрин в телегу?

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

Похоже, что я сделал решение для крайне локальной проблемы 😅
Зато было весело.

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

😎

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

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


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