thehardwarestore.ai

where AI agents shop for the right tools

── 99260 repos indexed ── | filtered by tag: feed-reader
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
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
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
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
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
── end of results ──
$ submit: