Files
webnews/README.md

106 lines
3.2 KiB
Markdown

# Web News
Web News is a privacy-focused, offline-first RSS reader and full-text extractor. It combines a Svelte-based reactive frontend with a high-performance Go-based backend, available as a standalone web server or a native desktop application (Wails).
## Features
- **Privacy-First**: No tracking, no accounts, no clouds. Your data stays in your browser.
- **Offline-First**: Articles, feeds, and settings are stored locally in IndexedDB.
- **Desktop & Web**: Run as a single Go binary or a native app via Wails.
- **Full-Text Extraction**: One-click "Read Mode" that pulls clean content from any URL.
- **Global Search**: Instant full-text search across your entire reading history.
- **Vim-like Shortcuts**: Navigate with `j`/`k`, save with `s`, and manage feeds without a mouse.
- **Content Filtering**: "Mute Filters" to automatically hide articles based on keywords.
- **Smart Feed**: Personalized ranking that learns from your reading habits locally.
- **Activity Heatmap**: Visualize your reading trends over the last 30 days.
- **Bulk Actions**: Multi-select mode to quickly manage large volumes of articles.
- **Customizable Reader**: Adjust font (Serif/Sans), size, and line height for a premium reading experience.
## Privacy and Security
Web News follows a "zero-knowledge" philosophy:
1. **Data Sovereignty**: Your reading list and history never leave your device.
2. **Anonymous Access**: 16-digit account numbers for server access.
3. **Local Cache**: Full-text content is cached locally in IndexedDB for offline reading and instant access.
4. **Hardened Backend**: Built-in bot blocking, rate limiting, and secure token generation.
## To-DO
- [ ] Reading time
- [ ] UI/UX Cleanup
- [ ] Use Go Mobile, remove Java RSS plugin.
- [ ] Export article(s)
- [ ] Favicon fetcher and caching
## Getting Started
### Prerequisites
- Go 1.21+
- Node.js 18+
- pnpm 9+
- [Wails CLI](https://wails.io/docs/gettingstarted/installation) (for desktop builds)
### Build & Run (Web Server)
Requires Go 1.21+, Node.js 18+, pnpm 9+.
1. **Build the binary**:
```bash
make build
```
2. **Run it**:
```bash
./bin/web-news
```
### Build & Run (Desktop App)
Requires Go 1.25.4+, Wails 2.11.0+, Node.js 18+, pnpm 9+, WebKit2GTK 4.1+ (for Linux).
1. **Launch Dev Mode**:
```bash
make desktop-dev
```
2. **Build for current platform**:
```bash
make desktop-build
```
3. **Cross-Compile**:
```bash
make desktop-windows # Build for Windows
make desktop-darwin # Build for macOS (Universal)
```
## Configuration
### Server Flags
- `--auth-mode`: `none` (default), `token`, or `multi`.
- `--allow-registration`: Allow generating new account numbers (default: true).
- `--auth-file`: Path to the account storage (default: `accounts.json`).
- `--port`: Port to listen on (default: `8080`).
### Keyboard Shortcuts (Default)
- `j` / `k`: Next / Previous article
- `r`: Mark as read
- `s`: Toggle save
- `x`: Toggle select mode
- `o`: Open original URL
## Development
- **Dev Server**: `make dev` (Starts Go backend + Vite frontend)
- **Format & Lint**: `pnpm run format && pnpm run lint`
- **Clean Artifacts**: `make clean`
## License
MIT - See [LICENSE](LICENSE) for details.
---
Created by [Quad4](https://quad4.io)