Всем привет! Меня зовут Фил, я давно работаю программистом и всегда любил делать разные проекты.
Пару недель назад я запустил Базовые Новости. Это небольшая платформа, которая собирает новости из нескольких источников, ранжирует их по важности и выдаёт в виде короткого дайджеста раз в день: самое-самое важное в мире идёт в публичные каналы (на русском и на английском), а в боте пользователи видят те новости, темы и регионы для которых они выбрали в настройках.

Как появилась идея? Что вдохновило?
У меня давно было желание найти такой дайджест новостей, чтобы узнавать из него всё действительно важное, но при этом вспоминать о нём раз в день или реже. Такой дайджест всё никак не находился, и, в целом, я подзабил на эту идею, но некоторое время назад моя жена подошла ко мне и сказала: "Ты знаешь, что в Албании вовсю бушуют протесты, но в большинстве СМИ об этом — ни слова?" О протестах в Албании на тот момент я действительно ничего не слышал, хоть мы и живём на Балканах. И я подумал, что вот теперь-то, с такой доступностью LLM, можно быстро смастерить себе свой собственный дайджест. Я описал примерный systems design документ для проекта, показал его Клоду, офигел от того, сколько потенциальных косяков он нашёл и сколько полезных идей накидал, и принялся за работу.
Что вошло в прототип и сколько времени на него было потрачено?
Пара месяцев по вечерам — в основном, в роли технического менеджера для Клода — и вот, у меня есть довольно легко расширяемая платформа, которая:
- Собирает новости из разных источников
- Получает из LLM саммари на русском и английском, а так же: категорию, список регионов и оценку важности новости, учитывая текущий контекст
- Кластеризует истории и объединяет дубликаты
- Отправляет дайджесты в каналы и пользователям через бота, опираясь на кастомные настройки
- Поддерживает базу данных с пользователями, настройками, статистикой и механизмом оплаты (пока что только Telegram Stars)

Какой технологический стек вы использовали? Почему?
TypeScript, MikroORM поверх PostgreSQL, Redis с BullMQ — это всё просто мой стандартный набор. В качестве провайдера LLM использую Anthropic (claude-haiku-4-5 как основная модель для анализа новостей), а для эмбеддингов приспособил Voyage AI (voyage-4-lite, там что-то в районе миллиона токенов в месяц бесплатно, этого хватает выше крыши). Ещё прикручен Google Translate API, пока что не используется, но будет для локализации на другие языки, если это будет актуально (пока что всерьёз думаю только над добавлением сербского).
Платформа состоит из микросервисов (ну, некоторые из них нехило раздуло, и не такие уж они теперь и микро), всё хостится на Railway. Из способов доставки дайджестов пока что только Телеграм-каналы и бот (ссылки выше), и ещё RSS-ленты на обоих языках на сайте.
Как вы запускались и искали первых пользователей?
Запускаюсь и ищу первых пользователей прямо сейчас!
Специально по такому случаю сделал промокод VAS3K2026, который даёт разовую скидку 50% и будет действовать до Новогодней ночи. Помимо него, промокод VAS3KCLUB будет работать всегда (строго говоря, до Нового 2150 года) и давать 20% скидку на всё. Также есть 10-дневный триал для (пока что единственного) платного тарифа в боте. Если же вы не можете купить подписку сейчас, но очень хотите попробовать пользоваться ботом подольше, то напишите мне в личку, и я сделаю вам инвайт на три месяца.
С какими самыми неожиданными трудностями пришлось столкнуться?
Самая назойливая проблема — это избавиться от дубликатов. Общая схема работы такая: если эмбеддинги прям совсем рядом, то объединение происходит автоматически, а если они в пределах какого-то порога "похожести", то две новости сравниваются через дополнительный вызов к LLM. Сейчас с этим существенно лучше, хоть изредка и проскакивают повторы, но в самом начале я сглупил и генерировал эмбеддинги из оригинального текста новости, прямо на том языке, на котором она в источнике. В результате, между новостями на русском и английском всегда было существенное различие в векторном пространстве, и дубликаты не склеивались, какие бы щедрые пороги "похожести" я не устанавливал. К счастью, довольно быстро докопался до причины.
Вторая проблема — в определении важности новостей. Нейронка видит только очень ограниченный контекст происходящего в мире, и из-за этого не знает, например, является ли очередной налёт дронов рутинным событием или серьёзной эскалацией. Над этим я всё ещё работаю, и полагаю, что здесь нужно более чётко задавать инструкции.
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Потратил в пределах $100 за два месяца, учитывая подписку на Клод. Сейчас ориентировочно трачу $50 в месяц без учёта подписки, поскольку пришлось проапгрейдить подписку на Railway, и токены в Anthropic тратятся быстрее из-за большего количества источников новостей, которые я недавно добавил.
Монетизировать планирую через Telegram-бота, а если вы хотите поддержать проект, но не хотите читать никаких новостей, то можете отправить донат через PayPal или Patreon, я буду очень благодарен!
Какие планы на будущее?
Сперва хочу проверить, есть ли спрос на бота с новостями. Если да, то буду развивать функционал, включая кастомные промпты пользователей о том, что они хотят видеть в своём дайджесте (но это, вероятнее всего, также потребует введения более дорогого тарифа).
Помимо этого, раздумываю над тематическими ботами, которые собирают и публикуют новости в рамках какой-то конкретной индустрии или ниши.
Нужны ли какие-то советы или помощь Клуба?
Буду очень рад вашим советам по двум пунктам выше: как монетизировать и для каких ещё тем можно приспособить таких ботов. Ну и вообще, с радостью прочитаю любые ваши идеи и фидбек!
Какой совет вы бы сами могли дать идущим по вашим стопам?
Главный совет — делайте неуниверсальные системы, которые делают ровно то, чего хотите вы сами, и решают какую-то очень локальную, вашу проблему. Построить что-то универсальное намного сложнее и дороже, и наверняка крупные компании уже попробовали сделать всё, для чего есть существенная аудитория. А вот в нишевых проектах часто кроется много пользы для не очень больших, но почти всеми игнорируемых аудиторий.

И как изменилось качество твоей жизни, когда ты решил проблему неполучения новостей о протестах в Албании?
А еще, из моей коллекции «потенциальных конкурентов» чтобы вдохновляться:
И, кажется, еще несколько десятков за последние пару лет. Видимо, «гиперперсональное X” в эпоху AI очень интересное 😃
На практике многие из них стали только локально известны, а решают похожую задачу.
Я не к тому, чтобы сказать тебе что ты делаешь что-то давно сделанное а чтобы было чем вдохновляться 😃
Отличная идея!
Я бы ещё сделал какой-то объективизатор, чтобы он смотрел на выбранные новостные источники и уменьшал политический и другой субъективный баес, имея разные концы спектра как реперные точки. Убирал мишуру и явные политические телеги. Чёт такое.
Идея прекрасная, точно такая же витала в воздухе. попробую и обязательно дам отзыв! Идея для уменьшения политизированности : чтобы ИИ просматривал только новостные агентства, а не производные - так и токенов будет жечься меньше (меньше источников), и политизированность уменьшается автоматом - в новостных агентствах, собственно, только новость и есть, без оценки
Когда то делал похожего бота для себя, тоже с llm, но без такой кастомизации. Проблема для меня в том, что анализ получается за прошедшие сутки, то есть новости уже не самые свежие.
Классная идея и круто, что ты дошел от решения персональной задачи до продуктизации!
Как ты решаешь проблему разного новояза в разных источниках/странах?
Когда одно и то же событие глазами условного bbc и условной помойки типа РИА выглядит очень по-разному и без дотренировки эмбеддингов (хлопок = взрыв, киевские террористы = всу) векторное расстояние вообще не помогает.
Я делал очень похожую историю для себя, где из 100 источников в т.ч. пропагандонов пытался получить более-менее объективную картину - чистил пропагандистский язык, делал графы аффилированных сми через одинаковую повестку, делал репутацию сми и все такое.
И самой интересной задачей была как раз кластеризация одинаковых событий описанных совершенно разным языком, где перевод не решает задачу.
Харош! Может быть когда нибудь, когда мне будет дело до новостей большого мира я воспользуюсь.
я вспоминаю времена RSS, когда ты добавлял себе в ленту то что интересно и смотрел... как будто времена возвращаются
Прикольно, тоже об этом думаю и хотел попробовать накодить.
А локальные модели совсем не годятся ни для чего (кроме дупликации), не пробовал?
Видел
https://t.me/nyannews
и
https://t.me/nyannews_summary
?