thehardwarestore.ai

where AI agents shop for the right tools

── 98829 repos indexed ── | filtered by tag: #rss-reader
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
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
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
prof18/feed-flow ★ 1212 64 APPLICATION

FeedFlow is a cross-platform RSS feed reader built with Kotlin Multiplatform and Compose Multiplatform, targeting Android, iOS, macOS, Windows, and Linux. It provides a rich reading experience with customizable layouts, reader mode with article extraction, offline content prefetching, and OPML/CSV import/export. The application emphasizes reliability through extensive unit testing, Maestro-based E2E tests for both mobile platforms, and a sophisticated cloud synchronization system supporting Dropbox, Google Drive, iCloud, FreshRSS, Miniflux, Feedbin, and BazQux. The architecture follows MVVM with clean separation of concerns (domain, data, presentation layers), uses Koin for dependency injection, SQLDelight for local persistence, and Ktor for networking. Platform-specific adaptations exist for background sync (Android WorkManager, iOS background tasks), widget support, and UI components (Compose Multiplatform for Android/Desktop, SwiftUI for iOS). The codebase demonstrates high craftsmanship with modular design, reusable abstractions (DataResult, content direction detection, image extraction, HTTP caching), and thorough test coverage including cloud sync conflict scenarios.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 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
yang991178/fluent-reader ★ 9708 544 APPLICATION

Fluent Reader is a desktop RSS reader application built with Electron, React, and Redux. It enables users to subscribe to RSS feeds, organize them into groups, read articles with multiple viewing modes (original webpage, full-text via Mercury Parser, or external browser), and synchronize with self-hosted services like Fever, Feedbin, Inoreader, Miniflux, and Nextcloud. The application features rule-based automation for article actions (marking as read, starring, hiding), OPML import/export, keyboard shortcuts, dark mode, and push notifications. The architecture follows a classic Electron split: a main process manages application lifecycle, windows, and IPC communication, while renderer processes handle the React-based UI with Fluent UI components. State is managed centrally via Redux with domain-specific reducers for sources, items, feeds, groups, rules, services, and app state. Data persistence uses Lovefield (a SQL-like wrapper for IndexedDB) with a NeDB fallback, and user settings are stored via electron-store. Key entry points include src/electron.ts (main process), src/index.tsx (renderer root), and src/preload.ts (context bridge for secure main-renderer communication). The codebase demonstrates solid engineering practices with reusable patterns such as a service abstraction layer (ServiceHooks interface) for third-party integrations, UI primitives like FlatButton and ArticleSearch components, and a database abstraction layer that isolates storage implementation details. However, it shows signs of technical drift due to reliance on older React (16.13.1), the unmaintained Lovefield library, and Fluent UI migration dependencies. The project is actively maintained with recent commits and ongoing issue triage.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
electh/nextflux ★ 528 105 APPLICATION

Nextflux is a modern RSS reader client designed for the Miniflux server. It is a single-page application built with React 19, Vite 6, and TailwindCSS 4, featuring a three-pane layout for browsing feeds, articles, and reading content. The application emphasizes offline capabilities through IndexedDB storage via Dexie, allowing users to read feeds without an internet connection. The architecture employs a decentralized state management approach using Nanostores, with separate stores for authentication, settings, feeds, articles, and synchronization. Data persistence is handled through a repository pattern over Dexie, providing typed access to IndexedDB collections. The application synchronizes with the Miniflux server via a background sync service that handles incremental updates, conflict resolution, and optimistic UI updates. Additional features include a global audio player for media attachments, AI-powered article summarization, and extensive customization options through a settings panel. Notable reusable components include a utility library for class merging and helper functions, a dynamic font loading hook, and a custom hook for detecting reduced motion preferences. The UI is built upon a migrating component library (transitioning from HeroUI/Radix to @base-ui/react and then to a Luma/shadcn-based system), demonstrating a commitment to modern UI practices. The codebase exhibits strong modularity and separation of concerns, with clear boundaries between UI, state management, data access, and service layers.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
ViennaRSS/vienna-rss ★ 1975 233 APPLICATION

Vienna is a mature, macOS-native RSS/Atom/JSON feed reader that operates as a traditional desktop application. In production, it periodically fetches subscribed feeds via HTTP, parses them into structured articles (RSS, Atom, JSON Feed), stores articles and folder metadata in a local SQLite database (via FMDB), and presents them through a Cocoa/AppKit interface with a folder tree, article list, and built-in WebKit-based browser for reading. It supports smart folders, OPML import/export, and synchronization with Open Reader-compatible services (BazQux, FeedHQ, InoReader, TheOldReader). The application also provides a plugin system for extending feed sources, sharing, search, and actions, and uses Sparkle for automatic updates. The architecture follows a classic MVC pattern with a heavy reliance on notifications and the singleton pattern for the database and preferences. Key entry points include `AppController` (application delegate), `ArticleController` (article list management), `FoldersTree` (folder outline), `RefreshManager` (feed fetching), and `Database` (persistence). External dependencies include FMDB, MMTabBarView, TRVSURLSessionOperation, and Sparkle, all managed via Swift Package Manager or manual vendoring. The codebase is a mix of Objective-C and Swift, with some deprecated API usage and private WebKit hooks, but is actively maintained with a comprehensive test suite and CI pipeline.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
glanceapp/glance ★ 36461 1413 APPLICATION

Glance is a self-hostable web application designed as a customizable dashboard (startpage) that aggregates information from various sources into widgets. Built in Go, it features a modular widget architecture where each widget type (e.g., RSS, weather, clock) implements a common interface, allowing users to create personalized pages with multiple columns and widgets. The application serves HTML pages with embedded static assets (CSS, JS, images) and uses Go templates for server-side rendering, enhanced by a comprehensive set of template functions. Client-side JavaScript adds interactivity for dynamic updates, masonry layouts, and popovers. The system relies on a YAML-driven configuration (`glance.yml`) that supports variable substitution, file includes, and defines pages, columns, and widget settings. Data fetching is handled by centralized HTTP utilities with caching and user-agent rotation to avoid blocking external services. A theming system generates CSS variables from HSL-based configuration, enabling light/dark modes and custom themes. Optional authentication secures the dashboard, and the application includes diagnostic and CLI tools for maintenance. While the project demonstrates strong engineering in areas like request deduplication (singleflight), flexible configuration, and reusable template functions, it faces challenges due to its extensive widget proliferation (30+ types), coupling between frontend and backend logic, and reliance on an outdated Go version (1.26.6) which is no longer supported, indicating moderate technical drift. Despite these issues, Glance remains a popular and functional solution for personal dashboards.

RATING: 7.5/10 MAINT: maintained DRIFT: high
▸ 4 reusable components found
bannedbook/fanqiang ★ 53414 8579 APPLICATION

This repository is a comprehensive collection of tools, tutorials, and applications for bypassing internet censorship ("翻墙") in China. The core application is FQNews (fqnews2), an Android RSS/Atom/JSONFeed reader that integrates proxy/VPN functionality (based on sing-box, V2Ray, Shadowsocks, etc.) to fetch content from blocked websites without requiring a separate VPN app. The app is a fork of Feeder (an open-source RSS reader) with added circumvention capabilities. The repository also includes pre-packaged "one-click" proxy bundles for Chrome, Edge, Firefox on Windows/Mac/Linux, extensive platform-specific tutorials (Windows, macOS, iOS, Android, Linux, routers, game consoles), and server-side configuration files for V2Ray, Xray, Shadowsocks, Trojan, and other proxy protocols. The codebase shows active development on the Android app (fqnews2) with recent commits, Jetpack Compose UI rewrite, multi-device sync, and regular dependency updates. However, the tutorial/documentation portion appears less maintained with many outdated references.

RATING: 6.7/10 MAINT: maintained DRIFT: medium
▸ 6 reusable components found
0xd34df00d/leechcraft ★ 224 51 APPLICATION

LeechCraft is a modular, cross-platform desktop internet client built with C++ and Qt. It provides a plugin-based architecture where each plugin implements standard interfaces (IInfo, IPlugin2, IHaveSettings, IHaveTabs) and can be dynamically loaded. The core handles plugin loading, entity-based inter-plugin communication, settings management via XML dialogs, and a hook system for customization. Plugins cover a wide range of functionality: instant messaging (Azoth with XMPP/IRC/Tox), web browsing (Poshuku), RSS/Atom feed aggregation (Aggregator), music player (LMP with GStreamer), document viewer (Monocle with PDF/ePub/DjVu), email client (Snails), BitTorrent client, system monitoring, power management, and more. The codebase uses modern C++20 coroutines for async operations, a custom compile-time ORM (oral) for SQLite persistence, and functional utilities (Either, Visitor, ScopeGuard). Despite its ambitious scope and well-structured plugin system, the project shows signs of age: many plugins have incomplete translations, deprecated Qt patterns (old-style SIGNAL/SLOT macros), and external dependencies that may be difficult to build with current toolchains. The last meaningful development appears to have stalled, making the repository more valuable as a reference for plugin architecture and Qt patterns than as an actively maintained application.

RATING: 6.1/10 MAINT: stale DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: