Giter Site home page Giter Site logo

rss-to-email's Introduction

RSS to Email

Stay on top of your favorite RSS feeds - on your own terms. This project allows you to set up custom email updates based on the RSS feeds you specify, all within the comfort of your own Github account.

Say goodbye to constantly checking for updates, and hello to staying informed on your own schedule.

Introductory post on my blog

How does it work

  • Github workflow runs on a schedule
  • Workflow retrieves updates from your RSS feeds since its last successful run
  • Workflow sends the updates through a SMTP server of your choice

Getting started

  1. Fork this repository
  2. Update feeds.ts with your favorite RSS feed(s)
  3. Update the cron schedule in the workflow file
  4. Add the following repository variables in settings:
    • SMTP_SERVER for example: smtp.gmail.com
    • SMTP_PORT for example: 587
  5. Add the following repository secrets in settings:
    • MAIL_TO the mail address to send the email to
    • SMTP_USERNAME
    • SMTP_PASSWORD
  6. Done ๐Ÿ’ช
โš ๏ธ The above variables and secrets can also be changed directly in the workflow, but be aware that if your repo is public that this could expose your credentials.

Pro and cons

๐Ÿ”ฅ your data stays in your own Github account

โ„๏ธ fully customizable email

๐Ÿ“… receive the updates when and where you want

๐Ÿ’ฉ might have to do some tweaking

Cron schedule

Use crontab guru to play around with the cron schedule that works best for you.

Some example schedules:

cron description
0 6 * * * every day at 06:00
0 9-18 * * 1-5 monday to friday every hour from 09:00 to 18:00
0 10 * * 6 saturday at 10:00
0/15 * * * * every 15 minutes

Because the workflow looks at the previous successful run to determine which posts to send you, you can also disable the workflow by hand and pickup again later. There might be a limit to the amount of posts in a single RSS feed.

Note: Github workflow runs do not support timezones for cron schedules.

Screenshot

Below is a screenshot of how the Daring Fireball updates use custom styling and my own blog has a generic style.

Example of the email

Local dev server

This project includes a local dev server to view and modify the email template based on your RSS feeds.

Start the dev server:

npm install
npm run dev

How does it work

Rendering the email starts in the renderEmail function. It will retrieve and parse the feeds, and trigger rendering the email with the Email component.

Build on top of

  • react-email
    This project is what triggered me to create this repo. It is still very beta, but if we can ditch all the clunky specialized tools for creating email layouts and replace them with a React / Typescript based solution โค๏ธ
  • vite
    For rendering and the dev server. Had to do some hacking to get it working well with HMR and my cache implementation is ๐Ÿ’ฉ. But Vite itself is ๐Ÿ”ฅ
  • dawidd6/action-send-mail
    Github Action to send out emails, just bring your own SMTP provider

rss-to-email's People

Contributors

bdevos avatar cdubz avatar fredericgaudreau avatar renovate[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.