Skip to content

Latest commit

 

History

History
147 lines (119 loc) · 7.21 KB

README.md

File metadata and controls

147 lines (119 loc) · 7.21 KB

HackDigest

Hacker News, in your language — a reader built for people who don't read English comfortably enough to enjoy HN raw.

CI License

English · 中文

Hacker News is arguably the best tech front page on the internet — and for hundreds of millions of developers, a wall of English. HackDigest tears that wall down: every story, article TL;DR, and comment thread, translated and digested on demand.

Download

Grab the latest build from GitHub Releases — every asset is built from source by GitHub CI and launch-smoke-tested on all three platforms:

Platform Artifacts
macOS (Apple Silicon / Intel) hackdigest-<version>-macos-<arch>.dmg + portable .zip (both architectures)
Linux (x64 / arm64) hackdigest-<version>-linux-<arch>: .tar.gz + .deb + .rpm + .AppImage + portable .zip — every format on both architectures
Windows 10/11 (x64) hackdigest-<version>-windows-x64.msi + portable .zip

Every binary asset ships a per-asset .sha256 sidecar, aggregated in a SHA256SUMS file.

macOS builds are ad-hoc signed and not notarized: on first launch, right-click → Open. The Windows MSI is unsigned, so SmartScreen may show a warning on first install — choose More info → Run anyway.

Translation and digests need an LLM API key — set one in Settings (GLM, DeepSeek, Qwen, Kimi, OpenAI, or a local Ollama; all OpenAI-compatible).

Updates are built in as of v0.3.0: on startup the app fetches an Ed25519-signed update manifest from GitHub Releases, and portable installs on macOS and Windows swap themselves in place (with an automatic relaunch). On Linux the app downloads the archive and reveals it in the file manager for a hand extraction — the family rule for archive installs. Installer channels (DMG / MSI / deb / rpm) point you at the Releases page instead: the app cannot rewrite those without elevation.

Keyboard-first

HN veterans get their muscle memory back: j/k move the selection, Enter/o open, s bookmark, t translate the selected title, r refresh, 1–6 switch feeds, / search. On a story page: ←/u back, t translate, Shift+T translate all comments, d AI digest. Press ? anytime for the cheat sheet.

The three digests

  1. Story digest — the linked article (often 5,000 words of English) condensed to a few paragraphs in your language.
  2. Thread digest — the real gold of HN is the comments. A thread with 800 replies becomes the top arguments on each side, who said what, and where the community landed.
  3. Daily digest — this morning's front page as a two-minute read in your language, before you decide what's worth opening.

Free / Pro

The app is free to download on every platform. Everything can be unlocked forever with your own LLM key (BYOK, truly free); the Pro hosted service is for people who just want it to work — no keys, no setup.

Free (BYOK) Pro (hosted)
Browse HN, reader-optimized threads, bookmarks, dark mode ✅ ✅
Translate stories & comment threads ✅ unlimited ✅ no setup
Article TL;DR, thread digest, daily digest ✅ unlimited ✅ no setup
Bring your own LLM API key ✅ GLM / DeepSeek / Qwen / Kimi / Ollama … — not needed
Hosted service (no key, fair-use daily quota†) 7-day free trial per device ✅ fair-use unlimited†
Cross-device sync (one license, desktop + mobile) — Planned (Phase 3)

† The Pro hosted service uses generous daily quotas plus globally shared translation caches (HN traffic concentrates on a few hundred stories, so cached threads cost nothing to serve). This keeps a flat subscription sustainable without rate-limiting anyone who reads like a human. Bring your own key and nothing here applies — that path is free and unlimited, forever.

Roadmap

  • Phase 1 — Desktop MVP ✅ (v0.1.x, Tauri line): HN feeds and threads with a reading experience worth opening daily; translation and digests via BYOK.
  • Phase 2 — Hosted Pro service (v0.2.0): managed translation behind a license key — no setup, no keys. 7-day free trial per device, generous daily quotas, globally shared caches. Soft launch; sales start manual (lifetime / yearly keys), payment gateway lands next.
  • Phase 3 — Mobile (iOS / iPadOS / Android, matching the family's full-platform scope; a watchOS top-stories companion trails the phone app): the same TypeScript core, phone and tablet apps, Pro licenses carry over.

Tech stack

Glaze + React + TypeScript — a Racket host (via Glaze) serves the React frontend in the platform webview. One repo: backend/ + apps/desktop/ + packages/core. HackDigest is a content app — story pages, rich comment trees, typeset text — and for content, the web rendering engine is the best text engine available; the app shell, storage, LLM proxy, and update checks live in the Racket backend.

  • packages/core — pure TypeScript, runs everywhere: the HN API client (official Firebase API + Algolia search), BYOK presets for any OpenAI-compatible endpoint (GLM, DeepSeek, Qwen, Kimi, OpenAI, Claude …) so mainland users can plug in a domestically reachable API, and the storage/settings layer the components talk to.
  • Frontend — React + Vite + zustand + Tailwind 4; progressively-loaded feeds and comment trees, light/dark. In-app it talks to the backend over HTTP; plain-browser dev keeps an IndexedDB fallback.
  • Backend — Racket: SQLite storage (kv store, translations, HN item cache — a translated thread is never translated twice) plus settings/library data files. The translation/digest pipeline (prompt building, 30-title batches, comment self-healing bisection) runs here, so LLM API keys stay in the backend and never enter the webview; LLM calls stream through the backend proxy with retries and a 60-second timeout.
  • Network — HN data comes straight from the official Hacker News API and Algolia search — no scraping.
  • Updates — the backend fetches the Ed25519-signed update manifest on startup, verifies the artifact against the signed feed, and swaps portable installs in place on macOS and Windows; Linux installs get the downloaded archive revealed, and installer-based installs (DMG / MSI) are pointed at the release page.

Repo layout

hackdigest/
├── backend/          Racket host on Glaze: storage, LLM proxy, app shell
├── apps/desktop/     React frontend (built to dist/, served by the host)
├── apps/mobile/      Phase 3
├── packages/core/    shared TypeScript core: HN API, storage, BYOK presets
└── docs/

License & business model

AGPL-3.0 — the client is open source, forever. Hosted translation, digest compute, and cross-device sync are the Pro subscription that keeps the lights on. Competitors are welcome to read the code; users are welcome to self-host their own keys.