Lobstersdtonon5 min readintermediate
Squalk: an old-school forum engine built on Nostr (NIP-29 groups, NIP-7D threads)
Summary
Squalk is a SvelteKit‑based forum built on the Nostr protocol, implementing NIP‑29 groups and NIP‑7D threads. It can run in a single‑forum “simple” mode or a multi‑forum “full” mode, with chat sidebars, markdown resources, and optional server‑side rendering for SEO. Configuration is done entirely via `PUBLIC_` environment variables, and deployment scripts support both static hosting and Node SSR,…
- All runtime settings are exposed as `PUBLIC_` env vars, making the app fully configurable at build or runtime.
- Supports two deployment models: static SPA (default) and SSR (via `PUBLIC_SSR=yes`) for crawlable pages and real 404s.
- Uses Nostr NIP‑29 for group management and NIP‑7D for threaded discussions; requires a relay that supports these NIPs.
- Custom content (resources, homepage/contacts partials) is authored as Nostr `kind 30023` events with specific tags, enabling admin‑only updates.
Squalk demonstrates how a modern web app can be built entirely on a decentralized protocol, handling both client‑side interactivity and SEO‑friendly server rendering without a traditional backend. The approach to configuration, content publishing via Nostr events, and flexible deployment pipelines…
5/10



