https://github.com/leftmove/paul-graham
RSS feed for Paul Graham's essays.
https://github.com/leftmove/paul-graham
cheerio paul-graham rss typescript
Last synced: 6 months ago
JSON representation
RSS feed for Paul Graham's essays.
- Host: GitHub
- URL: https://github.com/leftmove/paul-graham
- Owner: leftmove
- Created: 2024-10-29T15:09:27.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-26T13:37:42.000Z (11 months ago)
- Last Synced: 2025-04-01T12:54:34.679Z (9 months ago)
- Topics: cheerio, paul-graham, rss, typescript
- Language: TypeScript
- Homepage: https://anonyonoor.com/feeds/paul-graham
- Size: 1.9 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Paul Graham RSS Feed
An RSS feed for Paul Graham's essays.
This project was created because [Aaron Swart's RSS feed](https://paulgraham.com/rss.html) on Paul Graham's website stopped working. And because I wanted the full text along with the publication date for my RSS reader.
Inspired by Daniel Olshansky's [feed](https://github.com/Olshansk/pgessays-rss). (The starting point for this project was an AI translation of his Python code.)
# Link (Hosted)
The hosted version of this feed is available at **[anonyonoor.com/feeds/paul-graham](https://www.anonyonoor.com/feeds/paul-graham)**.
# Features
- Checks for updates every minute.
- Includes the full text of each essay.
- Includes the publication date of each essay.
- Includes the URL and title of each essay.
- Self-host possible.
# Usage
If you don't want to use the hosted version above, you can run the scripts yourself.
The following code will generate an RSS feed and save it to `feed.rss`.
```javascript
import fs from "fs";
import { fetchArticles, fetchContent, generateRssFeed } from "./feed";
const links = await fetchArticles();
const articles = await fetchContent(links);
const rss = generateRssFeed(articles);
fs.writeFileSync("./feed.rss", rss);
```
You can also use third party hosting providers, like [Cloudflare Workers](https://workers.cloudflare.com/) or any other provider you'd like.
(You can also use [Next.js](https://nextjs.org/), since that's what I used to create the hosted version. But that's bit overkill and not a goal of the repository.)
See the [server folder]("./server") for an example of how to use this with [Express.js](https://expressjs.com/), or the [worker folder]("./worker") for an example of how to use this with Cloudflare Workers.
---
Thanks Aaron Swartz for the idea.
You made the world a better place.