lwojcik / eleventy-template-multiplicity

Simple and elegant RSS aggregator site based on Eleventy
https://eleventy-m10y.lkmt.us
The Unlicense
28 stars 4 forks source link
11ty aggregator atom blog eleventy eleventy-starter eleventy-template eleventy-theme eleventy-themes rss

Multiplicity - RSS Aggregator Starter Based On Eleventy

Multiplicity (abbreviated as 'm10y') is a simple starter pack based on Eleventy static site generator that allows you to create RSS aggregator site.

Alongside the template code, it also contains a GitHub action required to keep the site up to date.

View demo

Project development is primarily done on GitHub. Mirrors of the main branch are also available on Codeberg and GitLab.

Instant deploy

Netlify:

Deploy to Netlify

Vercel:

Deploy with Vercel

Render:

Deploy to Render

Setup and personalization

  1. Fork the repository.
  2. Configure the site according to your preferences - see siteConfig.js and template files.
  3. Modify the list of feeds you want to aggregate - they are located in content/sites.
    1. Each site has the following properties:
      • name - name of the site
      • url - URL of the site
      • avatar - image to display alongside the site name (e.g. favicon). During the build process the image will be downloaded, resized and served locally
      • feed - URL of the RSS or JSON feed to fetch articles from
      • hideFromSiteList - set it to true if you want to hide this site from the list of sites on the Sites page. It is useful if you want to add two sites with different RSS feeds under the same name and avoid seeing duplicates on the list
  4. Deploy the site to Netlify or Vercel
  5. Set up the GitHub action in .github/workflows/scheduled_build.yml:
    1. Create a build hook URL and save it as a GitHub secret in your repository - e.g. NETLIFY_BUILD_HOOK_URL or VERCEL_BUILD_HOOK_URL
  6. Done! Your aggregator is up and running.

Translation file

See phrases.js for the list of translatable static phrases.

Note on persisting feed cache

The aggregator uses @11ty/eleventy-fetch plugin for fetching and caching network requests. If you use a hosting provider that supports persisting cache (e.g. Netlify or Vercel), you can limit number of network requests by making your .cache folder persistent between builds. See Eleventy docs on how to set it up.

Contributions

Contributions of the following kind are welcome:

Before contributing be sure to read Code of Conduct.

Sponsors

Huge thanks to generous sponsors of this project!

Licence

No license. Public domain, no strings attached. Yes, I'm being serious.