Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📰 CSS to RSS Feed CloudFlare Worker

Maintained by Megabyte Labs

HomepageContributingSlackMatrixGitHub


Turn any website into an RSS feed using CSS selectors — powered by Cloudflare Workers.


This project lets you convert any blog or article listing page into a valid RSS 2.0 feed using only URL parameters and CSS selectors. Whether the site doesn’t support RSS or you just want richer metadata, this tool gives you complete control over your feed.

🌐 Live demo: rss.manhattan.workers.dev
📖 Blog article: megabyte.space/generate-rss-feeds-from-any-website-with-cloudflare-workers-no-backend-needed
🎥 Video walkthrough: YouTube

📚 Table of Contents

✨ Features

  • ⚡️ No backend required — runs entirely on Cloudflare Workers
  • 🧠 Customizable with CSS selectors via URL query params
  • 🖼 Full RSS 2.0 output with images, authors, categories, and more
  • 🔄 Supports fetching full article content from post links
  • 🧩 Easily rebrand and self-host under your own domain

🚀 Quick Start

🟦 One-Click Deploy

Deploy to Cloudflare

✏️ Make sure to fork this repo first, then update the button URL with your GitHub username.

🧪 Example Usage

https://your-worker.workers.dev/?url=https://install.doctor/blog&item=.post&title=.post-title&description=.paragraph-intro&link=.post-link

Customize the query string to match your blog’s structure. All parameters accept valid CSS selectors.

Required Parameters:

ParameterDescription
urlThe URL of the blog or listing page
itemThe selector for each blog post
titleThe selector for the post title
descriptionThe selector for the post summary
linkThe selector for the post link

Optional Parameters:

ParameterDescription
pubDateSelector for publish date
creatorSelector for author
imageSelector for featured image
contentSelector for full article HTML
channelTitleCustom RSS channel title
channelDescriptionCustom feed description
managingEditorEmail contact for RSS feed
applicationNameName of the app/feed
twitterUserUsed in social share buttons

🌐 Hosting on Your Own Domain

You can proxy this Worker through your custom domain using:

  • 🌀 Cloudflare DNS + Route config
  • 🔁 Firebase Hosting rewrites

Example: serve your RSS feed at rss.yoursite.com.

📄 Learn More

🤝 Contributing

Pull requests are welcome! If you have ideas for improving selector flexibility, feed formatting, or scraping edge cases — we’d love your input.

📬 Contact: hey@megabyte.space
💻 Built with 💙 by Megabyte Labs

🧰 License

MIT License © Megabyte Labs Open-Source

About

Instantly generate RSS feeds from any website using CSS selectors. Built with Cloudflare Workers. Just pass a URL and CSS selectors to get a fully-formed RSS 2.0 feed — no backend required.

Topics

Resources

Stars

50 stars

Watchers

2 watching

Forks

Contributors

Languages