Каталог функционала · имя выбрано: Liel

Liel — личный помощник в кармане

Всё, что обычно разбросано по десятку приложений — заметки, голосовые мысли, календарь, задачи и AI-собеседник — в одном месте. Наговорил на ходу → оно само распознало, разложило, напомнило и помогло спланировать.
Android → iOS · мобайл-first · русский голос как ядро · RuStore + рубли · AI на мобиле
📊 Сложность: S ≈ 1–3 дня M ≈ 1–2 нед L ≈ 3–6 нед (оценка с Claude Code, малая команда) 🎯 Приоритет: MVP v2 v3 🔌 интеграция = зависит от внешнего API/устройства ♻️ из EventBot = переиспользуем готовый код
Стартовый набор · первый запуск

MVP-1 — что делаем изначально

То, что проговорил заказчик + обязательное из конкурентов. Остальное (разделы ниже с бейджами v2/v3) насыщаем потом.

📝 Заметки

Текст + голосовая диктовка (multi-provider STT, пакетный режим), теги, цвета, поиск, прикреплённое аудио.

MVP-1

✅ Задачи

Плоский список, заметка→задача в один тап, Quick Add с распознаванием дат из текста (Todoist).

MVP-1

🗓️ Календарь

Сетка месяц/неделя/день, события, дедлайны задач на ленте.

MVP-1

🔔 Напоминания

Push, несколько на событие, повторяющиеся, настойчивые (повтор пока не отметишь — TickTick).

MVP-1

🔁 Импорт

Google Calendar (2-сторонний) + дни рождения из контактов (наша фишка).

MVP-1

🤖 AI-чат на мобиле

Диалог, история, multi-provider LLM — отрыв от SingularityApp (у них AI только десктоп). Код в MVP, но включается при появлении бюджета (OpenAI/Anthropic — денег пока нет). STT при этом работает (AssemblyAI free).

MVP-1 (код)вкл. позже

🔐 База

Вход (Supabase + OAuth Google/Yandex + email), новый дизайн, тёмная/светлая тема.

MVP-1

💻 Десктоп-аналог (100%)

Тот же веб-UI открывается на компьютере в браузере + ставится как PWA (иконка, отдельное окно). Полный функционал, адаптивная раскладка под мышь. Синхрон с телефоном автоматический. Микрофон/камера на компе работают; контакты — только телефон.

MVP-1≈бесплатно из архитектуры
Отложено на v2+: CalDAV/iCal, Telegram-бот, email-in, виджеты, гео-напоминания, голос→несколько задач, проактивный план дня, привычки/канбан/помодоро, OCR, монетизация/RuStore.
01

Основной функционал (ядро)

То, без чего продукта нет. «Скелет», на который навешивается всё остальное.

Ядро Liel — четыре связанные сущности: заметка → задача → событие в календаре → напоминание, и сквозной AI, который их видит. Главная фишка — захват голосом и мгновенное превращение мысли в действие.

📝 Заметки (текст + голос)

Ручной ввод и голосовая диктовка с авто-распознаванием. Заметка — первоклассная сущность: теги, цвет, поиск, прикреплённое аудио. Быстрый «инбокс для мыслей» без трения.

MMVPиз EventBot

🎙️ Голос → текст (русский STT)

Надиктовал — система распознала и сохранила. Русский язык как приоритет. У нас уже отлажен pipeline запись→распознавание (AssemblyAI, voice_texter, EventBot).

SMVPиз EventBot

✅ Заметка → задача в один тап

Из любой заметки сразу делается задача с переносом метаданных (дата, напоминание, теги). Ведётся плоский список задач. Это ядро ценности — мысль не теряется, а становится действием.

MMVP

🗓️ Свой календарь

Виды месяц / неделя / день. Туда кладутся события, дедлайны задач, дни рождения. Это «лицо» приложения — единая лента жизни. Пишем с нуля (в EventBot только timeline-список).

LMVP

🔔 Активные напоминания

Push, которые «долбают по делу»: несколько на событие, повторяющиеся, настойчивые (повтор пока не отметишь). Движок планировщика + FCM-доставка уже готовы.

MMVPиз EventBot

🤖 AI-ассистент (чат)

Диалог с LLM прямо в приложении. Видит контекст всех заметок/задач/календаря, помогает планировать, формулировать, разбивать задачи. Подключаем доступную модель (OpenAI / YandexGPT / GigaChat).

MMVPиз EventBot
02

Как всё попадает внутрь (каналы захвата)

Самое важное практически: мысль/задача должна влетать в приложение без боли, в один-два тапа.

Конкуренты выигрывают именно на скорости захвата (Todoist Quick Add, Keep-виджет, Telegram-бот SingularityApp). Чем ниже трение — тем выше удержание.

🎙️ Голос (главный канал)

Кнопка/виджет → говоришь → текст. Plus hands-free сценарий «за рулём». Нативный STT, не плагин ОС (урок Amplenote: плагины отваливаются).

SMVPиз EventBot

⌨️ Быстрый ввод (Quick Add)

Естественный язык: «отчёт в пятницу в 16:00 #работа» → задача с датой, временем, тегом. Золотой стандарт Todoist — забрать.

MMVP

📲 Виджет на главный экран

Захват заметки/голоса в один тап с рабочего стола, не открывая приложение (Keep, Singularity, Я.Календарь). Reflect — даже с экрана блокировки.

Mv2

💬 Telegram-бот

Кинул сообщение боту → задача/заметка. Первая строка = название, //проект #тег в тексте, парсинг дат, пересылка с форматированием, вложения, ответ-ссылкой. У нас есть grammy из EventBot.

Mv2из EventBot

📧 Email-in

Переслал письмо на свой личный адрес → оно встало заметкой/задачей. Удобно для «сохранить на потом».

Mv3

🔗 «Поделиться → Liel»

Шаринг из любого приложения (ссылка, текст, фото) прямо в заметку. Нативный share-target Capacitor.

Sv2

📸 Фото / скан → текст (OCR)

Сфоткал доску/записку/визитку → текст в заметку. Вторая волна, но сильный канал.

Mv3
03

Календарь и напоминания (детально)

Свой календарь — то, чего просил пользователь в первую очередь: «он меня будет постоянно информировать, долбать».

Важно: в EventBot готового календарного компонента нет (только лента событий). Календарь и импорт внешних источников — главная часть, которую пишем с нуля. Зато движок напоминаний (тики, интервалы, дедуп) и push-доставка (FCM) переиспользуются.

📅 Сетка месяц / неделя / день

Полноценный визуальный календарь с событиями, перетаскиванием, цветами категорий. Ядро экрана.

LMVP

🔁 Импорт Google Calendar

Двусторонняя синхронизация с Google-календарём — события оттуда видны и редактируются у нас (как Singularity/TickTick).

MинтеграцияMVP

🌐 CalDAV / iCal (ICS)

Один протокол CalDAV покрывает Apple Calendar и Яндекс.Календарь; подписка на ICS-ссылки read-only (как WEEEK).

Mинтеграцияv2

🎂 Дни рождения из контактов

Импорт контактов телефона → дни рождения автоматически в календарь с ежегодным напоминанием. Этого почти ни у кого нет — наша фишка. У EventBot уже есть нативный плагин контактов.

MMVPиз EventBot

🔔 Множественные напоминания

До нескольких напоминаний на одно событие/задачу + режим будильника (Singularity: до 5).

SMVPиз EventBot

📣 «Настойчивые» напоминания

Алерт повторяется, пока не отметишь выполнение или не отложишь (фирменная фича TickTick Effective Reminders). Прямо под запрос «долбать».

Sv2

📍 Гео-напоминания

«Напомни у места» (Singularity это умеет, а Keep свои убрал в конце 2025 → свободная ниша). Geolocation-плагин уже в EventBot.

Mv3

🔂 Повторяющиеся события

Сложные повторы («каждую 3-ю пятницу месяца»), как у Todoist. Парсинг из естественного языка.

Mv2

🌍 Часовой пояс события

ТЗ события не привязан жёстко к телефону (фишка Я.Календаря для путешественников).

Sv3
04

AI-ассистент

Не просто чат, а помощник, который видит весь твой контекст и проактивно помогает. Здесь наша главная точка отрыва от РФ-конкурентов.

Дыра конкурента: у SingularityApp (лидер РФ) AI-ассистент работает только на десктопе/вебе — на мобиле его НЕТ. Todoist показал, что именно мобильный голос+AI конвертит в платящих (после запуска Ramble апгрейды выросли ×5). Это и есть незанятая клетка: умный AI + русский голос на мобиле.

💬 Чат с моделью НА МОБИЛЕ

Полноценный диалог в приложении. Подключаем доступную модель: OpenAI если есть токены, иначе YandexGPT/GigaChat (рублёвая оплата, работают в РФ). История диалога сохраняется в БД.

MMVPиз EventBot

🗣️ Голос → несколько задач сразу

Наговорил сумбурно поток мыслей → AI разложил на отдельные задачи с датами/приоритетами (Todoist Ramble, Keep I/O 2026, Mem Voice Mode). Правка голосом на лету: «нет, я имел в виду…», «удали», «это всё».

Mv2

🌅 Проактивный план дня

Утром AI сам сканирует задачи/календарь/заметки и предлагает план: что срочно, где «дыры», какие quick wins (паттерн Saner.AI). Сильный повод для пуша и удержания.

Mv2

🪄 Разбивка и переформулировка задач

«Сделать сайт» → AI бьёт на подзадачи и переписывает в actionable-вид, предлагает время с учётом занятых слотов (Saner Skai, Todoist Task Assist, Singularity).

Sv2

🔎 Спроси свою память

«Что я записывал про проект X?», «когда я last говорил с Петром?» — AI ищет по всем заметкам и отвечает (chat-with-notes, Reflect/Mem). RAG-контекст уже есть в EventBot.

Mv3из EventBot

⚙️ Выбор провайдера + лимиты

Абстракция над LLM: OpenAI / YandexGPT / GigaChat / Anthropic переключаемы. Дневные лимиты токенов на free-тарифе (драйвер апгрейда). Лог расхода уже есть.
Частично (18.06): выбор моделей OpenAI по типам задач + свой ключ задеплоены (см. «🤖 ИИ и модели»). Смена провайдера (Yandex/GigaChat) и дневные лимиты — позже.

SMVPиз EventBot
ИДЕЯ

🛰️ Личный агент-исполнитель — 2 варианта

Вариант А (пульт к ПК): команды с телефона → сервер-РЕЛЕ → Claude Code на ПК владельца (тот же, что в VS Code, с реальным проектом) → лента прогресса в Liel. Комп должен быть включён. Денег не надо (текущая подписка Claude Code), VPN на ПК как есть, сервер-реле любой.
Вариант Б (агент на сервере): отдельный headless Claude Agent SDK, работает 24/7 без ПК. Нужен ключ+бюджет Anthropic и настройка доступа к проектам. Здесь LV полезен (EU IP → Anthropic напрямую).
Единый agent-gateway для Liel И Telegram-бота — Liel как надёжная замена нестабильной телеге.

Lv3
05

Дополнительные блоки (навешиваемое)

Модули поверх ядра — широта без перегрузки главного экрана. Собрано широко, чтобы видеть масштаб.

🏷️ Теги, цвета, папки

Организация заметок и задач: метки через #, цветовая кодировка, быстрый полнотекстовый поиск (Keep).

SMVP

☑️ Чек-листы / списки покупок

Внутри заметки — пункты с галочками, списки покупок (Keep, LeaderTask).

Sv2

🔁 Привычки и серии (streak)

Лёгкие трекеры привычек с напоминаниями и сериями (TickTick). Геймификация удержания.

Mv3

📌 Канбан-доска

Альтернативный вид задач — доска со статусами (Singularity, LeaderTask, WEEEK). Для тех, кто мыслит колонками.

Mv3

🍅 Помодоро / фокус

Таймер фокуса, привязанный к задаче (TickTick).

Sv3

🔗 Шаринг заметки / задачи

Поделиться заметкой или списком по ссылке (read-only или совместно).

Mv3

🌗 Тёмная тема

Светлая/тёмная тема с переключателем. Дизайн-токены и dark mode переносим из EventBot целиком.

SMVPиз EventBot

⌚ Wear OS / часы

Захват голосом и просмотр задач с умных часов (Singularity, TickTick, Keep).

Lv3

📥 Импорт из Notion / Todoist / Trello

Миграция заметок и задач из других приложений по API — чтобы перебежчику было легко зайти (WEEEK).

Mv3

🗂️ Вложенные заметки / база знаний

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

❌ Отказались (2026-06-17): противоречит сути Lielo (инбокс + разнос, а не вики/дерево). Контейнер для длинного — сфера/цель.

🔐 Биометрический вход

Face ID / отпечаток на вход + PIN на приложение. Рабочий паттерн биометрии уже есть в EventBot.

Sv2из EventBot

📎 Вложения к заметкам

Фото, файлы, аудио прямо в заметке (S3-хранилище). Загрузка файлов уже есть в EventBot.

Sv2из EventBot
06

Свободная клетка рынка (наша дифференциация)

Что в РФ пока никто не закрывает разом — туда и бьём.

Главный вывод обследования: ни один продукт в РФ не объединяет одновременно качественный русский STT + полноценный AI-чат на мобиле + календарь с импортом + заметка→задача + рублёвую оплату. Каждый закрывает часть.

СВОБОДНО

🎙️ Русский голос как ядро на мобиле

Не системный распознаватель «как получится», а заточенный pipeline. У мелких RuStore-блокнотов нет AI, у Singularity голос «иногда не слышит» и без LLM-разбора.

SMVP
СВОБОДНО

🤖 AI-чат именно на телефоне

У лидера РФ (Singularity) AI только десктоп. Мы выходим с мобильным AI + голосом — прямое отличие, которое видно сразу.

MMVP
СВОБОДНО

🎂 Импорт контактов и дней рождения

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

MMVP
СВОБОДНО

💳 Рублёвая оплата + RuStore

Todoist/TickTick/Notion из РФ нормально не оплатить. Публикация в RuStore + оплата в рублях/СБП — само по себе преимущество.

SMVP
СВОБОДНО

🌅 Проактивный «секретарь»

AI, который сам утром приносит план дня и напоминает — работает, даже когда ты не открыл приложение (Saner.AI, но на русском и в РФ).

Mv2
ПОДСМОТРЕНО

🧩 Один поток речи → разные заметки

Наговорил вперемешку (покупки + идея + задача) → AI сам разложил на отдельные структуры (Keep I/O 2026, Mem). Вау-момент.

Mv2
Честно про риск: Яндекс (Алиса) и SingularityApp двигаются в эту сторону быстро — Алиса получила голос в апреле 2026, Singularity запустил AI в декабре 2025. Окно есть, но сужается. Не воевать с ними по ширине (Гант, команды) — бить точечно в мобильный голос+AI.
07

Конкуренты: мобильность, магазины, что забрать

Проверено — кто реально в мобиле и в RuStore, а кто только веб/десктоп.

📱 Мобильность и магазины

ПриложениеМоб. прил.RuStoreGoogle PlayApp StoreРейтингОплата из РФ
SingularityApp (РФ)да (Android/iOS/Wear/Аврора)да · 100k+ · 4.8★да 4.7★да 4.7★4.7–4.8★рубли, реестр РФ ПО
LeaderTask (РФ)да (Android/iOS)да · 10k+ · 4.2★дада4.2★рубли, реестр РФ ПО
WEEEK (РФ)да (Android/iOS)да · 84 отз.дадарубли
Яндекс Календарьда (отдельное)да · 3.4★дада3.4★ (ругают за базовость)да
Яндекс Заметкинет отдельного — внутри Я.Диска/браузерачерез Я.Дискчерез Я.Дискчерез Я.Дискда
Алиса AI (Яндекс)дада · 5246 отз.дадавысокийда
TickTickдада · 10k+ · 4.8★дада4.8★РФ-карта не проходит
Todoistданетда 50M+давысокийРФ-карты не принимают
Google Keepда (Android/iOS/Wear)нетдадавысокийбесплатно; AI-голос только US
Saner.AIда (iOS/Android/Mac/Chrome)нетдадаbetaвалюта, не локализован
Reflectда (iOS/Android/Watch)нетдадавалюта
Mem.aiтолько iOS (Android нет)нетнетдавалюта
Amplenoteда (iOS/Android)нетдадавысокийвалюта; голос отваливается
Нишевые РФ-блокноты в RuStore (прямые мелкие конкуренты по «голос+заметки+планер», но без AI): «Ежедневник, список дел, планер», Yourgood.Planner (4.5★), «Голосовые заметки», «Голосовой блокнот речь в текст» (использует Google-распознаватель → зависимость). Полноценного «заметки голосом + ИИ + календарь» в одном RuStore-приложении, кроме SingularityApp, нет.

🎯 Что забрать у каждого

SingularityApp

  • Голос → задача с парсингом даты/проекта/тегов из речи
  • Telegram-бот: 1-я строка=название, //проект #тег, вложения, ответ-ссылка — забрать целиком
  • Email-in, до 5 напоминаний, гео-уведомления
  • 2-сторонняя синхр. Google Calendar; виджеты
  • Триал 14 дней без карты
  • Их слабость: AI только десктоп, голос «не слышит»

Todoist

  • Quick Add на естественном языке — эталон ввода
  • Ramble: свободная речь → AI вытягивает задачи+даты+приоритеты (38 языков, русский есть), правка голосом на лету
  • Email Assist — задачи из письма
  • Сложные повторы «каждую 3-ю пятницу»

TickTick

  • Effective Reminders — настойчивые повторные алерты (must)
  • Множество каналов захвата (виджет/голос/email)
  • Privacy-нарратив «данные не уходят третьим»
  • Pomodoro, привычки, Wear OS

Google Keep

  • Аудиозаметка + автотранскрипция + поиск по транскрипту
  • Голосовая заметка прямо в виджете (один тап)
  • Один поток речи → несколько заметок по темам (I/O 2026)
  • Цветовая кодировка, метки

Saner.AI

  • Проактивный план дня утром + чек-ины
  • Chat-first: «перенеси сессию на 16:00» → правит календарь
  • Voice capture виджет — мысль в ноль шагов
  • Чёткое нишевое позиционирование (ADHD)

LeaderTask / WEEEK / Reflect

  • LeaderTask: задача и заметка — единая сущность (статус «Заметка»); сильный офлайн
  • WEEEK: импорт календарей по CalDAV (Apple/Яндекс), AI-генерация текста дока
  • Reflect: STT на Whisper, запись голоса с lock-screen виджета
Урок Amplenote (антипример): нет нативного голоса, только OS-диктовка/плагин со своим OpenAI-ключом, на Android микрофон отваливается при сворачивании. Вывод: нативный STT обязателен, не перекладывать на ОС/плагины.
08

Цены конкурентов

Сколько стоят подписки и где проходит граница free/платно. Ориентир для нашего ценообразования.

ПриложениеБесплатноПлатно (основной тариф)Валюта / оплата из РФ
SingularityApp (РФ)Basic 0 ₽ (база, ≤10 проектов)Pro ~209 ₽/мес (год) · 249 ₽ помес.; Elite ~250–299 ₽/мес. Триал 14 дн Elite без картырубли
WEEEK (РФ)Старт 0 ₽ (до 5 чел, 7 проектов)Lite 199 ₽/мес · Pro 399 ₽/мес (за пользователя)рубли
LeaderTask (РФ)есть (как записная книжка)личный ~от 249 ₽/мес; команда ~от 1600 ₽/мес за 5 чел (уточнить)рубли
Яндекс (Заметки/Календарь/Алиса)бесплатнопродвинутая Алиса — в подписке Яндекс Плюсрубли
TodoistFree (5 проектов)Pro $4/мес (год) · $5 помес.; Business $6/месРФ-карты не принимаются
TickTickFree (≤9 списков)Premium ~$35.99/год (~$3/мес); через посредников ~870 ₽/меспрямая РФ-оплата не проходит
NotionFree (личное)Plus ~$10/мес + AI-доплата сверхуоплата из РФ затруднена
Reflectнет (триал)~$10/мес ($120/год)валюта
Mem.aiограниченно~$8–15/месвалюта
AmplenoteFree~$6–12/месвалюта
Google Keepполностью бесплатнобесплатно
Вывод для нас: РФ-сегмент держит планку 200–400 ₽/мес; западные дешевле в валюте ($3–10), но из РФ их нормально не оплатить. Наш ориентир — 200–300 ₽/мес, рубли + RuStore/СБП. AI и голос свыше лимита — главный драйвер апгрейда (модель «N AI-сессий/мес» на free, как у Todoist Ramble: 10 сессий → апгрейды ×5).

⚠️ Цены в рублях для западных сервисов — это предложения посредников, не официальные тарифы. Долларовые цены и тарифы LeaderTask требуют финальной сверки на сайтах перед фиксацией.

09

Архитектура и переиспользование

Берём ~80% стека из EventBot/Planoria. Что готово, что пишем с нуля.

📐 Развилка: online-first сейчас, offline потом

Решение (зафиксировано с заказчиком): стартуем online-first thin-wrapper, как EventBot — UI грузится с сервера, правки прилетают мгновенно через git push, без пересборки APK. Так быстрее отлаживать, а пользоваться пока будет один человек дома с Wi-Fi.
Trade-off (честно): без сети приложение почти не работает — ключевой сценарий «наговорил мысль в метро без интернета» так не закрывается. Узкий offline-захват (заметка/голос → локальная очередь → синк при сети) добавим малой кровью. Полный offline-first (всё живёт локально, SQLite) — значимая переделка слоя данных, на потом. Чтобы переход был дешёвым, API и работа с заметками с самого начала проектируются так, чтобы локальный стор можно было «подсунуть» без ломки.

💻 Десктоп = тот же UI (100% аналог)

Получается почти бесплатно из online-first: UI — это веб-приложение, поэтому одновременно живёт в APK на телефоне, в браузере на ПК и как PWA (иконка на рабочем столе, отдельное окно). Не вторая разработка — тот же код с адаптивной раскладкой (телефон: floating-навигация; ПК: боковая панель, мышь, шорткаты). Синхрон телефон↔ПК автоматический (общая БД, один аккаунт).

✅ Что работает и на ПК

  • Все заметки/задачи/календарь/AI — полностью
  • Голосовая диктовка (микрофон через Web API)
  • Фото/камера, загрузка файлов, drag-drop
  • Уведомления (Web Push в браузере)

📵 Только телефон (на ПК fallback)

  • Контакты → дни рождения (на ПК — импорт Google/файл)
  • Гео-напоминания (нет GPS на десктопе)
  • Нативный share-target, биометрия
  • Push через FCM (на ПК — Web Push)

Опционально позже — настоящий .exe через Tauri поверх того же UI (как Capacitor для мобайла). Аутентификация — как в EventBot/Planoria: Supabase + OAuth (Google/Yandex/email) + OTP, один аккаунт на всех устройствах.

🧱 Стек (монорепо pnpm, как EventBot)

СлойТехнологияСтатус
Фронт apps/webReact 18 + Vite 6 + TypeScript + Tailwind 3 + react-queryиз EventBot
Бэкенд apps/apiFastify 5 + Drizzle ORM + tsx + postgresиз EventBot
Мобайл apps/mobileCapacitor 6 thin-wrapper (новый appId, новый keystore)из EventBot
БДshared Supabase, новый префикс liel_*паттерн из EventBot
ХостингBeget VPS Docker + nginx-роутингпаттерн платформы

♻️ Что готово / что писать

✅ Переиспользуем из EventBot

  • Голос: VoiceRecorder.tsx + transcribeViaAssemblyAI (русский) — почти 1:1
  • AI-чат + persistent history + лог токенов
  • Движок напоминаний scheduler.ts + push (FCM)
  • Auth: Supabase + OAuth + OTP + Capacitor-bounce
  • Дизайн-токены + UI-kit + тёмная тема
  • Биометрия, контакты (нативный плагин), вложения (S3)
  • APK-обёртка + GitHub Actions релиз + /download QR

✍️ Пишем с нуля

  • Визуальный календарь (сетка месяц/неделя/день) — в EventBot нет
  • Импорт внешних календарей (Google / iCal-ICS / CalDAV) — в EventBot нет вообще
  • Плоский task-list — отвязать задачи от иерархии проект→этап
  • Quick Add c natural-language парсингом дат
  • Дни рождения из контактов → события
Тех-долг/идея: стартовый шаблон из EventBot (auth + дизайн + Capacitor-обёртка + CI) переиспользуется уже в 3-й раз — просится в отдельный boilerplate-репозиторий, чтобы следующий проект поднимать за час.
10

Технологии (ключевые узлы)

Чем именно делать голос, импорт календарей и push.

🎙️ STT — пул провайдеров с failover

Не один провайдер, а несколько за единым интерфейсом «аудио→текст»: AssemblyAI universal-2 (ru), OpenAI Whisper, Yandex SpeechKit (рубли/РФ), Vosk (офлайн). Один упал/медленный → авто-переключение на следующего (failover + circuit breaker). Роутинг по скорости/цене/качеству русского. В EventBot уже есть 2 провайдера — дорастить до failover. Сейчас тестируем на AssemblyAI (free) + Whisper.

MMVPиз EventBot

🤖 LLM-провайдер

Абстракция над моделью (OpenAI / Anthropic / YandexGPT / GigaChat — переключаемы). Статус: бюджета нет ни на OpenAI, ни на Anthropic — поэтому AI-чат и агент-канал на старте выключены (graceful degradation, как в EventBot). Код и gateway закладываем «спящими», включаем при бюджете. STT при этом работает на бесплатных кредитах AssemblyAI.

Sv2 (вкл. при бюджете)

📅 Импорт календарей

Google Calendar API (OAuth) для 2-сторонней синхр.; CalDAV для Apple/Яндекс; парсинг iCal/ICS для подписок read-only. Контакты — нативный плагин Capacitor (есть в EventBot).

Mинтеграция

🔔 Push-уведомления

Firebase Cloud Messaging + @capacitor/push-notifications + планировщик scheduler.ts (тики, интервалы, дедуп, TTL-лок вместо advisory). Готово к переносу.

SMVPиз EventBot

🗓️ Календарный UI

Своя сетка либо лёгкая библиотека (без тяжёлых зависимостей). Раздуть APK нельзя — держим bundle компактным (урок ML Kit: 6→16 МБ → Play Protect подвисал).

LMVP

📱 Capacitor — известные грабли

Плагины только через window.Capacitor.Plugins (не dynamic import — зависает); OAuth через Browser.open(); versionCode по семвер-формуле (>10⁷ ломает установщик); сразу редирект //login в APK (не показывать лендинг).

из EventBot
11

Монетизация

Freemium с рублёвой оплатой. AI и голос — драйверы апгрейда.

🆓 Free

Заметки, задачи, календарь, напоминания, базовый голос — бесплатно. Лимит на AI-сессии/минуты диктовки в месяц. Триал полного функционала без карты (как Singularity 14 дн).

MVP

💎 Premium (~200–300 ₽/мес)

Безлимитный AI-чат и голос, проактивный план дня, импорт всех календарей, гео-напоминания, виджеты. Оплата в рублях через RuStore/СБП.

v2

📈 Драйвер апгрейда — AI

Todoist: после голос-AI (Ramble, 10 free-сессий/мес) апгрейды выросли ×5. Голос+AI реально конвертит — лимитируем именно их на free.

стратегия

💳 Рублёвая оплата = преимущество

Конкуренты-западники из РФ не оплачиваются. RuStore + реестр РФ ПО (как Singularity/LeaderTask) — структурное преимущество, не фича.

MVP

🔋 Cost control

Дневные лимиты токенов per-user (есть в EventBot), дешёвые модели (mini/nano) на массовых операциях, дорогие — только на премиуме. STT-минуты тоже лимитируются.

Sиз EventBot

🪙 На будущее

Внутренние кредиты под AI-расход (модель Singularity SPC) — гибкая оплата тяжёлых операций сверх тарифа.

v3
12

Масштабирование и нагрузка

Потянет ли стек 1 000 → 10 000 пользователей, особенно обработку аудио. Где узко, что закладываем сразу.

Ключевой факт: распознавание речи происходит не на нашем сервере, а в облаке провайдера (AssemblyAI / Yandex SpeechKit). Наш бэкенд только принимает аудио, проксирует провайдеру и ждёт текст. Значит наше узкое место — не CPU/ML, а сеть, стоимость API и способ ожидания ответа. Это сильно упрощает масштабирование.

📊 Вердикт по нагрузке

МасштабСам стек (Fastify+PG+React)Что обязательно поменять
1 000 юзеровпотянет с запасом — для Node+Postgres это малосъехать с общего Beget VPS (1.9 ГБ/1 CPU, уже забит платформой) на отдельный сервер
10 000 юзеровархитектурно ок (stateless API + Postgres тянет легко)отдельная БД (не shared Supabase), очередь для STT, 2+ инстанса API за nginx, лимиты на free
Главное: язык и фреймворк (Node/Fastify, React, Postgres) менять не нужно — 10k пользователей это малый/средний масштаб, на этом стеке работают продукты с цифрами на порядок больше. Переписывать на Go/Rust ради 10k — преждевременная оптимизация. Узкое место — инфраструктура и паттерны, а не технология.

🔍 Где реально узко (по компонентам)

🖥️ Общий Beget VPS — узкое место №1

1.9 ГБ RAM / 1 CPU, и там уже живёт вся платформа (Dashboard, Kwork, Lead-Hunter, nginx…). Для отдельного продукта на тысячи юзеров — мало. Решение простое: отдельный VPS под Liel (вертикальный апгрейд дёшев), позже — 2+ инстанса API.

решаемо деньгами

🎙️ Синхронный polling STT — узкое место №2

Сейчас (как в EventBot) запрос «транскрибируй» держит HTTP-соединение открытым до 90 сек, пока опрашивает провайдера. На пике из сотен одновременных диктовок это копит «висящие» запросы. Решение: очередь задач (Redis + worker): загрузил аудио → задача в очередь → ответ приходит push/SSE. У нас уже есть этот паттерн в Lead-Hunter (Dramatiq+Redis).

заложить рано

🗄️ Shared Supabase — узкое место №3

Все сервисы платформы делят один Postgres. Сам PG 10k юзеров не замечает, но общий пул соединений и общий ресурс — риск «сосед мешает соседу». Решение: отдельный проект/инстанс БД под Liel + настроенный pgbouncer.

изоляция

💰 Стоимость STT — узкое место экономическое

Не производительность, а деньги: тысячи юзеров × минуты диктовки. AssemblyAI ~$0.12–0.37/час, SpeechKit — рублёвый и дешевле для РФ. На масштабе это аргумент перейти на Yandex SpeechKit (рубли, серверы РФ) и жёстко лимитировать free-минуты.

cost control

✅ API Fastify — НЕ узкое место

Stateless, масштабируется горизонтально: добавил инстанс за nginx — и всё. Event-loop Node хорошо держит I/O-bound прокси к STT/LLM.

ок

✅ Планировщик напоминаний — почти ок

Singleton с TTL-локом (урок EventBot: pg_advisory через pgbouncer течёт). При нескольких инстансах лок гарантирует, что тикает один. На 10k×напоминаний — следить за размером выборки на тик, бить на батчи.

учтено

✅ Отдача UI (thin-wrapper) — НЕ узкое

Статика фронта раздаётся nginx и кешируется CDN-style. Дёшево даже на пике.

ок

📦 Хранилище аудио (S3)

Если храним исходники голосовых заметок — объём растёт (10k активных = десятки/сотни ГБ). Beget S3 тянет, но закладываем TTL/архивацию старых аудио и хранение только текста по умолчанию.

политика хранения

🧰 Что заложить сразу (дёшево сейчас, дорого потом)

1. Очередь задач для STT/AI

Redis + worker (BullMQ для Node, либо Dramatiq как в Lead-Hunter). Снимает риск «висящих» запросов, сглаживает пики, даёт ретраи. Заложить в архитектуру с первого дня — переделывать потом дорого.

сразу

2. Отдельная БД и сервер

Не садиться на shared Supabase/Beget. Свой Postgres + свой VPS под Liel: изоляция нагрузки, данных и возможность апгрейда независимо от платформы.

сразу

3. Multi-provider STT с failover

Не привязка к одному: единый интерфейс «аудио→текст» + пул (AssemblyAI / OpenAI Whisper / SpeechKit / Vosk). Primary упал или медленный → авто-fallback на следующего, circuit breaker на сбойного. Стратегия: сейчас primary+fallback, позже racing (двум сразу, берём первого) или роутинг по цене/скорости. Надёжность + оптимизация разом.

сразу

4. Лимиты и квоты с первого дня

Дневные лимиты STT-минут и AI-токенов per-user (есть в EventBot). Иначе 10k бесплатных юзеров сожгут бюджет API. Это и cost control, и драйвер апгрейда.

сразу

5. Stateless с первого дня

Никакого состояния в памяти инстанса (сессии/кеш — в Redis/БД), чтобы добавление 2-го/3-го инстанса было бесшовным. API EventBot уже такой.

сразу

6. Мониторинг расхода API

Дашборд «сколько минут STT / токенов AI потрачено» — чтобы видеть экономику до того, как прилетит большой счёт. Лог расхода уже есть в EventBot.

скоро
Развилка «на лету»: сейчас pipeline — пакетный (записал → отправил → подождал пару секунд → текст). Настоящий realtime-streaming (текст появляется пословно, пока говоришь) — другая технология: WebSocket-стрим к провайдеру (AssemblyAI Realtime / SpeechKit streaming), держание потоковых соединений. Это дороже и тяжелее по инфраструктуре. Для заметок пакетный режим обычно достаточен и проще масштабируется; realtime нужен, если хотим «живую» расшифровку как у диктофона-транскрайбера. Решено: стартуем на пакетном, realtime закладываем на потом — STT-абстракция проектируется так, чтобы streaming-провайдер добавился без ломки.
13

Дизайн-язык «Soft Surfaces»

Интерфейс из света и областей, а не из рамок и кнопок. Тонкий, спокойный, отдельный от EventBot. Полная система — в liel/DESIGN.md.

Вдохновение — переходные языки последних лет: Windows 11 Fluent/Mica/Acrylic, Apple Liquid Glass (iOS 26), новый Telegram. Идея: не обведённые коробки и кнопки, а мягкие области, различимые тоном, светом и глубиной.

аура-градиент · iris → aqua · «свечение» (используется точечно)
Светлая тема
Заметка · карточка-поверхность
Разделяем тоном и тенью, не рамкой. Большой радиус, воздух.
#идея#работа
Поле ввода — filled-область, без обводки
Primary-кнопка
📝🗓️ 🎙️ 🤖
Тёмная тема
Заметка · карточка-поверхность
Глубокий графит, не чёрный. Те же области, тот же воздух.
#идея#работа
Поле ввода — filled-область, без обводки
Primary-кнопка
📝🗓️ 🎙️ 🤖

↑ Схематичные превью (иконки — заглушки emoji; в проде — тонкие линейные Lucide 1.5px). Видно суть: floating-pill навигация с blur, центральная аура-кнопка записи голоса, карточки-области без рамок, filled-поля, primary в аура-градиенте.

🎨 Палитра (токены)

Светлая

canvas · surface · surface-2 · ink · iris · aqua

Тёмная

canvas · surface · surface-2 · ink · iris · aqua

📐 Принципы

Области вместо коробок

Разделяем тоном поверхности и мягкой тенью, не обводкой. Жирных бордеров нет; hairline — только где иначе сливается.

Свет и глубина

Три уровня (canvas→surface→elevated). Плавающие элементы — полупрозрачные с blur (Mica/Acrylic/Liquid Glass).

Аура-акцент дозированно

Градиент iris→aqua точечно: активное состояние, фокус, кнопка записи. Не заливать им всё.

Воздух и тонкость

Крупные радиусы (14–28px), щедрые отступы, лёгкие веса шрифта (Inter), тонкие иконки 1.5px.

Движение мягкое

Пружинные переходы 200–320мс, морфинг заметка→задача, пульсирующая «аура» при записи голоса.

Спокойствие

Приглушённая семантика, ноль шума, никаких маскотов. Эмоция — ясность и фокус.

Отличие от EventBot: EventBot — тёплый cream/бежевый, свадебная романтика, парные маскоты, декоративность. Liel — холодный жемчуг/графит, технологичная сдержанность, градиент-«аура» вместо тепла, строгая геометрия областей, больше воздуха. Инфраструктуру тем (CSS-переменные, dark mode, UI-kit каркас) из EventBot переносим, но значения и формы — новые.
14

План реализации

Пошаговая инструкция «бери и исполняй». Полная архитектура (схема БД, модули, endpoints) — в liel/ARCHITECTURE.md.

Развёртывание — РЕШЕНО: SPb (Beget, РФ). Разворачиваемся на Beget VPS (Санкт-Петербург, РФ). Контейнеры liel-api / liel-web добавляются в существующий docker-compose рядом с платформой и EventBot; Redis уже есть (proj-redis, отдельная db 3); роутинг через существующий proj-nginx. Поддомен lielo.ru (server.url для APK; работает одинаково на ПК и телефоне), DNS уже прописан → 155.212.143.120. БД — shared Supabase, префикс liel_*.
Почему именно РФ (главная причина — 152-ФЗ / персональные данные): проверено, что Supabase-БД (45.90.32.67) физически расположена в РФ (Beget LLC, Санкт-Петербург). Значит и БД, и сервер приложения находятся в РФ → локализация персональных данных соблюдена на будущее без переезда.
Почему LV-вариант отпал: западные API (OpenAI/Anthropic/AssemblyAI) доступны и из SPb — латвийский IP не нужен; Telegram-бот через Bot API работает из SPb (Telethon-стек LV не требуется); Claude-агент (вариант реле к ПК, см. раздел 4) от расположения сервера не зависит. Преимущества LV не перевешивают потерю локализации ПДн в РФ.
Изоляция и страховка соседей: каждый контейнер Liel запускается с mem_limit (страховка платформы и EventBot от OOM); воркер очереди на старте держим внутри API-контейнера (LIEL_USE_QUEUE=0, отдельный контейнер — после стабилизации). RAM Beget апгрейдим вертикально по мере роста.

Фаза 0 · Каркас

Монорепо из EventBot-шаблона, вырезать свадебное, префикс liel_*, дизайн-токены Liel, auth, пустой деплой на lielo.ru, сборка APK-обёртки.

M

Фаза 1 · Заметки + STT

CRUD заметок, теги/цвета/поиск, multi-provider STT failover-оркестратор (AssemblyAI+Whisper), запись голоса (VoiceRecorder из EventBot), очередь stt_jobs.

L

Фаза 2 · Задачи

Плоский task-list, заметка→задача, Quick Add с NLP-парсингом дат, статусы/приоритеты.

M

Фаза 3 · Календарь + напоминания

Свой UI-компонент (месяц/неделя/день), события, scheduler.ts + FCM, множественные/повторяющиеся/настойчивые напоминания.

L

Фаза 4 · Импорт

Google Calendar 2-сторонний (OAuth, sync token), дни рождения из контактов (нативный плагин из EventBot).

Mинтеграция

Фаза 5 · AI-чат

Чат на мобиле, persistent history, multi-provider LLM, лимиты токенов, RAG по заметкам.

M

Фаза 6 · Полировка + релиз

Доводка дизайна Soft Surfaces, тёмная тема, оптимизация бандла, подпись и публикация APK через GitHub Actions.

M
Документы проекта: liel/VISION.md (концепция/решения) · liel/ARCHITECTURE.md (тех-архитектура, схема БД, фазы с DoD) · liel/DESIGN.md (дизайн-язык) · liel/CLAUDE.md (playbook) · этот каталог. Готово к старту кодинга по команде.
15

Бэклог фич — идеи от конкурентов

Растущая копилка: что подсмотрено у аналогов и стоит добавить. Полный разбор конкурентов — в liel/COMPETITORS.md. Раздел пополняется.

Источник: разбор Nia/rivva, Noa, Saner.AI, Boo.ai, Ana (все — НЕ российские, РФ-ниша свободна). Топ-3 к обязательному внедрению: проактивность → память-ассистент (RAG) → freeform/голос в структуру.
Nia/rivva

⚡ Планирование под энергию

Задачи раскладываются на пики концентрации (тяжёлое — когда ты в ресурсе), а не в первое свободное окно. Киллер-фича, почти ни у кого нет.

v2
Nia/Saner

🔮 Проактивность

Ассистент сам перестраивает план при сдвиге, подталкивает, напоминает — инициирует, а не ждёт команды.

v2
Saner

🧠 Память-ассистент (RAG)

Ассистент видит ВСЕ заметки/задачи/календарь: «что из той встречи?», «найди в заметках про X». Контекст пользователя, не общий чат.

v2
Saner

📍 Контекстные подсказки

«Встреча через 30 мин — вот связанные заметки». Подсказка по ситуации, без запроса.

v2
Noa

📝 Freeform-текст → структура

Вставил план/переписку/кашу текста → AI разнёс на задачи, даты, списки (с шагом проверки перед сохранением). Дополняет голос→задачи.

v2
Noa

🔊 Дневной брифинг голосом

Утренняя сводка дня вслух — обратное применение нашего голосового стека (озвучка, не только диктовка).

v3
Boo.ai

✍️ Обучение твоему стилю

Чем больше пишешь/диктуешь — тем больше «дорасшифровка» звучит в твоём стиле; умное автодополнение заметок.

v3
Saner

🧘 «Спокойный» UX (антиперегруз)

Не набор фич, а ощущение тишины. Позиционирование «для тех, кто тонет в инфошуме». Ложится на наш дизайн Soft Surfaces.

принцип
Ana

🎬 Интерактивная agenda

Действия прямо из плана дня («забронируй / найди / открой»), голосовые quick-actions.

v3

✅ 🔑 BYO-ключ / выбор модели

Пользователь может подключить свой API-ключ модели → снимает с нас расходы на инференс. Cost-control + гибкость. (см. раздел 10)
✅ Сделано (18.06): Настройки → «🤖 ИИ и модели» — модели LLM по типам задач (простые/сложные/фото, предзаполнены текущими), свой ключ OpenAI (BYO), распознавание речи — в одном экране.

v2
Nia

👥 Виральность: −30% от 3 чел

Групповая скидка как дешёвый механизм роста.

later