An intelligent, offline-friendly RSS reader built with Next.js that combines modern web technologies with AI-powered content analysis.
- RSS Feed Directory: Discover feeds from 768+ curated sources across 34 categories and 25 countries
- Smart RSS Aggregation: Fetch and parse RSS feeds with intelligent error handling and content cleaning
- AI-Powered Content Analysis: Sentiment analysis, clickbait detection, and toxicity scoring using local transformers
- Offline-First PWA: Progressive Web App with service worker for offline reading
- P2P Synchronization: Device-to-device sync for feeds and reading progress
- Intelligent Content Filtering: Filter articles by sentiment, toxicity, and content quality
- Responsive Design: Modern UI built with Tailwind CSS and Radix UI components
- Pull-to-Refresh: Native mobile-like refresh experience
- Unread Management: Track reading progress across devices
- Frontend: Next.js 15 with React 19 and TypeScript
- Styling: Tailwind CSS 4 with custom component library
- AI Processing: Local transformers using @xenova/transformers
- PWA: Next-PWA with service worker and manifest
- State Management: React Context with local storage persistence
- RSS Parser: Robust XML parsing with error handling and content cleaning
- Sentiment Analyzer: Local AI model for content analysis
- P2P Sync Service: Device synchronization using WebRTC
- Offline Storage: IndexedDB and localStorage for data persistence
- Worker System: Background processing for AI tasks
- Node.js 18+
- npm, yarn, pnpm, or bun
-
Clone the repository
git clone <repository-url> cd infrss
-
Install dependencies
npm install # or yarn install # or pnpm install
-
Start development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000
# Development server with Turbopack
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Lint code
npm run lint
# Development worker (for AI processing)
npm run dev:worker- Use the feed suggestion API to discover feeds:
- Browse 768+ curated feeds
- Search by category (tech, programming, food, etc.)
- Filter by country (news from 25 countries)
- Get intelligent suggestions based on topics
- See RSS_FEED_IMPORT.md for the complete feed directory
- Navigate to the manage page (
/manage) - Enter RSS feed URLs or use suggested feeds
- Organize feeds into categories
- Set content filtering preferences
- Browse articles by feed or category
- Use pull-to-refresh to update feeds
- Mark articles as read/unread
- Filter content by sentiment and quality scores
- Articles are cached for offline access
- Service worker handles background updates
- PWA installable on mobile devices
- Enable sync in settings
- Connect with other devices
- Share feed configurations and reading progress
Create a .env.local file for custom configuration:
# Optional: Custom CORS proxy
NEXT_PUBLIC_CORS_PROXY=https://your-cors-proxy.com
# Optional: P2P sync settings
NEXT_PUBLIC_SYNC_ENABLED=true
NEXT_PUBLIC_SYNC_INTERVAL=30000The app is optimized to minimize server-side API calls when deployed on hosting platforms like Netlify:
- Direct Fetch First: RSS feeds are fetched directly from the client browser when possible
- Automatic Proxy Fallback: If a feed is CORS-restricted, the app automatically falls back to the server proxy
- Smart Caching: The app remembers which feeds require the proxy to optimize future requests
- Cost Savings: This approach reduces server-side function invocations by ~90% for feeds that support CORS
This optimization is enabled by default and requires no configuration. The app will automatically determine the best fetch method for each feed.
The app includes a web manifest and service worker for PWA functionality. Customize the manifest in public/manifest.webmanifest.
src/
βββ app/ # Next.js App Router
β βββ api/ # API routes
β βββ manage/ # Feed management page
β βββ layout.tsx # Root layout
βββ components/ # React components
β βββ ui/ # Reusable UI components
β βββ ArticleCard.tsx # Article display component
β βββ Navigation.tsx # Navigation component
βββ lib/ # Core utilities
β βββ rssUtils.ts # RSS parsing and management
β βββ p2pSync.ts # P2P synchronization
β βββ types.ts # TypeScript interfaces
β βββ utils.ts # Helper functions
βββ workers/ # Background workers
βββ transformer-worker.ts # AI processing worker
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy automatically on push
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Next.js
- UI components from Radix UI
- AI processing with Transformers.js
- Styling with Tailwind CSS
For questions, issues, or feature requests:
- Open an issue on GitHub
- Check the documentation
- Review existing discussions
InfRSS - Intelligent RSS reading, reimagined for the modern web.