A serverless RSS/Atom feed digest service that fetches your favorite blogs, summarizes them using AI, and sends beautiful email digests. Built with Cloudflare's edge technologies.
- 📨 Automated Email Digests: Get updates from your favorite blogs in one beautiful email
- 🤖 AI-Powered Summaries: Each article is automatically summarized using Cloudflare's Workers AI
- 🎨 Modern Design: Clean, responsive email template that works across all email clients
- ⏰ Flexible Scheduling: Configure your preferred delivery days and times
- 🔒 Secure & Scalable: Built on Cloudflare's global network
- 💨 Fast & Efficient: Parallel processing of feeds with batch support
- Node.js (v16 or higher)
- Wrangler CLI
- Cloudflare account (free tier works!)
- SendGrid account (free tier works again!)
- Clone and install dependencies:
git clone https://github.com/m6un/rss-worker.git
cd rss-worker
npm install- Configure environment:
# Copy example env file
cp .env.example .dev.vars
# Add your SendGrid API key
echo "SENDGRID_API_KEY=your_key_here" >> .dev.vars- Set up database:
# Create D1 database
wrangler d1 create prod-rss-worker
# Apply schema
wrangler d1 execute prod-rss-worker --file=./schema.sql- Add your feeds:
INSERT INTO feeds (url, user_id, blog_name) VALUES
('https://blog.example.com/feed.xml', 1, 'Example Blog');
INSERT INTO user_preferences (
user_id,
cron_schedule,
email_to,
email_from,
email_subject
) VALUES (
1,
'0 9 * * *', -- Daily at 9 AM
'your.email@example.com',
'digest@yourdomain.com',
'Your Daily Tech Digest'
);- Deploy:
npm run deploy# Start local development server
npm run devThe service is built using modern serverless technologies:
- Cloudflare Workers: Edge computing platform
- D1 Database: SQLite at the edge
- Workers AI: ML-powered summaries
- SendGrid: Reliable email delivery
-
Feed Processing:
- Fetches RSS/Atom feeds in parallel batches
- Filters out previously processed items
- Generates AI summaries for new content
-
Email Generation:
- Creates beautiful HTML emails
- Mobile-responsive design
- Sanitized content for security
-
Delivery:
- Scheduled via cron triggers
- Configurable delivery times
- Error handling and retries
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Create a GitHub Issue
- Email: hi@chandrxn.me