https://github.com/moikapy/rss
My RSS Feed, How I Stay Up to date with AI
https://github.com/moikapy/rss
Last synced: 2 months ago
JSON representation
My RSS Feed, How I Stay Up to date with AI
- Host: GitHub
- URL: https://github.com/moikapy/rss
- Owner: Moikapy
- Created: 2026-04-18T03:55:04.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-04-19T19:03:09.000Z (2 months ago)
- Last Synced: 2026-04-19T19:08:15.986Z (2 months ago)
- Language: TypeScript
- Homepage: https://rss.moikapy.dev
- Size: 765 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# ๐ 0xRSS
A privacy-first, edge-deployed RSS feed aggregator โ your corner of the internet, curated by you.
**Live at [rss.moikapy.dev](https://rss.moikapy.dev)** ยท Installable PWA ยท Works offline
## Why 0xRSS?
The internet is noisy. 0xRSS gives you one quiet place to read what matters โ no algorithm, no ads, no tracking. Just feeds, folders, and full-text articles.
## Features
- **๐ฐ Smart Feed Aggregation** โ 54+ curated feeds across AI, Gaming, Tech, News, Pop Culture, and Anime
- **๐ Full Content Extraction** โ Mozilla Readability renders full articles inline, no tab-switching
- **๐ Folders + Tags** โ Organize feeds your way, filter across feeds
- **โ
Full Triage** โ Read/unread, bookmarks, read-later queue
- **๐ Full-Text Search** โ FTS5 in SQLite, LIKE fallback for D1
- **๐ฅ OPML Import/Export** โ Standard RSS subscription format
- **๐ Auto-Refresh** โ Configurable per-feed intervals, Cloudflare Queue-powered fetching
- **๐ Dark Mode** โ System/light/dark themes
- **โจ๏ธ Keyboard Shortcuts** โ j/k navigate, s bookmark, l read later, r read/unread, โ\ toggle sidebar
- **๐ฅ๏ธ 3-Panel Layout** โ Resizable sidebar, article list, reader
- **๐ฑ PWA** โ Install on any device, works offline, app shell cached
- **๐ Nostr Login** โ NIP-07 browser extension auth for passwordless login
- **๐ค AI Chat** โ Ollama-powered chat about your feeds and articles
## Architecture
```
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Next.js 16 PWA โโโโโโถโ Hono API Worker โโโโโโถโ Cloudflare โ
โ (Cloudflare โ โ api.rss.moikapy โ โ D1 + KV โ
โ Workers) โ โ .dev โ โ + Queues โ
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
```
**Three-tier API:**
| Tier | Path | Auth | Cache |
|---|---|---|---|
| Public | `/api/public/*` | None | KV stale-while-revalidate |
| User | `/api/user/*` | Any JWT | No-store |
| Admin | `/api/admin/*` | Admin JWT | No-store |
## Tech Stack
| Component | Technology |
|---|---|
| Frontend | Next.js 16 (App Router) + Tailwind CSS 4 |
| API | Hono on Cloudflare Workers |
| Database | Cloudflare D1 (prod) / SQLite (dev) |
| ORM | Drizzle ORM |
| Auth | JWT via jose + PBKDF2 (Web Crypto) |
| Caching | Cloudflare KV |
| Feed Processing | Cloudflare Queues |
| AI | Ollama Cloud |
| Nostr | NIP-07 browser extension |
| Deploy | Cloudflare Workers + OpenNext |
## Quick Start
```bash
# Clone and install
git clone https://github.com/Moikapy/rss.git
cd rss
bun install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your JWT_SECRET
# Run development server
bun run dev
# Open http://localhost:3000
# First visit prompts account creation
```
## Development
```bash
bun run dev # Web dev server
bun run build # Build Next.js
bun run db:push # Push schema to DB
```
### API Worker (local)
```bash
cd packages/0xrss-api
# Create .dev.vars with JWT_SECRET
cp .dev.vars.example .dev.vars
# Run with local D1
npx wrangler dev
```
## Deployment
### Frontend (Cloudflare Workers via OpenNext)
```bash
# Build and deploy
npx opennextjs-cloudflare build
npx opennextjs-cloudflare deploy
```
### API Worker
```bash
cd packages/0xrss-api
# Create D1 database
npx wrangler d1 create 0xrss-db
# Update wrangler.toml with the database_id
# Apply migrations
npx wrangler d1 migrations apply 0xrss-db --remote
# Set secrets
npx wrangler secret put JWT_SECRET
# Deploy
npx wrangler deploy
```
### Custom Domain Setup
1. Frontend: `rss.moikapy.dev` โ Cloudflare Worker `0xrss`
2. API: `api.rss.moikapy.dev` โ Cloudflare Worker `0xrss-api`
3. Set `NEXT_PUBLIC_API_URL=https://api.rss.moikapy.dev` in `.env.production`
## PWA Support
0xRSS is a Progressive Web App:
- **Installable** โ Add to home screen on iOS/Android/desktop
- **Offline-capable** โ Service worker caches app shell and API responses
- **App-like** โ Standalone display mode, no browser chrome
- **Theme-aware** โ Matches system dark/light mode
The service worker uses a **network-first strategy** for API calls (fresh data with offline fallback) and **cache-first** for static assets.
## Keyboard Shortcuts
| Key | Action |
|---|---|
| `j` / `โ` | Next article |
| `k` / `โ` | Previous article |
| `s` | Toggle bookmark |
| `l` | Toggle read later |
| `r` | Toggle read/unread |
| `โงR` | Refresh all feeds |
| `โ\` | Toggle sidebar |
## Seeded Content
The app comes pre-loaded with 54 curated feeds across 6 folders:
| Folder | Feeds | Highlights |
|---|---|---|
| ๐ง AI | 17 | OpenAI, Google AI, HuggingFace, arXiv cs.AI, Anthropic, Claude, LangChain, Simon Willison, VentureBeat AI |
| ๐ฎ Gaming | 8 | IGN, Kotaku, Polygon, PC Gamer, Eurogamer, Rock Paper Shotgun, Game Developer |
| ๐ป Technology | 9 | Ars Technica, The Verge, TechCrunch, Wired, Hacker News, MIT Tech Review, Engadget |
| ๐ฐ News | 7 | BBC, The Guardian, NPR, AP News, Reuters, NYT |
| ๐ญ Pop Culture | 7 | Vulture, A.V. Club, Pitchfork, Billboard, Variety, Hollywood Reporter |
| ๐บ Anime | 6 | Anime News Network, Crunchyroll, MyAnimeList, MangaUpdates |
## Project Structure
```
โโโ src/ # Next.js frontend
โ โโโ app/ # App Router pages
โ โโโ components/ # React components
โ โ โโโ article/ # Article list + reader
โ โ โโโ chat/ # AI chat panel
โ โ โโโ feed/ # Feed management
โ โ โโโ layout/ # Sidebar + header
โ โ โโโ providers/ # Auth, theme, SW providers
โ โโโ lib/ # API client, auth, parsers
โ โโโ hooks/ # Custom React hooks
โโโ packages/0xrss-api/ # Hono API Worker
โ โโโ src/
โ โ โโโ routes/ # Public, admin, user, auth routes
โ โ โโโ middleware/ # Cache, auth, rate-limit
โ โ โโโ db/ # Drizzle schema + client
โ โ โโโ lib/ # Feed processor, password hashing, Nostr
โ โโโ wrangler.toml # Worker config
โโโ public/ # Static assets + PWA files
โ โโโ manifest.webmanifest
โ โโโ sw.js
โ โโโ icon-192.png
โ โโโ icon-512.png
โ โโโ apple-touch-icon.png
โโโ wrangler.toml # Frontend Worker config
```
## License
MIT