// the find
unclebob/more-speech
A Nostr browser in Clojure.
A desktop Nostr client written in Clojure, built on Swing via Seesaw. This is Uncle Bob Martin's personal project — utilitarian by design, no native look-and-feel, no electron wrapper. For Clojure developers who want to participate in Nostr without leaving the JVM ecosystem.
Well-tested for a hobby project — speclj specs cover protocol parsing, elliptic signature verification, relay handling, and UI formatters, not just happy paths. The nostr crypto (Schnorr signatures, ECDH) is implemented in Java interop rather than a fragile Clojure wrapper, which is the right call for correctness-critical code. Pluggable storage layer with an in-memory backend and xtdb backend keeps the core logic decoupled from persistence. The codebase is small enough to read in a day.
Last commit was February 2024 and Nostr has moved fast — NIP support is likely incomplete or stale, and there's no indication which NIPs are actually implemented. Swing is a real usability ceiling: no image previews, no inline media, no system tray integration on modern OS. The README points to a wiki for setup details but offers nothing about key management, which is the first thing a new user needs to understand. Zero packaging story — no pre-built jar, no installer, just 'run lein' which is a significant barrier for anyone who isn't already a Clojure developer.