MCPSERV.CLUB
TinyFeed

TinyFeed

Self-Hosted

Generate static HTML pages from RSS, Atom, and JSON feeds

Active(82)
293stars
0views
Updated 13 days ago
TinyFeed screenshot 1
1 / 2

Overview

Discover what makes TinyFeed powerful

**tinyfeed** is a lightweight, self‑hosted feed aggregation tool written in Go. It consumes any number of RSS, Atom, or JSON‑feed URLs and outputs a single static HTML page that can be served by any web server. The project deliberately eschews databases, configuration files, and runtime dependencies in favor of a pure CLI that generates deterministic HTML. This design makes tinyfeed ideal for environments where simplicity and reproducibility are paramount, such as cron‑driven dashboards or static site generators.

Feed Parsing

Customizable Rendering

Theming

Daemon Mode

Overview

tinyfeed is a lightweight, self‑hosted feed aggregation tool written in Go. It consumes any number of RSS, Atom, or JSON‑feed URLs and outputs a single static HTML page that can be served by any web server. The project deliberately eschews databases, configuration files, and runtime dependencies in favor of a pure CLI that generates deterministic HTML. This design makes tinyfeed ideal for environments where simplicity and reproducibility are paramount, such as cron‑driven dashboards or static site generators.

Key Features

  • Feed Parsing – Powered by the mature gofeed library, tinyfeed handles all common feed formats and auto‑detects encoding.
  • Customizable Rendering – Developers can supply their own CSS or HTML templates; the CLI exposes placeholders for titles, dates, and content.
  • Theming – The generated page automatically switches between dark and light modes based on the user’s system preference, using CSS media queries.
  • Daemon Mode – A lightweight background process can be started to periodically regenerate the feed page, making it suitable for real‑time dashboards without a full web framework.
  • Accessibility – The HTML output follows WCAG 2.1 AA guidelines: semantic tags, proper contrast ratios, and keyboard navigation support.

Technical Stack

  • Language: Go (1.20+), compiled to a single binary.
  • Parsing Library: github.com/mmcdole/gofeed – handles feed discovery, parsing, and error recovery.
  • Template Engine: Go’s standard html/template package; developers can override the default template by providing a file path.
  • Styling: Pure CSS; optional external stylesheets can be linked via the CLI.
  • Build & Distribution: Uses Go modules; binaries are available for Linux, macOS, and Windows. No external runtime is required.

Deployment & Infrastructure

  • Self‑Hosting – The binary can be dropped onto any machine; no service manager is required, though tinyfeed supports systemd, openrc, and cron for scheduled runs.
  • Containerization – A minimal Docker image is available on Docker Hub; the image contains only the binary and a lightweight scratch base, keeping attack surface minimal.
  • Scalability – Because the output is static, scaling is achieved by serving the generated file via a CDN or load‑balanced web server. The generator itself scales linearly with CPU cores, as each feed is fetched concurrently.

Integration & Extensibility

  • API – While tinyfeed has no HTTP API, its CLI accepts JSON payloads via stdin, enabling integration with CI/CD pipelines or serverless functions.
  • Webhooks – Developers can hook the daemon mode into webhook triggers (e.g., a GitHub Actions workflow) to regenerate feeds on demand.
  • Plugins – The project exposes a small hook for custom feed processors: by implementing the FeedProcessor interface, developers can inject transformations (e.g., Markdown rendering or profanity filtering) before the HTML is rendered.

Developer Experience

  • Configuration – All options are exposed as command‑line flags; no hidden configuration files reduce friction.
  • Documentation – The official site hosts comprehensive guides (installation, usage, customization) with examples and screenshots.
  • Community – The repository has an active issue tracker, and contributors are encouraged to propose demos or theme extensions via pull requests.
  • Licensing – BSD‑3‑Clause, allowing commercial use without attribution requirements.

Use Cases

  1. Personal Dashboards – Generate a home‑screen RSS feed page that can be pinned to a browser or TV.
  2. Team Knowledge Bases – Embed a static feed page into an internal wiki or Confluence space to surface relevant industry news.
  3. Static Site Integration – Combine tinyfeed with static site generators (Hugo, Jekyll) to produce a unified site that includes dynamic content without server-side rendering.
  4. CI‑Driven Reports – Use the daemon mode in CI pipelines to produce build status or security advisories as an HTML page that can be served from a CDN.

Advantages Over Alternatives

  • Zero Runtime Dependencies – No database or server stack means fewer points of failure and easier compliance with security policies.
  • Deterministic Output – The same input always yields the same HTML, simplifying caching and version control.
  • Performance – Compiled Go binaries execute quickly; concurrent feed fetching reduces latency compared to single‑threaded alternatives.
  • Licensing Flexibility – BSD license allows integration into proprietary products without copyleft obligations.

In summary, tinyfeed offers developers a minimal yet powerful tool for aggregating feeds into static web pages. Its Go‑centric design, combined with an emphasis on configurability and container friendliness, makes it a compelling choice for any project that needs reliable, lightweight feed rendering without the overhead of a full web application.

Open SourceReady to get started?

Join the community and start self-hosting TinyFeed today