Skip to content

Sync feeds (RSS, Atom, JSONFeed) to a Notion database

License

Notifications You must be signed in to change notification settings

virtualroot/rss-to-notion

Repository files navigation

RSS to Notion

A Go application that automatically syncs feeds to a Notion database. It fetches feeds in parallel, converts HTML content to Markdown, and creates pages in your Notion database while avoiding duplicates.

Features

  • Supports RSS, Atom and JSONFeed
  • Parallel processing of multiple feeds
  • HTML to Markdown conversion until we find a way to support Notion's RichText
  • Duplicate entry detection
  • Rate limiting to respect Notion API limits
  • YAML configuration file support

Prerequisites

  • Go 🐹
  • A Notion account and integration API key
  • A Notion database to store the feeds entries

Setup

  1. Create a Notion integration:

  2. Create a Notion database:

    • Create a new database in Notion
    • Add the following properties:
      • Name (title)
      • URL (url)
      • Published (date)
    • Share the database with your integration
    • Copy the database ID from the URL (the part after the workspace name and before the question mark)
  3. Clone the repository:

    git clone https://github.com/virtualroot/rss-to-notion
    cd rss-to-notion
  4. Create a feeds.yaml configuration file:

    feeds:
       - https://example.com/blog.rss
       - https://example.org/feed.atom
       - https://blog.example.net/feed.xml
    notion_db_id: "your-database-id"
    notion_api_key: "your-integration-api-key"
  5. Build and run:

    go build
    ./rss-to-notion

Configuration

The feeds.yaml file supports the following options:

  • feeds: List of RSS feed URLs to monitor
  • notion_db_id: Your Notion database ID
  • notion_api_key: Your Notion API integration token

Rate Limiting

The application implements rate limiting of 3 requests per second to comply with Notion's API guidelines.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Sync feeds (RSS, Atom, JSONFeed) to a Notion database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published