Primal Reads Feature
- Nostr & Primal Reads
Nostr & Primal Reads
A Guide to Long-Form Content on Nostr
1. What Is Primal Reads?
Primal Reads is a dedicated tab within the Primal Nostr client, introduced in Primal 2.0, that allows users to browse and read long-form articles published to the Nostr network — without needing to use a separate app or client.
Before Primal 2.0, users who wanted to read long-form content had to switch to specialist clients like Habla.news or YakiHonne. Primal Reads consolidates this functionality into one app.
Key Features of Primal Reads
| Feature | Description |
|---|---|
| Article Feed | Displays author, title, cover image, and estimated reading time for each article. |
| Reading Interface | Opens a clean, attractive reader view when you tap an article. |
| Bookmarks | Bookmark articles for later — kept in a separate list from short-note bookmarks. |
| Reactions & Zaps | Comment on or zap (tip via Bitcoin Lightning) any article directly within the app. |
| Mobile Composing | Writing long-form articles is not available on mobile; better suited to the Primal web client with a full text editor. |
| Reposting | On Android, reposting or quote-posting long-form articles is not yet supported. |
2. The Underlying Standard: NIP-23
Primal Reads is built on NIP-23, a Nostr protocol standard that defines a special event type for long-form articles. Understanding NIP-23 explains why some clients can display this content and others cannot.
How It Works
Nostr events are identified by a kind number. Regular short notes (tweets) use kind:1. Long-form articles defined by NIP-23 use kind:30023 — a completely separate event type.
Key properties of NIP-23 articles:
-
Content is written in Markdown format.
-
Articles are editable — they are addressable, replaceable events (unlike immutable
kind:1notes). -
Each article can include a title, summary, banner image, tags, and publication timestamp.
-
Articles are stored on Nostr relays just like any other event.
-
kind:30024is used to save drafts of long-form content. -
The NIP specification explicitly notes that social clients focused on
kind:1notes are not expected to implement it.
3. Other Nostr Clients That Support Long-Form Content
Primal is not alone. Several other Nostr clients support NIP-23, each with a different focus.
Dedicated Long-Form Clients
| Client | Platform | Notes |
|---|---|---|
| Habla.news | Web | Fully dedicated to NIP-23 long-form content. Often described as a decentralised Medium or Substack. Includes a markdown editor, title, slug, banner image, tags, and summary. |
| YakiHonne | iOS / Android / Web | One of the first Nostr clients with full mobile article editing. Supports NIP-23 with drafts, tagging, and multi-relay publishing. Also includes Flash News and video. |
| Blogstack.io | Web | An early dedicated long-form writing client for Nostr with a clean markdown editor. |
| Pareto | Web | Open-source publishing platform specialising in long-form Nostr articles, aimed at citizen journalism. |
Social Clients With Built-In NIP-23 Support
These are primarily short-note social clients that have added NIP-23 support alongside their main feed:
-
Amethyst (Android) — Fetches
kind:30023events and displays articles alongside regular notes in your feed. -
Primal (iOS / Android / Web) — The Reads tab provides a dedicated long-form reading experience separate from the social feed.
-
noStrudel (Web) — A feature-rich power-user web client that renders NIP-23 articles.
4. What Happens on Clients That Don’t Support NIP-23?
Because long-form articles use a completely different event kind (kind:30023) from regular short notes (kind:1), clients that don’t implement NIP-23 have no knowledge of them.
Note: Articles published via Primal Reads, Habla, or any NIP-23 client are simply invisible on non-supporting clients. They are not shown as broken or garbled — they just don’t appear at all.
This applies to clients such as older versions of Damus (iOS) and Snort, which focus primarily on kind:1 short notes.
The Upside: Content Is Never Lost
Because Nostr is an open protocol with content stored on relays (not inside any app), articles are never locked into a single client. An article written on Primal can be read on Habla, YakiHonne, Amethyst, or any other NIP-23-compatible client — with no migration, export, or copy-paste required.
This interoperability is one of Nostr’s core design principles: your content and identity are portable across all clients that support the relevant NIPs.
5. Quick Reference Summary
| Topic | Detail | Notes |
|---|---|---|
| NIP-23 Event Kind | kind:30023 |
Short notes use kind:1 — a completely separate type |
| Drafts | kind:30024 |
Same structure as kind:30023 |
| Content Format | Markdown | No HTML allowed |
| Editability | Yes | Replaceable/addressable events |
| Primal Reads | Introduced in Primal 2.0 | Available on iOS, Android, and Web |
| Dedicated Clients | Habla, YakiHonne, Blogstack, Pareto | Purpose-built for long-form Nostr content |
| Social + Reads | Amethyst, Primal, noStrudel | Social clients with NIP-23 support added |
| Unsupported Clients | Content is invisible | No error shown; events simply not fetched |