Введение
Если вы ведете несколько проектов одновременно, вы знаете проблему управления информацией. Мысль пришла в голову — записал куда-то. Через месяц пытаешься вспомнить: где это было? Сохранил в папке где-то на компьютере? В заметках телефона? В рабочем чате или личных сообщениях?
Если не нашел — идея ушла. Или осталась, но найти её — отдельный квест и потеря времени, которое хотелось бы потратить с пользой, а не на поиски.
Со мной так происходило постоянно. Статьи и доклады по учёбе, отчёты по работе, технические заметки по разрабатываемому ПО, ссылки на полезные ресурсы, голосовые идеи по дороге на работу, полезные фото — всё в разных местах, без структуры, без связей.
Изначально я пытался найти для себя идеальный инструмент. Notion, Obsidian, Evernote — ни один не решал мою задачу в комплексе: быстрый ввод заметок (текст, фото, ссылки, голосовые), их сохранение без потери контекста, а затем лёгкий поиск и установление связей между ними.
Поэтому я написал свою систему.
Статья — не «продажа курса» и не «уникальный продукт». Это описание того, как я решал свои задачи, какие решения принимал и что из этого вышло. Если вы тоже сталкивались с хаосом в заметках и теряли время на их поиск — возможно, этот опыт вам пригодится. .
Почему не взял готовое
Notion, Obsidian, Evernote и другие — у каждой системы есть сильные стороны. Но ни одна не давала мне нужного сочетания:
быстрый ввод (текст, фото, ссылка, голосовое сообщение)
трехуровневая визуализация
локальная транскрибация голосовых
веб-панель с графами
Поэтому я не выбирал, а делал своё, потому что хотелось пользоваться системой именно так, как удобно мне.
Концепция: три уровня визуализации
Большинство PKM-систем (Personal Knowledge Management или систем по управлению личными знаниями) предлагают либо простую структуру (папки/теги), либо граф связей (как в Obsidian). Мне захотелось сделать иерархию, которая отражала бы естественный процесс: сначала общий обзор, потом детали, потом связи и контекст.
Получилось три уровня:

1. Стратосфера — это уровень, где представлен обзор всех пространств (работа, учёба, личное, другое, плюс пользовательские). Это - самый верхний уровень, где видна вся картина ваших направлений деятельности. Как с орбиты — видно всю картину целиком.
2. Облако — это уровень с коллекциями (по сути это проекты относящиеся к конкретному пространству) внутри пространства. Например, в пространстве «Учёба» это могут быть:
«Подготовка доклада на конференцию»
«Изучение Python»
«Сдача экзамена по английскому»
Каждая коллекция объединяет всё, что относится к конкретной задаче в пространстве: текстовые заметки (конспекты, идеи), ссылки (статьи, документация, видео), фото (скриншоты, схемы) и цели (что именно нужно сделать).
Коллекция — это не просто папка, это полный контекст задачи. Зайдя в коллекцию «Подготовка доклада на конференцию», вы видите только то, что относится к докладу, и ничего лишнего.
На уровне «Облака» коллекции выглядят как интерактивные облака, каждое отдельное облако соединено с родительским пространством плавной кривой. Чем больше заметок в коллекции, тем крупнее облако. Их можно перетаскивать, позиции сохраняются. При клике на облако открывается следующий уровень — «Земля».
3. Земля — детальный граф заметок и целей внутри коллекции. Это уровень, на котором идеи обретают форму, виден полный контекст задачи. Заметки, ссылки, фото, голосовые сообщения — всё становится узлами графа. Цели выделены отдельно и связаны с заметками плавными кривыми Безье.
Цветовая индикация позволяет мгновенно определить тип сущности, не вчитываясь в текст:
Синий — обычная текстовая заметка
Фиолетовый — ссылка
Красный — фото
Зелёный — транскрибация голосового сообщения
Такая структура позволяет не перегружать экран: на каждом уровне ровно столько информации, сколько нужно для конкретного проекта. Я быстро переключаюсь между проектами, не теряю время на поиск и лучше контролирую свои задачи.
Архитектура: API + бот + воркеры
Сразу решил, что делать отдельное мобильное приложение на этапе MVP — долго. VK бот как интерфейс решил две задачи:
не нужно писать отдельное приложение под iOS и Android
пользователи уже в VK, не надо никуда переходить
Архитектура:
API сервер (FastAPI) — центральное ядро, работа с БД, выдача токенов, приём запросов от бота и веб-панели
VK бот (Python) — приём сообщений, отправка в API, показ клавиатур
Воркер (отдельный процесс) — только транскрибация голосовых
Разделение позволило запускать несколько воркеров для транскрибаций. База данных — SQLite. Да, PostgreSQL надёжнее и масштабируемее, но я делал систему для себя, под свою нагрузку. SQLite прост, не требует лишних движений, и если в будущем потребуется перейти на PostgreSQL — это не самая сложная миграция.
VK бот — это интерфейс для быстрых действий. Веб-панель — для глубокого анализа. Вместе они дают полноценный опыт без разработки приложения.
Выбор VK вместо Telegram — прагматичный. Изначально я делал под Telegram: удобное API, хорошая документация. Но в какой-то момент задумался о потенциальных блокировках. Telegram в РФ периодически замедляют, и сервис мог стать недоступным. VK с этой точки зрения надёжнее — аудитория там, инфраструктура своя.
Отдельное мобильное приложение я пока не планирую. Это отдельный большой проект, а на данном этапе VK бот закрывает 90% моих потребностей: быстро записать мысль, отправить голосовое, скинуть ссылку. Всё остальное — уже через браузер.
Голосовые заметки: транскрибация
Голосовые заметки появились из личной потребности: идеи приходят не только за компьютером. По дороге на работу, в пробке, перед сном — удобнее надиктовать, чем печатать. Надиктовал — заметка сохранилась, дальше возвращаешься к идее и приступаешь к анализу.
Я использую локальную транскрибацию. Данные никуда не уходят, всё работает на моём сервере.
Стек: faster-whisper — оптимизированная версия модели Whisper от OpenAI.
Как это выглядит технически:
Пользователь отправляет голосовое сообщение боту
Бот сохраняет аудио, ставит задачу в очередь (пользователь видит свою позицию — «вы 5-й в очереди»)
Воркер забирает задачу, транскрибирует аудио
Готовая текстовая заметка сохраняется в систему, пользователь получает уведомление
Про модель: сначала использовал faster-whisper small. Качество отличное, но один воркер потреблял ~1.5 GB RAM. После тестов перешёл на модель tiny: 300 MB RAM на воркер, качество чуть ниже, но для текстовых заметок — более чем достаточно.
На текущей конфигурации запущено 4 воркера. Стоит ограничение по длине аудиосообщения в 5 минут. В будущем лимиты можно увеличить.
Веб-панель: графы без фреймворков
Веб-интерфейс написан на чистом HTML/CSS/JS. Основные элементы:
Стратосфера. Пространства выглядят как интерактивные облака. Их можно перетаскивать, позиции сохраняются. При клике на облако — переход на уровень Облака.

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

Земля. Детальный граф заметок и целей внутри коллекции. Цветовое кодирование позволяет мгновенно определить тип сущности.

Цели на уровне «Земля». Каждая цель связана с конкретной заметкой отдельной кривой Безье. Не просто «есть связь», а визуально понятно, какая заметка привела к постановке цели. Плавные кривые делают граф читаемым даже при 20+ элементах.

Деплой и эксплуатация
Изначально система работала у меня локально. Собственный ноутбук, домашний сервер — всё меня устраивало. Но я хотел доступ к заметкам 24/7 с любого устройства. Выключать компьютер на ночь — и система недоступна. Решил поднять в облаке.
Сервер — ВМ в Яндекс.Облаке:
8 vCPU, 16 GB RAM
Ubuntu 22.04
Nginx + HTTPS (Let's Encrypt)
systemd для автозапуска и автовосстановления
Что можно было бы добавить (но не обязательно прямо сейчас)
Экспорты— для миграции из других систем
Redis для очереди — для работы под высокой нагрузкой
Мобильное приложение — для iOS и Android
Для текущих задач и текущей нагрузки перечисленного выше, на мой взгляд, достаточно.
Архитектура позволяет дорабатывать и масштабировать систему. Система создавалась для себя, под свои задачи. Эти задачи закрыты. Получившийся результат оказался стабильнее и удобнее, чем предполагалось изначально.
Текущей конфигурации сервера (8 vCPU, 16 GB RAM, 4 воркера) должно хватить для тестирования несколькими сотнями пользователей. При росте нагрузки план действий понятен: увеличить ресурсы, добавить воркеров, перейти на PostgreSQL. Код и структура базы данных это позволяют.
Система работает стабильно, остальное — по мере необходимости.
Как начать использовать
Всё работает в режиме открытого тестирования. Использование бесплатное.
VK сообщество: https://vk.com/club234411895
Бот: находится в сообществе. Нужно написать в группу — создастся личный приватный чат с ботом, и можно начинать пользоваться.
Веб-панель: https://ossapiens.com
Как войти в веб-панель:
Напишите боту команду: веб
Бот пришлёт уникальный токен доступа (токен хранится 7 дней, затем нужно получить новый). Токены захешированы для безопасности.
Перейдите на сайт https://ossapiens.com
Введите полученный токен
Готово — вы в системе
Немного про UX (как пользоваться)
1. Чтобы начать пользоваться системой, напишите боту «Начать». Далее можно пользоваться и ботом, и веб-интерфейсом, и тем и другим — как удобнее. Но есть нюанс: в боте вывод информации ограничен (например, нельзя посмотреть фото или прослушать ранее сохранённое аудиосообщение). Всё это доступно в веб-интерфейсе.
2. Меню бота:

3. В боте можно создавать заметки, цели, пространства, скидывать фото, ссылки и записывать аудиосообщения. Бот всё обработает и сохранит в нужное пространство.
Пример: вы сделали текстовую заметку в боте: «Нужно подготовить черновик статьи на Хабр». Бот вернёт предложение сохранить заметку с автоматическим определением пространства и коллекции.

Бот предложит варианты:
· автоматическое сохранение в предложенное пространство/коллекцию
· выбор другого пространства
· выбор другой коллекции
· ручной ввод в формате #пространство/коллекция
4. Для меня лично удобен формат, когда через бот я создаю заметки, скидываю фото, записываю голосовые, создаю пространства и коллекции, а дальнейшую работу с информацией произвожу в веб-интерфейсе. Чтобы перейти в веб-интерфейс, нужно написать боту команду веб. Бот пришлёт уникальный токен для входа на https://ossapiens.com.
5. При первом входе в систему вы окажетесь на странице «Дашборд». На этой странице собрана базовая статистика по вашей работе в системе.

6. В левой области интерфейса расположены основные вкладки: дашборд, заметки, цели, коллекции, статистика, экспорт. В нижней части левой области — вкладки: профиль, токен, настроить (для настройки отображения основных вкладок) и индикатор работы сервера.

7. Лайфхаки:
Перемещение объектов. На каждом уровне (Стратосфера, Облако, Земля) зажмите ЛКМ в любом свободном месте и переместите — вся группа сущностей переместится.
Переход внутрь. Однократное нажатие ЛКМ на сущность позволяет перейти на следующий уровень (для Стратосферы и Облака) или открыть окно с информацией (для Земли).
Перемещение сущности. Долгое нажатие ЛКМ на сущность позволяет переместить её в любое место рабочей области. Позиция сохраняется в localStorage.
Радиальное меню. Синий кружок в интерфейсе — раскрывающееся радиальное меню. Однократное нажатие — раскрытие списка функций. Долгое зажатие — перемещение кнопки в любое место. Нажатие ПКМ — сброс в дефолтную позицию. Функции меню: создать заметку, создать цель, создать пространство, на дашборд, быстрая статистика.

Навигация. Чтобы перейти в «Пространство», «Облако» или «Землю» - можно воспользоваться левым меню, для этого наведите на вкладку «Пространства» в левой области, далее нажмите на выпадающий список и выберите необходимый уровень. Или же воспользуйтесь быстрыми клавишами: «Cntrl+1» - для перехода на уровень «Стратосфера», «Cntrl+2» - для перехода на уровень «Облако». «Cntrl+3» - для перехода на уровень «Земля», я, например использую сочетания быстрых клавиш.

Заключение
Этот проект — не стартап. Это инструмент, который я сделал для себя, потому что готовые решения по управлению потоком личной информации не давали нужного сочетания функций.
Получившаяся система закрывает мои задачи:
Быстрый ввод заметок через бота (текст, ссылки, фото, голосовые)
Структурирование через веб-панель с трехуровневой визуализацией
Локальная транскрибация голосовых — данные не уходят в облако
Постановка целей и отслеживание прогресса
Граф связей между заметками и целями
Сейчас система в режиме открытого тестирования, использование бесплатное.
Ссылки:
Веб-панель: https://ossapiens.com
VK сообщество: https://vk.com/club234411895
Спасибо, что дочитали. Если материал окажется полезным и интересным — подготовлю отдельную статью про пользовательский опыт и особенности работы.
