DEV Community

Tim B
Tim B

Posted on

Zero-Code RSS Feeds with Mkfd: From Webpage to Feed in Minutes

GitHub logo TBosak / mkfd

RSS feed builder created with Bun🥖 and Hono🔥- builds from webpages and/or REST API calls

mkfd

Docker Pulls GitHub Repo stars

🏃 Running locally

🍞 Bun installation Visit bun.sh for more info

curl https://bun.sh/install | bash
Enter fullscreen mode Exit fullscreen mode

📦 To install dependencies

bun install
Enter fullscreen mode Exit fullscreen mode

🚀 To run

bun run index.ts --passkey=your_passkey_here --cookieSecret=your_cookie_secret_here
Enter fullscreen mode Exit fullscreen mode

➡️ Access the GUI at http://localhost:5000/


🐳 Running with Docker

🏠 Locally

docker build -t mkfd .
docker run -p 5000:5000 -v /local/mount/path:/configs -e PASSKEY=your_passkey -e COOKIE_SECRET=your_cookie_secret mkfd
Enter fullscreen mode Exit fullscreen mode

📥 From Docker Hub

docker pull tbosk/mkfd:latest
docker run -p 5000:5000 -v /local/mount/path:/configs -e PASSKEY=your_passkey -e COOKIE_SECRET=your_cookie_secret tbosk/mkfd:latest
Enter fullscreen mode Exit fullscreen mode

🔧 To Do

  • Locally testing subscriptions to feeds
  • Add all possible RSS fields to models
  • Add option for parallel iterators
  • Add form validation
  • Add selector suggestion engine
  • Add feed preview pane
  • Store/compare feed data to enable timestamping feed items
  • Create dockerfile
  • Create Helm chart files
  • Create GUI
  • Utilities
    • HTML stripper
    • Source URL wrapper for relative links
  • Amass contributors


paypal






Mkfd is a zero-code RSS feed builder created with Bun and Hono, featuring an intuitive front-end that simplifies the entire feed creation process. Instead of manually writing scripts, you just open the interface, input a target URL along with CSS selectors, and Mkfd exports a YAML configuration file. Mkfd then uses that YAML to periodically build and update your feed. In this post, I'll show a high-level overview on how to use Mkfd’s user interface and show you how quickly you can start generating feeds from any webpage or REST API — without writing a single line of code.


🏃 Running locally

🍞 Bun installation Visit bun.sh for more info

curl https://bun.sh/install | bash
Enter fullscreen mode Exit fullscreen mode

📦 To install dependencies

bun install
Enter fullscreen mode Exit fullscreen mode

🚀 To run

bun run index.ts --passkey=your_passkey_here --cookieSecret=your_cookie_secret_here
Enter fullscreen mode Exit fullscreen mode

➡️ Access the GUI at http://localhost:5000/


🐳 Running with Docker

🏠 Locally

docker build -t mkfd .
docker run -p 5000:5000 -v /local/mount/path:/configs -e PASSKEY=your_passkey -e COOKIE_SECRET=your_cookie_secret mkfd
Enter fullscreen mode Exit fullscreen mode

📥 From Docker Hub

docker pull tbosk/mkfd:latest
docker run -p 5000:5000 -v /local/mount/path:/configs -e PASSKEY=your_passkey -e COOKIE_SECRET=your_cookie_secret tbosk/mkfd:latest
Enter fullscreen mode Exit fullscreen mode

🧭 Navigating the Mkfd UI

Open http://localhost:5000 after running Mkfd. You’ll see a form that lets you input:

  • The Target URL of the webpage or API you want to convert into a feed.
  • A Schedule (in minutes) for how often Mkfd should re-scrape and rebuild the feed.

Mkfd provides a user-friendly interface (with SelectorGadget integration for figuring out the correct selectors) that lets you pinpoint elements on the webpage:

  • Article Container Selector – Identify the main wrapper for each item, e.g., .article or li.post-item.
  • Title, Link, Date Selectors – Extract the specific data fields for your feed.
  • Additional Fields – You can also include a description, author, or enclosures (such as audio, videos, or images).

The Aforementioned UI:

Front Page #1

Front Page #2

Front Page #3

Active Feeds Page

Note: If accessing remotely from outside localhost, the passkey used on deployment is needed to enter the UI but not to consume the feeds.


🗂️ Generating the YAML Configuration

After you specify your selectors and scheduling details, just hit Submit. Mkfd will create a YAML configuration file with a unique GUID — this file contains:

  • URL – The page or API endpoint you’re scraping.
  • Selectors – The custom CSS selectors for titles, links, dates, etc.
  • Schedule – The periodic interval (in minutes) for Mkfd to update your feed.

This YAML file lives within the project directory and serves as the master instruction set for the feed builder.


⚙️ How Mkfd Builds and Serves the Feed

Once your YAML is set up, Mkfd executes a periodic job to:

  1. Scrape the Specified URL – Using your CSS selectors to retrieve the latest content.
  2. Generate an RSS Feed – Formatting the scraped data into a valid feed structure.
  3. Expose the Feed – Mkfd will automatically serve the feed from an endpoint for the end user to consume.

💡 Tips and Tricks

  • Selector Fine-Tuning: If your feed items aren’t showing as expected, double-check your CSS selectors.
  • Multiple Feeds: You can create multiple feeds for different websites or data sources. Each feed is built using its own web worker.
  • Scheduling Intervals: Avoid overly frequent scrapes (e.g., every minute) to reduce server load and potential IP blocking. A common interval is 15 minutes to 1 hour.
  • Version Control Your YAML: If you’re setting up multiple feeds or complex data extractions, keep your YAML in version control for easy rollback or iteration.

✅ Conclusion

Mkfd offers a straightforward, no-code solution for generating custom RSS feeds out of any webpage or REST API.

  1. Scrape Data using simple CSS selectors—no coding required.
  2. Generate a YAML file that captures your scraping logic and schedule.
  3. Automatically Build and Serve the feed on a configurable schedule.

Whether you’re a seasoned developer or just need a simple feed builder, Mkfd’s browser-based UI, integrated selector tools, and one-click YAML generation make it easy to convert the web into feeds you control — all without writing a single line of code.

Happy Building! Check out the GitHub repo for more details and/or to contribute to Mkfd’s development.

Top comments (0)