Status: Archived Project (Proof of Concept)
Willow is a new-generation digital will platform. It was a concept for an "instrument of conscious departure," where a user could pre-configure what would happen to their data, assets, and digital messages when they are gone.
The project was frozen at the MVP (Minimum Viable Product) stage in 2024. This repository serves as an archive of the code and product research.
What happens to the mission, knowledge, and access to a project when its creator suddenly departs?
Imagine two friends. Let's call them Alex and Daniyar. An old co-working space, nights spent coding, one dream between them—to build "the one" project. And then Daniyar was gone. A car crash. Instantly...
A week later, Alex receives a new message on Telegram. His heart sinks. He opens it... and it's a scheduled message from his friend:
"Bro, if you're reading this, I messed up. Don't be mad at me. Listen, the password for our AWS is in my 1Password, master password is my dog's birthday, you know it. But that's not the main thing. Finish this damn project for me. Make sure we're known."
This fictional story highlights a real problem: digital assets, knowledge, and last words often disappear with the person. Willow was created to solve this.
Willow was conceived as a "quiet helper" that would activate when no one else could.
The platform was designed to let the user decide who to entrust with what:
- Bank accounts, crypto wallets
- Documents and access credentials
- Letters, photos, and videos for loved ones
- Instructions, wishes, and last wills
- Digital Vault: A secure place to store messages (text, photo, video) and credentials.
- Recipient Management: Ability to assign specific assets or messages to specific contacts (recipients).
- The "Liveness Check" Mechanic: The core feature of the MVP. The system automatically contacts the user (via Telegram Bot) at a user-defined interval (e.g., every 30 days) with a "Are you alive?" message.
- Automated "Dead Man's Switch":
- If the user responds, the timer resets.
- If the user fails to respond within a specified grace period (e.g., 7 days), the system assumes the worst.
- It then automatically executes the user's instructions: generating secure, time-limited (e.g., 24-hour) links to the files in S3 and sending them to the designated recipients via Telegram.
- Asynchronous & Reliable Delivery: Designed to use a message queue (RabbitMQ) to ensure that even with high load or system failures, the messages and instructions would be processed and delivered reliably.
The project was designed and partially implemented by me as the founder and backend architect.
- Backend: Java + Spring Boot (Spring Web, Spring Data, Spring Security)
- Database: PostgreSQL
- File Storage: AWS S3 (for storing user-uploaded photos, videos, and documents)
- Messaging & Real-time:
- Telegram API: Used for the "Liveness Check" and delivery of messages to recipients.
- RabbitMQ: Planned for handling asynchronous tasks, ensuring reliable message scheduling and delivery.
The system was designed as a monolithic Spring Boot application to handle all business logic, user management, vault processing, and external service integrations.
- PostgreSQL was chosen for its reliability and strong data integrity.
- AWS S3 was integrated for scalable and secure storage of encrypted user files.
- The Telegram Bot acted as the primary user interaction channel for the "dead man's switch."
- RabbitMQ was planned to decouple the core application from the notification/delivery logic, making the system resilient and scalable.
Currently, Willow is not in active development and is archived. The project was stopped at the MVP stage (core "liveness check" feature was in development).
The code and architectural decisions in this repository demonstrate my skills in backend development, complex system design, and solving real business problems. The project serves as a portfolio piece.
"I'm 17... and one of the [thoughts] that came to mind was death... I write a lot of notes in Obsidian, a whole lot... I think you could even create a psychological profile from these notes, because my soul is embedded in them... If I became successful and my life was cut short, I think a book could be made from these notes, an analogue of Marcus Aurelius's 'Meditations'...
The very fact that I've left something behind makes me calmer in the face of death... I would definitely use Willow and be sure that my thoughts, my desires, my most sincere words and farewell letters would reach my relatives in perfect order. And in that, there is peace."
During the idea validation phase, several fundamental barriers were identified:
- The Trust Problem: The key blocker. Users said: "Who will trust 'Joe Bloggs Inc.'?". A product storing the most sensitive data requires enormous social or state-level trust.
- The Security Problem: "Crypto exchanges also say they are secure." Convincing users that their data wouldn't be hacked over the next 45 years was a near-impossible task for a new startup.
- Narrow Target Audience: The hypothesis about the "middle generation" was confirmed, but this segment proved very narrow. "The younger generation... doesn't think about death... The older generation... will hardly appreciate such innovations."
- Lack of an "Acute Pain": Many did not see an urgent need. "You can always leave it on a piece of paper." The value was perceived as more emotional than practical.
Статус: Архивный проект (Proof of Concept)
Willow — это платформа цифрового завещания нового поколения. Это был концепт инструмента осознанного ухода, где пользователь мог заранее настроить, что произойдет с его данными, активами и цифровыми посланиями, когда его не станет.
Проект был заморожен на стадии MVP (Minimum Viable Product) в 2024 году. Этот репозиторий служит архивом кода и продуктовых исследований.
Что происходит с миссией, знаниями и доступом к проекту, когда его создатель внезапно уходит?
Представьте двух друзей. Назовем их Алекс и Данияр. Старый коворкинг, ночи напролет за кодом, одна мечта на двоих — построить "тот самый" проект. А потом Данияра не стало. Автокатастрофа. Мгновенно...
Через неделю Алексу приходит новое сообщение в телеграмм. Сердце уходит в пятки. Он открывает... а там отложенное сообщение от друга:
"Бро, если ты это читаешь, значит, я облажался. Не злись на меня. Слушай, пароль от нашего AWS лежит в моем 1Password, мастер-пароль — день рождения моей собаки, ты знаешь. Но это не главное. Закончи этот гребанный проект ради меня. Сделай так, чтобы о нас узнали."
Эта вымышленная история вскрывает реальную проблему: цифровые активы, знания и последние слова часто исчезают вместе с человеком. Willow создавался, чтобы решить эту проблему.
Willow задумывался как "тихий помощник", который сработает тогда, когда больше некому.
Платформа позволяла пользователю самому решать, кому и что доверить:
- Банковские счета, криптокошельки
- Документы и доступы
- Письма, фото и видео для близких
- Инструкции, желания и последнюю волю
- Цифровой сейф: Безопасное хранение сообщений (текст, фото, видео) и данных.
- Управление получателями: Возможность назначить конкретные активы или сообщения конкретным контактам (получателям).
- Механика "Проверки жизнедеятельности": Ключевая функция MVP. Система автоматически связывается с пользователем (через Telegram-бота) с заданным им интервалом (например, раз в 30 дней) с сообщением "Вы живы?".
- Автоматический "Переключатель мертвеца":
- Если пользователь отвечает, таймер сбрасывается.
- Если пользователь не отвечает в течение N дней (указанных им же), система считает, что "случилось худшее".
- Система автоматически выполняет инструкции: генерирует безопасные ссылки на S3 (с доступом на 24 часа) на загруженные файлы и отправляет их указанным контактам через Telegram.
- Асинхронная и надежная доставка: Проектировалось использование очереди сообщений (RabbitMQ) для гарантии, что даже при высокой нагрузке или сбоях, сообщения и инструкции будут надежно обработаны и доставлены.
Проект был спроектирован и частично реализован мной в качестве основателя и backend-архитектора.
- Backend: Java + Spring Boot (Spring Web, Spring Data, Spring Security)
- База данных: PostgreSQL
- Хранилище файлов: AWS S3 (для хранения загруженных пользователем фото, видео и документов)
- Сообщения и Real-time:
- Telegram API: Использовался для "проверки жизнедеятельности" и доставки сообщений получателям.
- RabbitMQ: Планировался для обработки асинхронных задач, гарантии надежности и планирования сообщений.
Система была спроектирована как монолитное приложение на базе Spring Boot, отвечающее за всю бизнес-логику, управление пользователями, обработку "сейфа" и интеграцию с внешними сервисами.
- PostgreSQL была выбрана за её надежность и поддержку целостности данных.
- AWS S3 был интегрирован для масштабируемого и безопасного хранения зашифрованных файлов пользователей.
- Telegram Bot выступал как основной канал взаимодействия с пользователем для "переключателя мертвеца".
- RabbitMQ планировался для разделения (decoupling) ядра приложения от логики уведомлений и доставки, делая систему отказоустойчивой и масштабируемой.
На данный момент проект Willow не находится в активной разработке и является архивным. Он был остановлен на стадии MVP (ключевая функция "проверки жизнедеятельности" была в разработке).
Код и архитектурные решения в этом репозитории демонстрируют мои навыки в backend-разработке, проектировании сложных систем и решении реальных бизнес-проблем. Проект служит в качестве портфолио.
"Мне 17 лет... и одной из [мыслей] в свое время стало мысль о смерти... Я пишу много заметок в obsidian, прям очень много... я думаю что по этим заметкам можно даже составить мой психологический портрет, ведь в них заложена моя душа... Если бы я стал успешным и моя жизнь оборвалась, я думаю по этим заметкам можно было сделать книгу, аналог книги Марка Аврелия, "Наедине с собой"...
Сам факт того, что я что-то оставил после себя делает меня спокойнее перед лицом смерти... я точно использовал бы willow и был бы уверен что мои мысли, мои желания, мои самые искренние слова и прощальные письма дойдут до родных в полном порядке. И в этом есть спокойствие."
На этапе проверки идеи (через опросы) были выявлены фундаментальные барьеры:
- Проблема Доверия: Ключевой стоппер. Пользователи прямо говорили: "Кто будет доверять ИП Васе Пупкину?". Продукт, хранящий самые чувствительные данные, требует огромного социального или государственного кредита доверия.
- Проблема Безопасности: "Криптобиржи тоже все говорят, что они безопасны". Убедить пользователей в том, что их данные не взломают в течение 45 лет, оказалось почти невыполнимой задачей для нового стартапа.
- Узкая ЦА: Гипотеза о "прослойке" подтвердилась, но эта прослойка оказалась очень узкой. "Молодое поколение... о смерти они не думают... Старшее поколение... такие инновации едва ли оценят".
- Отсутствие "Острой Боли": Многие не видели в этом острой необходимости. "Всегда можно оставить это на бумажке". Ценность была скорее эмоциональной, чем практической.
And here I am again. Writing yet another reflection on my second, currently unsuccessful project. Am I upset? No, not really. Yes, I've fallen flat on my face again, but look how I did it. This time, unlike my first project, TradeCo, I learned from past mistakes: I conducted a survey, created a landing page, and spent a long time perfecting its design.
However, at the crucial moment, an inner voice said: 'The idea is great and necessary, let's just build the MVP?'. And I listened. I meticulously worked on the MVP, striving to create interesting and logical features. The result was a good project in which I saw hope and meaning. I discussed this topic extensively with various people. Some spoke highly of it, others poorly. But I didn't listen. My internal ambition simply drowned out common sense.
During the CustDev phase, I received a lot of negativity: 'It's simply awful!', 'It's useless.' It was supposed to end in triumph, with me looking at the non-believers with a successful product and writing a story about it. Unfortunately, everything ended like this: an abandoned project on GitHub, burnout, and lost time.
Not all stories end successfully. This is not a fairy tale; it's the real world. In this world, there are no miracles; there is hope, but it is not boundless. But when this world consumes you and then spits you out, you gain a lesson. And so, face in the dirt again, I will continue to fall, and I will continue to try.
I spent a lot of "boring time" on this project—time I could have spent walking or having fun. Why? Because, as Adilet Zhaksybay, a Kazakh who worked at Google, once said: 'The path to success lies through boring time.'
И снова, я здесь. Пишу очередную рефлексию по второму, пока не удавшемуся проекту. Сказать, что я расстроен? Нет, не совсем. Да, я снова упал лицом в грязь, но зато как я это сделал. В этот раз, в отличие от моего первого проекта TradeCo, я учел прошлые ошибки: провел опрос, создал лендинговую страницу, долго работал над её дизайном.
Однако в ключевой момент внутренний голос сказал: «Идея крутая и нужная, давай реализуем MVP?». И я прислушался. Я кропотливо работал над MVP, стараясь создать интересные и логичные функции. В итоге получился хороший проект, в котором я видел надежду и смысл. Я много рассуждал на эту тему с разными людьми. Кто-то отзывался хорошо, кто-то очень плохо. Но я не слушал. Мои амбиции просто захлестнули здравый смысл.
Во время проведения CustDev я получил много негатива: «Это просто ужас!», «Это бесполезно». Должно было закончиться триумфом, когда я с успешным продуктом смотрю на тех, кто не верил, и пишу об этом историю. К сожалению, всё закончилось вот так: заброшенный проект в GitHub, выгорание и потерянное время.
Не все истории завершаются успехом. Это не сказка, а реальный мир. В этом мире нет чуда, есть надежда, но она не безмерна. Зато когда этот мир тебя ест, а затем выплёвывает, ты получаешь урок. Таким образом, снова лицом в грязь, я продолжу падать, продолжу пытаться.
За этим проектом я провел много скучного времени, которое мог бы потратить на прогулки и развлечения. Зачем? Потому что, как сказал Адилет Жаксыбай, казах, работавший в Google: «Путь к успеху лежит через скучное время».