RSSGen is an intelligent RSS feed generator that automatically extracts and converts blog content into RSS feeds using AI-powered web scraping. The system analyzes blog website URL's that you pass, identifies post structures, and generates structured RSS feeds with or without manual configuration.
- AI-Powered Content Analysis: Uses Google Gemini AI to automatically identify blog post structures and content selectors
- Supports Multiple RSS Formats: Supports Atom RSS and RSS 2.0 formats
- Automatic Feed Discovery: Analyzes blog homepages to extract metadata and discover post links
- Intelligent Web Scraping: Dynamically extracts title and content from posts
- Self-Host Support: Containerized deployment with Docker Compose
GET /feeds- List all feedsPOST /feeds- Create a new feed from a blog URLPATCH /feeds/{id}- Update feed informationDELETE /feeds/{id}- Delete a feedGET /feeds/scrape- Analyze a URL for feed metadata
GET /feeds/{feed_id}/posts- Get all posts for a feedGET /feeds/{feed_id}/posts/scrape- Scrape a single post for a feed
- Rust (latest stable version)
- Docker
- Google Gemini API key
Create a .env file in the api directory:
DATABASE_URL=postgresql://username:password@localhost:5433/rssgen
GEMINI_API_KEY=your_gemini_api_key_here
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
POSTGRES_DB=rssgen-
Start the database:
cd api docker compose up -d -
Run database migrations:
diesel migration run
-
Start the development server:
cargo run
The API will be available at http://localhost:8080.
The application uses three main tables:
- feeds: Store blog feed information and metadata
- posts: Store individual blog posts with content
- post_selectors: Store CSS selectors for content extraction
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
- RSS feed generation and serving
- Scheduled automatic feed updates
- Support for multiple AI providers
- Feed validation and quality scoring
- Web interface for feed management
- Integration with popular RSS readers