Skip to content
Brad Johnson, home
All projectsSoftware / 09 of 20

Herid

A one-person app for saving links, screenshots, articles, notes, to-dos and recordings, then searching and asking across all of it.

Category
Software
Updated
2026-11-02
Status
Running on the homelab
Built with
Swift, SwiftUI, GRDB, TypeScript, Effect, Postgres, pgvector, Chrome MV3, whisper.cpp, llama.cpp
The Herid Mac app searching for "cloudflare security", with saved posts, articles and videos in a list and the selected post's summary, tags, mentions and related items on the right.

The iPhone is the main way in. Its share extension saves a capture to the app’s shared container and hands it to a background upload, and creates are idempotent, so a capture sent twice is stored once. A Chrome extension sends the rendered page, which means articles behind a login still get extracted, and the Mac app has a quick-capture shortcut. Every client generates its own IDs, keeps a local SQLite copy and pulls a change feed, so the apps open instantly and work offline.

The server is TypeScript on Effect, with Postgres and pgvector, running in Docker on a homelab VM and reachable only over Tailscale. A worker processes each item. Articles go through Readability, X posts through oEmbed, screenshots through OCR, and YouTube through its captions. Audio and video without captions go to Whisper on my desktop’s GPU, which transcribed 41.6 seconds of speech in 0.85 seconds when I measured it. Claude Haiku suggests tags, a summary, entities, related items and dated events.

Search ranks full-text matches together with embeddings from a local Qwen3 model, and Ask Herid streams answers from Claude Sonnet with citations back to the items. Agents can reach the library through an MCP endpoint, and every Monday a digest covers last week’s threads and an older item that connects to them.

Next project, 10Billerica Sky