A professional, privacy-focused RSS feed reader that runs entirely in your browser. View and share RSS/Atom feeds without compromising your privacy or requiring server-side infrastructure.
xsukax RSS Viewer is a lightweight, client-side RSS feed reader designed for users who value privacy and simplicity. Built as a single HTML file with no dependencies, it provides a clean, GitHub-inspired interface for reading RSS 2.0 and Atom feeds directly in your web browser. The application leverages CORS proxy services to fetch feeds from any source, processes them entirely client-side, and supports shareable URLs for easy feed distribution.
Core Functionalities:
- Parse and display RSS 2.0 and Atom feed formats
- Fetch feeds through multiple CORS proxy fallbacks for reliability
- Generate shareable URLs with pre-loaded feed parameters
- Sanitize and safely render feed content
- Responsive design optimized for desktop and mobile devices
xsukax RSS Viewer is architected with security and privacy as foundational principles:
All feed parsing, rendering, and data processing occurs entirely within your browser. No user data, feed URLs, or reading habits are transmitted to external servers beyond the CORS proxies used to fetch public RSS feeds.
The application implements comprehensive cross-site scripting (XSS) prevention measures:
- HTML Sanitization: All feed content is sanitized before rendering, with automatic removal of potentially malicious elements including
<script>,<iframe>,<object>, and<embed>tags - Content Escaping: User inputs and feed data are properly escaped to prevent injection attacks
- Content Security: Description content is truncated and sanitized to prevent performance issues and security vulnerabilities
Feed URLs are validated using native browser URL parsing to ensure only properly-formatted URLs are processed, preventing potential exploitation through malformed input.
The application does not:
- Store cookies or local storage data
- Implement tracking or analytics
- Send data to backend servers
- Require user accounts or authentication
- Retain browsing history beyond browser session
As a single-file HTML application with embedded JavaScript, the entire codebase is auditable and transparent. Users can review every line of code to verify security claims and understand exactly how their data is handled.
- RSS 2.0 Compatibility: Full support for the RSS 2.0 specification
- Atom Feed Parsing: Native handling of Atom 1.0 feeds
- Metadata Extraction: Displays publication dates, authors, categories, and descriptions
- Multiple CORS Proxies: Automatic fallback through three different proxy services ensures high availability
- Error Handling: Graceful error management with user-friendly feedback
- Connection Recovery: Automatic proxy rotation on failure
- GitHub-Inspired Design: Clean, professional dark theme interface familiar to developers
- Responsive Layout: Optimized viewing experience on desktop, tablet, and mobile devices
- Empty States: Clear guidance when no feed is loaded
- Loading Indicators: Visual feedback during feed fetching operations
- Shareable URLs: Generate permanent links to specific feeds
- One-Click Copy: Copy shareable URLs to clipboard with a single click
- URL Parameters: Automatic feed loading from URL query parameters
- Single File Deployment: Entire application contained in one HTML file
- No Build Process: No compilation, bundling, or preprocessing required
- No External Libraries: Uses only native browser APIs and Tailwind CSS via CDN
- Lightweight: Minimal resource footprint
- Fast Parsing: Efficient DOM-based XML parsing
- Content Optimization: Automatic truncation of lengthy descriptions
- Download the
index.htmlfile from the repository - Open the file directly in any modern web browser (Chrome, Firefox, Safari, Edge)
- No additional setup or installation required
For enhanced CORS compatibility, serve the file through a local web server:
Using Python 3:
# Navigate to the directory containing index.html
cd /path/to/xsukax-RSS-Viewer
# Start a simple HTTP server
python -m http.server 8000
# Access at http://localhost:8000Using Node.js (http-server):
# Install http-server globally (one-time)
npm install -g http-server
# Navigate to directory and serve
cd /path/to/xsukax-RSS-Viewer
http-server -p 8000
# Access at http://localhost:8000- Fork or clone the repository to your GitHub account
- Navigate to repository Settings β Pages
- Select the main branch as the source
- Your RSS viewer will be accessible at
https://yourusername.github.io/xsukax-RSS-Viewer/
Upload index.html to any web hosting service (Netlify, Vercel, AWS S3, etc.) and access via the provided URL.
- Modern web browser with JavaScript enabled
- Internet connection for fetching RSS feeds
- No operating system restrictions (cross-platform)
graph TD
A[Open RSS Viewer] --> B[Enter RSS Feed URL]
B --> C[Click 'View RSS Feed']
C --> D{Fetch Feed via CORS Proxy}
D -->|Success| E[Parse XML/Atom]
E --> F[Sanitize Content]
F --> G[Render Feed Items]
G --> H[Display in Browser]
D -->|Failure| I[Try Next Proxy]
I --> D
D -->|All Proxies Fail| J[Show Error Message]
H --> K[Generate Shareable URL]
- Enter an RSS feed URL in the input field (e.g.,
https://example.com/feed.xml) - Press Enter or click the "View RSS Feed" button
- Wait for the feed to load (loading spinner will appear)
- Browse feed items with titles, descriptions, and metadata
Once a feed is loaded:
- Scroll to the "Shareable URL" section below the input field
- Click "Copy to Clipboard" to copy the permanent link
- Share this URL with others to provide instant access to the same feed
- Click the "Clear" button to reset the viewer
- This removes the current feed and clears the URL parameter
Access feeds directly via URL:
https://yourdomain.com/index.html?feed=https%3A%2F%2Fexample.com%2Ffeed.xml
The feed will load automatically on page load.
flowchart LR
A[User Input] --> B[URL Validation]
B --> C[CORS Proxy Layer]
C --> D[RSS/Atom Parser]
D --> E[XSS Sanitizer]
E --> F[HTML Renderer]
F --> G[Browser Display]
H[Proxy 1<br/>AllOrigins] -.-> C
I[Proxy 2<br/>CORSProxy.io] -.-> C
J[Proxy 3<br/>CodeTabs] -.-> C
style C fill:#238636
style E fill:#f85149
style G fill:#58a6ff
RSS 2.0 Elements:
<title>,<link>,<description><pubDate>,<author>,<category>
Atom 1.0 Elements:
<title>,<link>,<summary>,<content><updated>,<published>,<author>,<category>
- Enter: Submit feed URL (when input field is focused)
- Escape: Close modal dialogs (when visible)
| Issue | Solution |
|---|---|
| Feed won't load | Verify the URL is correct and the feed is publicly accessible |
| "All proxies failed" error | Try again later; CORS proxies may be temporarily unavailable |
| Blank page | Ensure JavaScript is enabled in your browser |
| Formatting issues | Check that the feed is valid RSS/Atom XML |
This project is licensed under the GNU General Public License v3.0.
Developed by xsukax | GitHub Repository | Report Issues