Self-host mkfd
1.0.0Feed generation toolkit turning web sources into RSS
- Stars
- 284
- Port
- 5000 (HTTP web interface and API)
tbosk/mkfdWhat is mkfd?
mkfd lets you create RSS feeds from sources that don't provide them natively — websites, email inboxes (IMAP), APIs, and other web content. It ships a React-based web interface for defining and managing feeds. Features include CSS-selector scraping, multi-page drill chains, Playwright-powered advanced scraping with optional Chrome extensions, IMAP email monitoring for Gmail, Yahoo and Outlook, a feed preview pane, parallel item processing, Flaresolverr support for Cloudflare-protected sites, and a selector suggestion helper. The service listens on port 5000 and needs three generated secrets (PASSKEY, COOKIE_SECRET, ENCRYPTION_KEY) for auth and encryption. You can run it with Docker, Docker Compose, or locally on Bun; email handling uses a separate Node.js process with adjustable memory. Licensed MIT and actively developed.
Should you self-host mkfd?
mkfd scores 46/100 on selfhost.directory (how scoring works) and ranks #47 of 85 in Feed Reader. It has 284 GitHub stars.
There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Typescript.
Its closest alternative on selfhost.directory is RSSHub (85/100, 46 703 stars). It scores higher overall, so compare the two before you pick. See mkfd vs RSSHub side by side.
Features
- Advanced scraping with Playwright
- Chrome extensions support
- Date parser with format overrides
- Drill chains for multi-page extraction
- Email feeds via IMAP
- Feed preview pane
- Flaresolverr integration
- HTML stripper
- Nested link follower / drilldown
- Parallel iterators
- RSS Feed Generation
- Selector suggestion engine
- Source URL wrapper for relative links
- Web scraping with CSS selectors
mkfd README
More in Web Scraping
ObscuraOpen-source, self-hosted headless browser engine in Rust: runs V8 JavaScript, speaks CDP for Puppeteer and Playwright, with built-in stealth and tracker blocking.
RSS-BridgeSelf-hosted, open-source PHP app that generates RSS, Atom and JSON feeds for websites missing them, with 447 community bridges and file, SQLite or Memcached caching.
RSS-ProxyOpen-source, self-hosted feed generator that converts any static website into RSS, ATOM or JSON feeds, filters existing feeds, and runs from a single Docker container.
scrape-dojoSelf-hosted web scraping with JSON workflows. 25+ actions, Handlebars/JSONata templates, cron scheduling, encrypted secrets, real-time monitoring, optional JWT/OIDC/MFA.
TRAWLA self-hosted, open-source scraping engine that bypasses JavaScript challenges and CAPTCHAs using an adaptive tier engine with HTTP-first approach and MCP support.
txtdottxtdot is a self-hosted, open-source HTTP proxy that fetches web pages and returns only text, links and pictures — removing ads and scripts to reduce bandwidth.
url-to-pngSelf-hosted, open-source PNG screenshot service from URLs using Playwright with caching (S3/CouchDB/filesystem) and Prometheus metrics.
webclawSelf-hosted web extraction turning pages into clean Markdown, JSON, and LLM-friendly text. CLI, HTTP API, and MCP server for AI assistants. Rust, AGPL-3.0.
YacyYaCy is open-source, self-hosted search engine software — crawler, index and web front-end in one Java server, with a peer-to-peer network or an intranet search portal.
anakinSelf-hosted open-source web scraping API turning pages into clean markdown or JSON, with an anti-detect Camoufox browser, proxy auto-selection and a web dashboard.
ArchiveBoxArchiveBox is an open-source, self-hosted web archiving app that ingests bookmarks, RSS feeds and URLs, then saves durable HTML, PDF, PNG, WARC and MP4 copies.
binhex-official-byparrSelf-hosted, open-source API that drives a stealth headless browser to earn valid Cloudflare and other anti-bot cookies, and can fetch pages for Open WebUI's web loader.

0 comments