• Blog
  • Docs
  • Pricing
  • Weโ€™re hiring!
Log inSign up
artivilla

artivilla

rss-generator

rss generator that creates rss feeds for non-rss blogs
Public
Like
rss-generator
Home
Code
4
backend
6
shared
1
README.md
main.tsx
Branches
3
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data โ€“ all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
8/2/2025
Viewing readonly version of main branch: v52
View latest version
README.md

RSS Feed Generator

A generic RSS feed generator that creates RSS feeds for blogs that don't provide their own. Uses a JSON manifest to configure scraping rules for any blog, making it easy to add new sources without writing code.

How It Works

  1. JSON Configuration: Define blogs and scraping rules in /backend/blogs.json
  2. Automated Scraping: Cron job runs hourly to scrape configured blogs
  3. RSS Generation: Converts scraped posts to valid RSS XML
  4. Feed Serving: Access feeds at /rss/<slug>.xml

Core Services

  • HTTP API (/backend/index.ts): Serves RSS feeds via Hono routing
  • Cron Scraper (/backend/cron_generateFeeds.ts): Hourly blog scraping and RSS generation
  • Generic Scraper (/backend/scraper.ts): CSS selector-based blog parsing
  • RSS Generator (/backend/rss.ts): Converts posts to RSS XML format

Available Feeds

  • Neynar Blog: /rss/neynar.xml - https://artivilla--442b5b3e6f9511f08f640224a6c84d84.web.val.run/rss/neynar.xml

Adding New Blogs

  1. Add a new entry to /backend/blogs.json with CSS selectors
  2. The cron job will automatically pick it up on the next run
  3. Feed will be available at /rss/<your-slug>.xml

API Endpoints

  • GET / - Interactive status dashboard showing all feeds and their last successful generation times
  • GET /rss/<slug>.xml - RSS feed for a specific blog
  • GET /feeds - JSON list of available feeds (legacy)
  • GET /status - JSON status of all feeds with metadata

Storage

  • Uses Val Town Blob Storage with single key per feed: rss_{slug}.xml
  • Feeds are updated only on successful scrapes
  • Stale feeds are served indefinitely until next successful update
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
Weโ€™re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
ยฉ 2025 Val Town, Inc.