Второе дыхание для RSS: как Feed-Repeat реанимирует старый контент

Второе дыхание для RSS: как Feed-Repeat реанимирует старый контент

Июл 06, 2026 rss atom haskell feed-aggregation content-discovery nixos docker open-source developer-tools productivity

Возрождение RSS, о котором вы даже не подозревали

Давайте начистоту — RSS-ленты пережили непростое десятилетие. Пока социальные сети захватывали мир, RSS тихо оставался инструментом гиков, разработчиков и всех, кто хотел реальный контроль над своим информационным потоком. Но есть нюанс: ленты по умолчанию работают в хронологическом порядке. Ваш гениальный пост 2022 года про "Будущее дизайна API" тонет под тремя месяцами обновлений, и новые подписчики его просто не видят.

Именно эту проблему решает feed-repeat. Инструмент, написанный на Haskell разработчиком по имени Abhinav, собирает записи из нескольких RSS/Atom/RDF лент и умно возвращает старый контент в новые выходные потоки. Представьте себе цифрового куратора, который даёт вашему вечнозелёному контенту второй шанс.

Почему взвешенная выборка меняет правила игры

Случайность — это просто. Случайность — это бесполезно.

Если просто брать случайные старые посты, получится хаотичная лента, которая только смутит подписчиков. Feed-repeat использует экспоненциальное взвешивание, чтобы приоритизировать старые записи. Логика изящная: контент, который пролежал дольше всех, заслуживает новый шанс на внимание. Так архив циклически проходит через выдачу систематически, а не мешается в кучу.

Инструмент позволяет настроить:

  • Минимальный возраст записи — никогда не повторять контент младше недели
  • Количество повторов — сколько старых записей подмешивать за цикл
  • Лимиты на уровне доменов — чтобы один слишком активный источник не захватил всю ленту
  • Альфа-выборки — тонкая настройка кривой взвешивания

Надёжность из коробки

Feed-repeat — это не просто умная идея, это production-ready решение:

Умное кэширование — source-ленты падают, серверы чихают. Feed-repeat сохраняет полученные ленты локально, так что временная недоступность не ломает ваш выходной поток. Инструмент грациозно обрабатывает хаос на входе, сохраняя стабильность на выходе.

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

Поддержка форматов — RSS 2.0, Atom или RDF (да, RDF ещё жив), feed-repeat работает со всеми без проблем.

Куда угодно: варианты деплоя

Здесь feed-repeat становится по-настоящему интересным для разработчиков и DevOps-инженеров. Инструмент предлагает пути деплоя практически для любого окружения:

NixOS — полная интеграция через модуль. Описываете конфигурацию прямо в конфиге NixOS, модуль генерирует systemd-сервис, управляет правами и даже настраивает Nginx с опциональным SSL. Это IaC в лучшем его проявлении.

Классический systemd — для остальных Linux-систем есть прямой сервис с таймером. Настройка требует нескольких ручных шагов (создание пользователей, директорий, прав), но документация подробная.

Docker — предпочитаете контейнеры? Feed-repeat поставляется как готовый образ на GitHub Container Registry. Монтируете конфиг, выходную директорию и том для кэша — и через секунды всё работает. Контейнер запускается от непривилегированного пользователя, что приятно с точки зрения безопасности.

GitHub Pages — на выходе статические файлы лент, так что их можно раздавать напрямую с GitHub Pages или любого статического хостинга. Идеально для создания агрегированных "лучших" лент на халяву.

Кому это нужно?

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

Агрегаторам лент, которые строят курируемые потоки контента из нескольких источников.

Разработчикам, которые ценят качественно сделанные Haskell-инструменты и могут захотеть форкнуть или доработать проект.

NixOS-пользователям, которым нужна декларативная система управления лентами прямо в конфиге.

С чего начать

Проект предоставляет готовые статические бинарники для AMD64 и AArch64, так что Haskell-окружение вам не понадобится. Если хотите собрать из исходников — GHCup упрощает установку Haskell-тулинга.

Для большинства пользователей Docker даёт самый быстрый путь от установки до работающих лент: скачали образ, примонтировали конфиг — и погнали.

Что делает feed-repeat примечательным — это не только утилитарность. Здесь видно вдумчивое инженерное решение. Экспоненциальное взвешивание, надёжное кэширование, множественные пути деплоя и интеграция с NixOS показывают, что кто-то сначала построил инструмент для своего рабочего процесса, а потом отполировал для других. Это и есть open-source мечта.

Если вы давно думаете, как выжать больше из архива контента — feed-repeat может оказаться тем самым инструментом, который вы незаслуженно игнорировали.

Проект на github.com/abhin4v/feed-repeat.

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN