ScottHanson.DE Savin it up for Friday night 🎵

Pinging RSSCloud with a static blog

One way to connect a blog to RSS readers and communities (like FeedLand) is to ping an RSSCloud server whenever your feed changes. But with the Jamstack model of triggering deploys to a static site hoster, I wasn't sure how to implement that, and a web search did not offer much help.

However, my hoster Netlify offers serverless functions (as do similar hosters like Vercel, Cloudflare Pages, DigitalOcean Apps, etc.). Specifically, I can run a function on a "deploy-successful" event, so I know the blog has just been rebuilt. RSSCloud expects a POST request, so I can send that off with node-fetch.

const fetch = require('node-fetch')

const handler = async function (_event, _context) {
  try {
    const params = new URLSearchParams()
    params.append('url', 'https://scotthanson.de/feed.xml')

    const response = await fetch('http://rpc.rsscloud.io:5337/ping', {
      method: 'POST',
      headers: { Accept: 'application/json' },
      body: params,
    })
    const data = await response.json()
    console.log(data)
  } catch (error) {
    // output to netlify function log
    console.log(error)
  }
}

module.exports = { handler }

Now RSS readers that listen to RSSCloud servers will know about changes to my feed within seconds.