mirror of
https://github.com/juherr/kill-the-news.git
synced 2026-06-20 22:03:48 +00:00
2.4 KiB
2.4 KiB
Email-to-RSS
A modern service that turns email newsletters into RSS feeds, built with Cloudflare Workers. This service provides unique email addresses per feed, a front-end admin panel, and long-term storage of newsletters.
Features
- Minimal Dependencies: Built using modern, web-friendly libraries without Node.js-specific dependencies
- Lightweight: Entire worker bundle is only ~360KB (gzipped: ~65KB)
- Email Processing: Handles emails from ForwardEmail.net webhook
- RSS Generation: Serves standards-compliant RSS feeds
- Admin Interface: Simple management UI for feeds and emails
- Storage: Uses Cloudflare KV for efficient, low-cost storage
Architecture
Email Flow
- A newsletter arrives at
newsletter-XYZ@yourdomain.com - ForwardEmail.net forwards it to your Cloudflare Worker
- The Worker parses the email, extracts content, and stores it in KV
- The RSS feed is updated with the new content
Key Components
- Email Parser: Lightweight custom parser that works in edge environments
- Feed Generator: Modern RSS feed generator with minimal dependencies
- Admin UI: Simple interface to manage feeds and view emails
Development
This project uses a modern build process with Wrangler's built-in bundling (powered by esbuild):
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Deploy to Cloudflare
npm run deploy
Environment Variables
ADMIN_PASSWORD: Password for the admin interfaceDOMAIN: Your custom domain for receiving emailsFORWARDEMAIL_TOKEN: Token for ForwardEmail.net webhook authentication
Technology Stack
- Cloudflare Workers: Edge computing platform
- Cloudflare KV: Key-value storage
- Hono: Lightweight web framework
- TypeScript: Type-safe JavaScript
- Feed: Modern RSS feed generator
- Zod: Schema validation
Setup
- Clone this repository
- Install dependencies with
npm install - Copy
wrangler.toml.exampletowrangler.tomland set your values - Run
npm run devto start the development server - Deploy with
npm run deploy
Minimalist Approach
This project follows a minimalist approach:
- No unnecessary dependencies
- Web-standard APIs where possible
- No Node.js-specific modules or polyfills
- Modern TypeScript features
- Clean, maintainable code structure
License
MIT