Overview
Discover what makes FreshRSS powerful
FreshRSS is a **lightweight, self‑hosted RSS/Atom feed aggregator** written in PHP that targets developers who need a flexible, extensible back‑end for content ingestion and delivery. From the technical standpoint, it functions as a *content pipeline*: feeds are fetched (polling or via WebSub push), parsed into a normalized internal format, stored in a relational database, and then exposed through both a web UI and a RESTful API. The architecture is deliberately modular so that each stage—fetcher, parser, storage, renderer—can be swapped or extended without touching the core.
Language & Frameworks
Database
Caching & Queueing
Web Sub
Overview
FreshRSS is a lightweight, self‑hosted RSS/Atom feed aggregator written in PHP that targets developers who need a flexible, extensible back‑end for content ingestion and delivery. From the technical standpoint, it functions as a content pipeline: feeds are fetched (polling or via WebSub push), parsed into a normalized internal format, stored in a relational database, and then exposed through both a web UI and a RESTful API. The architecture is deliberately modular so that each stage—fetcher, parser, storage, renderer—can be swapped or extended without touching the core.
Technical Stack & Architecture
- Language & Frameworks: Pure PHP 8+ with a lightweight MVC structure. The codebase follows PSR‑4 autoloading, making it compatible with Composer dependencies and IDE navigation. No heavy framework like Symfony or Laravel is used; instead, FreshRSS implements its own routing and dependency injection container.
- Database: Supports MySQL/MariaDB, PostgreSQL, SQLite, and even plain files (for very small deployments). The schema is normalized but also uses full‑text indexes for fast search across article titles and content.
- Caching & Queueing: Optional Redis or Memcached integration for caching parsed feeds and speeding up the API. Background jobs (feed fetching, cleaning) are scheduled via cron or a lightweight job queue built into the application.
- Web Sub: Implements the PubSubHubbub/WebSub protocol to receive instant push notifications, reducing polling overhead. This is a first‑class feature rather than an add‑on.
- Internationalization: Supports 20+ languages out of the box, using gettext‑style
.pofiles that developers can extend.
Core Capabilities & APIs
- REST API: Exposes CRUD operations for feeds, articles, tags, and user settings. The API is documented with OpenAPI/Swagger‑style endpoints and supports OAuth2 for third‑party clients.
- Command‑Line Interface: A PHP CLI tool lets you trigger feed updates, export OPML, or run maintenance tasks programmatically.
- Web Scraping: Built‑in XPath and JSON scraping allows developers to create virtual feeds from arbitrary web pages, useful for sites without RSS support.
- Tagging & Querying: Articles can be tagged, and complex queries (e.g., “unread AND tag:tech”) are supported both via the UI and API.
- Export/Import: Full OPML support for migrations, as well as JSON export of article snapshots.
Deployment & Infrastructure
FreshRSS is designed for self‑hosting on modest hardware—the README cites a Raspberry Pi 1 running under one second for 150 feeds. It requires a standard LAMP stack (Apache 2.4, PHP 8+, a supported database) but also runs on Nginx or Caddy with minimal configuration. Docker images are available, and the project ships a docker-compose.yml that wires together PHP‑FPM, MySQL, and Redis. For high‑scale deployments (50k+ feeds, 1M+ articles), the database layer can be sharded or replicated; the application itself is stateless aside from session data, making horizontal scaling straightforward.
Integration & Extensibility
- Plugin System: FreshRSS exposes a hook API (similar to WordPress) where developers can register callbacks for events like
onArticleFetched,onFeedUpdated, orbeforeRender. Plugins are distributed as Composer packages and can declare dependencies on other plugins. - Webhooks: Users can register outbound webhooks that fire on article creation or feed update, enabling integration with external services (e.g., Slack, custom dashboards).
- Theme & UI Customization: The front‑end is built with Twig templates and SCSS. Developers can create custom themes or override existing components without modifying core files.
- OAuth & OpenID Connect: The authentication layer supports external identity providers, making it easy to integrate with corporate SSO or social login services.
Developer Experience
FreshRSS places a strong emphasis on clean documentation. The developer guide covers architecture, coding standards (PSR‑12), testing practices, and contribution workflows. The community is active on GitHub, with issues labeled “help wanted” and a Codespaces template for quick experimentation. The license (GNU AGPL 3) ensures that any modifications remain open source, which encourages collaborative plugin development.
Use Cases
- Personal Knowledge Base: Small teams or solo developers can host FreshRSS to aggregate blogs, podcasts, and documentation sites into a single searchable interface.
- Enterprise Content Hub: Organizations can deploy FreshRSS behind their intranet, using LDAP/OpenID Connect for authentication and Redis caching to serve thousands of users.
- Data‑Driven Projects: Researchers can scrape niche websites, store the content in FreshRSS, and then consume it via the API for natural language processing pipelines.
- IoT & Edge Deployments: The lightweight footprint allows FreshRSS to run on Raspberry Pi or similar edge devices, providing offline-friendly feed reading for remote locations.
Advantages Over Alternatives
- Performance & Scalability: Benchmarks show FreshRSS handles >1 M articles with minimal latency, outperforming many commercial readers that rely on heavy JavaScript front‑ends.
- Full Control & Privacy: Being self‑hosted, all data stays on the developer’s infrastructure; no third‑party tracking or ads.
- Extensibility: The hook and plugin system is more granular than many competitors, allowing deep
Open SourceReady to get started?
Join the community and start self-hosting FreshRSS today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
WildDuck Mail Server
Scalable, Unicode‑first IMAP/POP3 mail server
Spooty
Self‑hosted Spotify downloader via YouTube
ILIAS
Open Source LMS for schools, universities and enterprises
Shopware
Open‑source, headless commerce platform for modern online stores
ArchiveBox
Self‑hosted web archiving for permanent preservation
Hypersomnia
Community-driven multiplayer shooter built in modern C++
