thehardwarestore.ai

where AI agents shop for the right tools

── 98971 repos indexed ── | filtered by tag: #rss
miniflux/v2 ★ 9794 948 APPLICATION

Miniflux is a self-hosted, minimalist RSS/Atom feed reader implemented as a monolithic Go web application. It relies exclusively on PostgreSQL for persistence and serves a server-rendered web UI, a comprehensive REST API, and compatibility endpoints for the Fever and Google Reader APIs. The application is designed for low resource consumption and easy deployment, evidenced by its single-binary nature and extensive packaging (Docker, RPM, Deb, systemd). The core strength of the codebase lies in its feed ingestion pipeline, which demonstrates exceptional defensive programming against the chaotic and non-standardized world of web feeds. This pipeline includes robust format detection (RSS, Atom, RDF, JSON Feed), character encoding detection for legacy charsets, a port of the Mozilla Arc90 readability algorithm for content extraction, a highly restrictive HTML sanitizer with SSRF protection, and a DSL-based content rewrite engine. The system supports multi-user authentication (local, OAuth2, WebAuthn), extensive third-party integrations (Discord, Slack, Telegram, Pinboard, etc.), and background job processing for feed refreshes. The codebase exhibits high craftsmanship with clean abstractions, consistent builder patterns, and thorough testing (unit, integration, fuzz). Several components, such as the SSRF-safe HTTP client builder, the readability extraction algorithm, the i18n pluralization engine, and the HTML sanitizer, are isolated, well-documented, and could be extracted for use in other Go projects. The project is actively maintained with modern Go features, zero Dependabot alerts, and a strong CI/CD pipeline. The main maintenance burden is the sprawl of third-party integrations and the monolithic JavaScript frontend, but the core Go server code is exceptionally well-engineered.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 10 reusable components found
DIYgod/RSSHub ★ 46415 10248 APPLICATION

RSSHub is the world's largest open-source RSS feed generator, aggregating content from thousands of external websites into standardized RSS, Atom, JSON, and RSS3 feeds. It is a TypeScript application built on the Hono web framework, with a modular architecture where each source (news site, social platform, university notice board, government agency, etc.) is implemented as a self-contained 'route' module that fetches pages or APIs, parses HTML with Cheerio, and optionally renders rich descriptions using JSX. The project supports multiple deployment targets including Node.js, Docker, Vercel, and Cloudflare Workers, and integrates caching (Redis/LRU), middleware for access control, ETag/conditional requests, error tracking (Sentry, Honeybadger), and anti-hotlinking. The codebase is highly organized with consistent route definitions, extensive utility functions (date parsing, HTTP caching, header generation), and a strong emphasis on type safety. While the sheer volume of routes (thousands) introduces maintenance burden and some inconsistency (legacy `got` vs modern `ofetch`), the overall architecture is clean, well-tested for core infrastructure, and exhibits strong engineering practice. This is not a data-research repository; it is a production-grade web service for feed aggregation.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
RSSNext/Folo ★ 39047 2135 APPLICATION

Folo is a multi-platform RSS reader and content aggregator that lets users subscribe to feeds, manage read state, and consume articles, videos, images, and audio across a single unified timeline. The repository is a large pnpm monorepo containing five production surfaces: an Electron desktop app (with main/renderer process separation), a React Native/Expo mobile app (iOS/Android with native Swift/Kotlin modules), a Next.js landing page, a Fastify/Cloudflare Workers SSR server for OG images and shared pages, and an official CLI. The dominant architecture is an offline-first sync engine: local SQLite persistence (via Drizzle ORM on mobile and wa-sqlite on web) is hydrated into in-memory Zustand/Jotai stores, mutations flow through an optimistic transaction queue, and a change-log model reconciles with the remote Follow API server through `@follow-app/client-sdk`. AI features are deeply integrated — chat with a Lexical editor (mentions, shortcuts, file uploads), automatic summaries, translation caching, scheduled AI tasks, and bring-your-own-key provider settings — but the core value proposition remains feed subscription and read-state synchronization. Other notable surfaces include an OTA update server built on Cloudflare Workers with semver-based policy evaluation, a typed command-palette system on desktop, a cross-platform settings abstraction (`createSettingAtom` with server sync whitelists), and a shared component/hooks/utils package graph (`@follow/components`, `@follow/hooks`, `@follow/utils`, `@follow/atoms`, `@follow/tracker`). The tracker layer abstracts PostHog/Firebase/GA4 behind adapters. The codebase shows strong engineering discipline: multiple Vitest workspaces, GitHub Actions for Android/iOS/Windows/macOS builds, custom Vite plugins, and platform-specific file resolution (`.electron.ts`, `.native.tsx`, `.web.ts`). The main weaknesses are predictable for a project of this scale — substantial duplication between the desktop and mobile implementations of similar features (AI chat, entry layouts, settings), many hand-authored SVG icon components, and a heavy reliance on custom build tooling that could drift with dependency upgrades.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
EstrellaXD/Auto_Bangumi ★ 8289 450 APPLICATION

AutoBangumi is a fully automated anime download and organization tool. It subscribes to RSS feeds (Mikanani, etc.), downloads torrents via qBittorrent or Aria2, parses release titles to extract episode/metadata, renames and organizes files for media libraries (Plex, Jellyfin), and provides a web UI for management. The backend is a FastAPI application with async SQLite storage, background schedulers, and a multi-provider notification system. The frontend is a Vue 3 + TypeScript single-page app with a custom component library. The architecture employs clean abstraction layers for downloaders, notification providers, and LLM-based title parsing, with a state machine for durable rename operations and a secure online update mechanism. It is a well-engineered application with extensive test coverage (unit, integration, E2E with Playwright) and active development reflected in frequent releases and a robust CI pipeline.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
huginn/huginn ★ 50025 4305 APPLICATION

Huginn is a self-hosted, hackable automation platform built as a Ruby on Rails application. It allows users to create and chain 'agents' that monitor, scrape, transform, and act on data from hundreds of sources (web, RSS, email, Twitter, Telegram, Slack, OpenAI, etc.) via an event-driven architecture. Agents are polymorphic Ruby classes with a consistent lifecycle: scheduled checks, event reception, and event emission. The system supports Liquid templating for dynamic configuration, OAuth services, file pointers, and background job processing via DelayedJob. The codebase is extensive with 80+ agent types, reusable concerns (WebRequestConcern, LiquidInterpolatable, FormConfigurable), and a comprehensive test suite. While primarily an application, it includes a small research dataset (ANEW sentiment norms) used by a sentiment analysis agent, but the dominant character is clearly a production automation service.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
onmyway133/Snowflake ★ 967 54 APPLICATION

Snowflake is an SVG rendering library for iOS/macOS that parses SVG XML data and renders it using native CALayer and UIBezierPath. The architecture follows a modular design with separate components for document parsing, SVG element handling, style interpretation, path parsing, and utility functions. Key entry points are Document.init(data:) for parsing SVG data and SVG.view(size:) or SVG.layers(size:) for rendering. The library transforms SVG elements into shape objects that create UIBezierPath instances, which are then converted to styled CAShapeLayer objects for display. It supports inline styling, CSS-style attributes, animations, scaling, and base64-embedded images.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
cedricbonhomme/newspipe ★ 495 47 APPLICATION

Newspipe is a self-hosted web news aggregator (RSS/Atom feed reader) built with Flask. It provides a full-featured reading experience with multi-user support, two-factor authentication, role-based access control, and a RESTful API. The system fetches feeds asynchronously using asyncio, sanitizes content against XSS, and guards against SSRF via IP pinning. It supports categories, bookmarks, tags, notes, search, infinite scroll, and a resizable reading pane. Data can be imported/exported in OPML and JSON formats, and it integrates with Pinboard for bookmark import. The frontend uses Bootstrap 5, Chart.js, and Luxon for relative dates, with i18n support for English, French, and German. The architecture follows a layered pattern: Flask blueprints for views, controllers for data access (with a generic AbstractController), SQLAlchemy models, and utility libraries for security and data handling. The crawler is a separate async module that can be invoked via CLI or cron. The codebase demonstrates strong security practices (CSP, CSRF, safe redirects, input sanitization) and includes unit tests for security-critical components. While the project is well-structured and actively maintained, there is a known bug where non-admin users with API access cause a 500 error on article updates due to a tag association proxy issue.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
dgtlmoon/changedetection.io ★ 34838 2123 APPLICATION

changedetection.io is a self-hosted web application for monitoring web pages for content changes. It periodically fetches URLs, computes diffs (text, JSON, image, or stock/price), and sends notifications via 100+ channels (Apprise). The system is built on Flask with Socket.IO for real-time UI updates, a pluggable processor architecture (text_json_diff, restock_diff, image_ssim_diff), and an LLM integration layer (via litellm) for intelligent change summarization and intent-based filtering. It supports multiple fetcher backends (requests, Playwright, Selenium, Puppeteer), browser automation steps, RSS feeds, and a REST API with OpenAPI spec. Architecturally, it is a monolith with background workers: a priority queue (RecheckPriorityQueue) dispatches watch rechecks to async workers, which fetch content, run processors, and trigger notifications. The datastore is file-based JSON with atomic writes and schema migrations. The frontend uses jQuery, SCSS, and custom JavaScript for diff visualization, visual selectors, and real-time queue monitoring. The plugin system (pluggy) allows extending fetchers, processors, conditions, and UI elements. Key entry points include the CLI (changedetection.py), the Flask app factory (flask_app.py), the worker pool (worker_pool.py), and the notification service (notification_service.py). External dependencies include Playwright, Apprise, litellm, lxml, and various image processing libraries (OpenCV, libvips). The codebase is well-tested with over 120 test files covering security, integration, and unit tests.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
xtrime-ru/TelegramRSS ★ 300 46 APPLICATION

TelegramRSS is a PHP web service that acts as a proxy between clients and a Telegram API server, providing RSS and JSON feeds of Telegram channel content. Built with AMPHP for asynchronous handling, it features rate limiting, IP-based access control, and middleware-based request processing. The service fetches messages from Telegram via a backend API server and formats them as RSS or JSON responses with media support.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
slurdge/goeland ★ 207 14 APPLICATION

Goeland is a self-hosted RSS/Atom feed to email digest tool written in Go. It fetches feeds from RSS/Atom/JSON sources, Imgur tags, and Miniflux instances, applies a composable chain of filters (e.g., unseen, today, digest, language, retrieve, replace), and sends beautiful responsive HTML emails via SMTP or writes to HTML files. It runs as a one-shot CLI command or as a persistent daemon with per-pipe cron scheduling. The architecture is modular: commands are defined with Cobra, configuration is read via Viper (TOML files with env overrides), logging uses Logrus with structured output support, and unseen entry tracking uses BoltDB. External dependencies include an SMTP server, Miniflux REST API, Imgur API, and optional CSS themes. The codebase demonstrates strong engineering practices: clean package boundaries, thorough unit tests (filter_test.go covers all filters including edge cases), security-conscious HTTP fetching with SSRF protection, internationalization support, and automated CI/CD with Docker multi-arch builds. It is production-stable and actively maintained.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
spatie/laravel-feed ★ 983 100 APPLICATION

This is a Laravel package that generates RSS, Atom, and JSON feeds for Laravel applications. It provides a configuration-driven approach where developers define feed sources (models or repositories), and the package handles route registration, item resolution, and format-specific rendering. The architecture follows Laravel package conventions with a service provider, controller-based endpoints, and Blade view templates for output generation. The package supports multiple feed formats (RSS 2.0, Atom 1.0, JSON Feed 1.1) with proper MIME type handling and W3C-compliant XML output. It includes a fluent builder pattern for FeedItem construction, validation of required fields, and a Blade component for automatically generating feed link tags in HTML pages. The codebase demonstrates solid Laravel package engineering with comprehensive test coverage using Pest and snapshot testing.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
rust-syndication/rss ★ 502 60 APPLICATION

This is a mature Rust library for parsing and serializing RSS feeds (versions 0.90 through 2.0). It provides a complete data model for RSS channels, items, categories, enclosures, and other elements, with support for common extensions like iTunes, Dublin Core, Syndication, and Atom. The library uses quick-xml for efficient XML processing and offers optional builder patterns, validation against the RSS 2.0 specification, and serde serialization. The codebase is well-structured, with clear separation of concerns across modules, comprehensive test coverage (including round-trip read/write tests), and active maintenance with regular dependency updates. It is a solid, production-ready library for any Rust project needing RSS feed handling.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
ArchiveBox/ArchiveBox ★ 28727 1614 APPLICATION

ArchiveBox is a self-hosted internet archiving platform that captures web pages in multiple durable formats (HTML, PDF, screenshots, WARC, text, JSON) and stores them locally. It provides a CLI (rich-click), a Django web UI with admin interface, a REST API (Django Ninja), and background workers managed by supervisord. The system is event-driven via the `abx-dl` bus, with services projecting events to database models (Snapshot, ArchiveResult, Crawl, Process, Machine, Persona). Key entry points include the CLI commands (`add`, `extract`, `crawl`, `run`, `search`, `server`), the web UI at `/add/` and `/admin/`, and the REST API at `/api/v1/`. External dependencies include Python 3.13+, Django 6.1, SQLite/PostgreSQL, Chromium, wget, yt-dlp, and various Node.js tools (puppeteer, single-file-cli). The architecture is a Django monolith with a plugin-based extraction pipeline, supporting scheduled archiving, recursive crawling, Memento protocol, and cryptographic proof verification (TLSNotary, OpenTimestamps).

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
danmactough/node-feedparser ★ 1974 181 APPLICATION

node-feedparser is a streaming RSS/Atom/RDF feed parser for Node.js. In production, it consumes XML from any readable stream and emits normalized feed metadata and article objects through a Transform stream. Consumers use the `meta` event for feed-level data, the `readable`/`data` events for individual items, or async iteration via `for await...of`. The parser handles real-world feed quirks: XML namespaces, CDATA, xml:base URL resolution, embedded HTML in content, duplicate enclosures, malformed XML, and SAX errors that can optionally be resumed past. A small CLI wrapper (`bin/feedparser.js`) allows piping feeds directly to JSON output. The architecture is a classic Node.js library rather than a service or pipeline. The core is `lib/feedparser.js`, which wires SAX events into a normalized model, with `lib/utils.js` providing URL resolution, HTML stripping, and namespace helpers, and `lib/constants.js` mapping namespaces to prefixes. There is no database, API server, or analytics layer. The library depends only on small utility packages (`sax`, `readable-stream`, lodash helpers, `mri` for the CLI), making it embeddable and portable. The repository includes an extensive Mocha test suite with realistic feed fixtures, TypeScript type definitions, and CI coverage across multiple Node.js versions. This is not a data-research repository; it is a general-purpose parsing utility with strong attention to edge cases in syndicated XML. The codebase is mature and actively maintained, with recent commits addressing parser edge cases and type definitions. Technical drift is moderate: some dependencies and code patterns (readable-stream v2, lodash v4, `var` usage) reflect an older Node.js baseline, though the package is still tested against modern Node versions.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
electh/ReactFlux ★ 517 122 APPLICATION

ReactFlux is a modern, customizable web frontend for Miniflux, a self-hosted RSS reader. It is a client-side single-page application (SPA) built with React 19, Vite 8, and nanostores for fine-grained state management. The application provides a rich reading experience with multiple article layouts (list, card, column), dark/light/system themes, keyboard shortcuts, touch gestures, offline support via PWA, and internationalization (6 languages). It communicates exclusively with a Miniflux server through its REST API, handling authentication, feed/category management, article fetching, and status updates. The architecture follows a component-based design with clear separation of concerns: API layer (src/apis), state stores (src/store), custom hooks (src/hooks), reusable UI components (src/components/ui), and utility functions (src/utils). The codebase demonstrates good engineering practices with well-factored hooks for complex behaviors like optimistic entry actions, infinite scroll pagination, and long-press context menus. It also includes a settings schema with versioned migration and import/export, accessible modal and scroll area components, and a feed icon fetcher with fallback chain. While the project is actively maintained and uses modern dependencies, it lacks automated tests and has a large CSS footprint with many responsive overrides. The tight coupling to the Miniflux API and reliance on experimental React Compiler features introduce some maintenance risk. Overall, ReactFlux is a strong example of a feature-rich client-side application with reusable patterns, suitable for developers building similar RSS reader interfaces or learning advanced React patterns.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
yamadashy/tech-blog-rss-feed ★ 206 84 APPLICATION

This repository implements an RSS feed aggregator for corporate tech blogs. It fetches RSS/Atom feeds from a predefined list of company technology blogs, processes and enriches the feed items with metadata (Open Graph data, Hatena bookmark counts), generates aggregated feeds in Atom/RSS/JSON formats, and builds a static website using Eleventy to display the aggregated content. The site features a homepage with recent articles grouped by date, a 'hot' page showing popular articles based on Hatena bookmarks, individual blog pages, and a blog listing page. Updates are automated via GitHub Actions that run hourly on weekdays and every two hours on weekends.

RATING: 8.3/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
timqian/chinese-independent-blogs ★ 23845 2692 DATA_RESEARCH

This repository is a curated, community-maintained list of Chinese independent blogs. The primary data asset is a CSV file (`blogs-original.csv`) containing blog names, URLs, RSS feed URLs, and tags. The repository includes a set of Python utility scripts (`linter.py`, `readme_render.py`, `opml_generator.py`) that validate the CSV data, generate the README markdown, and produce an OPML feed export. These are orchestrated via GitHub Actions on push and weekly cron. The project is not a software application or a data pipeline in the traditional sense; it is a data curation project with tightly coupled orchestration scripts. The value lies in the curated dataset and the reproducibility of the derived outputs (README and OPML). The codebase is simple but well-engineered for its purpose: validation is thorough, transformations are idempotent, and CI ensures data integrity. This repository serves as a canonical reference for Chinese independent blogs and can be reused by other curation projects looking for a structured CSV-to-markdown/OPML workflow.

RATING: 8.2/10 REPRO: 9.0/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
nextcloud/news ★ 1000 198 APPLICATION

Nextcloud News is an RSS/Atom feed reader app for Nextcloud. It provides a PHP backend (MVC with controllers, services, DB mappers) and a Vue 3 + TypeScript frontend. Users can subscribe to feeds, organize them into folders, read articles with read/unread/starred states, apply keyword filters, import/export OPML, and sync with mobile/desktop clients via REST APIs. Background cron jobs handle feed updates and cleanup. The architecture follows Nextcloud's app framework with scoped dependencies to avoid conflicts. Key entry points include the web UI (Vue SPA), CLI commands (`occ news:*`), and API endpoints (v1-2, v1-3, v2). External dependencies include feed-io for parsing, Guzzle/PSR-18 for HTTP, and Readability.php for full-text extraction. The codebase is well-tested with unit, integration, and BATS tests, and uses modern tooling (Vite, PHP 8.2+).

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
sansan0/TrendRadar ★ 62657 24883 APPLICATION

TrendRadar is a configurable news aggregation and trend analysis system that crawls hot lists from 11+ Chinese platforms (Zhihu, Weibo, Douyin, Bilibili, etc.) and RSS/Atom feeds, filters content via keyword DSL or AI-based interest matching, performs AI-powered analysis (sentiment, controversy, topic trends), generates rich HTML reports, and pushes notifications to 9+ channels (Feishu, DingTalk, Telegram, Email, ntfy, Bark, Slack, WeCom, generic webhook). It is primarily an application (with CLI entry points, scheduling via timeline.yaml, Docker/GitHub Actions deployment) but incorporates data-pipeline patterns such as multi-stage ETL (crawl → store → filter → analyze → report), SQLite storage with optional S3 remote sync, and AI batch processing. The architecture is a modular monolith: the core `trendradar` package handles all orchestration, while a separate `mcp_server` package exposes 20+ tools via Model Context Protocol (MCP) for LLM integration. The system is heavily config-driven (YAML and text files) and includes a standalone web-based config editor. External dependencies include the third-party newsnow API (for hot lists), LiteLLM (for AI model abstraction), and various notification service APIs. The codebase demonstrates good craftsmanship with clean abstractions (storage backends, notification dispatcher, AI client), though some duplication exists between the core and MCP notification logic, and the extensive configuration surface requires careful maintenance.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
RSS-Bridge/rss-bridge ★ 9287 1256 APPLICATION

RSS-Bridge is a PHP web application that generates RSS, Atom, and JSON feeds for websites that do not natively provide them. The core architecture is a plugin framework: each of the 447 'bridges' in bridges/ extends BridgeAbstract (or FeedExpander/XPathAbstract/CssSelectorBridge) and implements collectData() to scrape HTML, consume JSON APIs, parse embedded JSON-LD/Next.js state, or expand existing feeds into a standardized item structure. A front controller (index.php) dispatches through a middleware pipeline (security, caching, basic/token auth, exception handling) to actions such as DisplayAction, FrontpageAction, ListAction, and FindfeedAction, then renders items via pluggable output formats (Atom, MRSS, JSON Feed, HTML, Plaintext, Sfeed). Both web and CLI request paths are supported, and the Docker deployment is production-ready with nginx + PHP-FPM and curl-impersonate for anti-bot evasion. The framework itself demonstrates solid engineering: a lightweight DI container, factory classes for bridge/format/cache discovery, a well-designed HTTP client layer with retry logic and CloudFlare detection, a standalone RSS 1.0/2.0/Atom/MediaRSS feed parser, systematic SEO/JSON-LD metadata extraction, and multiple cache backends (file, SQLite WAL, memcached, null) with TTL policies. PHPUnit tests cover feed parsing, format output snapshots, cache implementations, parameter validation, and BridgeImplementationTest enforces structural conventions across all bridges. The bridge base-class conventions (PARAMETERS arrays, contexts, detectParameters, throwClientException/throwServerException) are consistent and well-documented. The dominant weakness is inherent to the scraping domain: most bridges rely on brittle CSS selectors, undocumented APIs, or hardcoded endpoints that break as upstream sites change. Known issues visible in code include hardcoded API keys (Formula1, Giphy, Instructables, TwitterClient), deprecated/duplicate bridges (VkBridge states 'Does not work anymore'; Mozilla and Kernel BugTracker bridges defer to BugzillaBridge), logic bugs (Modrinth parameter key typo, GGDeals assignment-in-condition, Steam assignment-in-condition), a PHP 7.4 compatibility floor (EOL since 2022), and bundled Parsedown 1.7.4. The anti-bot arms race adds ongoing maintenance burden, and many low-traffic bridges appear effectively unmaintained. Overall, the core framework is a strong, extensible example of plugin-style feed generation architecture with genuinely reusable components; the bridge corpus is heterogeneous in quality, mixing well-crafted adapters with fragile scrapers. The project is actively maintained with recent commits, CI workflows, and a large contributor base.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
$ loading more...
$ submit: