first commit

This commit is contained in:
2025-12-26 21:30:45 -06:00
commit 10ea615b8f

86
README.md Normal file
View File

@@ -0,0 +1,86 @@
# 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.
## Getting Started
### Prerequisites
- Go 1.21+
- Node.js 18+
- [Wails CLI](https://wails.io/docs/gettingstarted/installation) (for desktop builds)
### Build & Run (Web Server)
1. **Build the binary**:
```bash
make build
```
2. **Run it**:
```bash
./bin/web-news
```
### Build & Run (Desktop App)
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**: `npm run format && npm run lint`
- **Clean Artifacts**: `make clean`
## License
MIT - See [LICENSE](LICENSE) for details.
---
Created by [Quad4](https://quad4.io)