Primal primary sources — 2026-05-01
Project status in this pass
- No canonical standalone whitepaper or litepaper surfaced.
- The clearest current source of truth is the public repo set: web app, iOS app, Android app, and the separate Primal server.
- The main takeaway from this pass is that Primal is not merely a generic Nostr frontend; it ships as a vertically integrated client + service stack with wallet, membership, and media layers.
Primary-source snapshots
1) Official site HTML shell
- URL: https://primal.net/
- Key excerpt:
- The current HTML shell is sparse, but it exposes the
Primalbrand, a deploy/git-commit marker, andog:descriptionset toLive Free. - By itself the homepage is low-information; the public repos are much more revealing about the actual operating model.
- The current HTML shell is sparse, but it exposes the
2) Web app README
- URL: https://github.com/PrimalHQ/primal-web-app/blob/main/README.md
- Key excerpt:
- The repo describes Primal as “Featuring easy onboarding, fast & snappy UI, ability to explore Nostr, and create & manage custom feeds.”
- It also instructs local operators to configure
PRIMAL_CACHE_URLandPRIMAL_UPLOAD_URL, which immediately signals that the app expects dedicated backend services.
3) Android app README
- URL: https://github.com/PrimalHQ/primal-android-app/blob/main/README.md
- Key excerpt:
- The Android app repeats the same product framing around onboarding, Nostr exploration, and custom-feed management.
- Screenshots include a wallet view, which is a useful clue that payments are not a side feature.
4) iOS app README
- URL: https://github.com/PrimalHQ/primal-ios-app/blob/main/README.md
- Key excerpt:
- The iOS app mirrors the same core positioning as the web and Android clients.
- This consistency across all clients suggests Primal is trying to ship one coherent cross-platform product stack, not a loose set of community clients.
5) Primal server overview
- URL: https://github.com/PrimalHQ/primal-server/blob/main/README.md
- Key excerpt:
- The server README says: “Primal Server includes caching, membership, discovery and media caching services for Nostr.”
- It further says the server connects to a specified set of relays, collects events in real time, stores them locally, and makes them available to Nostr clients through a websocket API.
- This is the highest-signal primary-source evidence in the pass because it reveals the product’s service-layer architecture directly.
6) Self-hosting guidance
- URL: https://github.com/PrimalHQ/primal-server/blob/main/README.md
- Key excerpt:
- The README walks through setting up PostgreSQL extensions, starting the Primal server, and then connecting Primal applications to
ws://127.0.0.1:8801as a cache server. - That means Primal’s own apps are explicitly designed around a cache-server abstraction, even if most users consume the hosted default.
- The README walks through setting up PostgreSQL extensions, starting the Primal server, and then connecting Primal applications to
7) Web app package/dependency surface
- URL: https://github.com/PrimalHQ/primal-web-app/blob/main/package.json
- Key excerpt:
- The web app depends on
nostr-tools,light-bolt11-decoder,@cashu/cashu-ts,blossom-client-sdk, and@stripe/stripe-js. - This combination strongly suggests a product surface that spans Nostr events, bitcoin payment primitives, media/upload flows, and paid membership or checkout infrastructure.
- The web app depends on
8) Web client constants and product taxonomy
- URL: https://github.com/PrimalHQ/primal-web-app/blob/main/src/constants.ts
- Key excerpt:
- The constants file exposes first-party concepts for zaps, wallet info/request/response, uploads, membership cohorts, premium leaderboards, purchase/status/media-management flows, Stripe checkout initialization, and a
Primal Remote Walletlabel. - Even without full prose docs, this is strong evidence that Primal has become a richer managed application stack around Nostr rather than a minimal protocol client.
- The constants file exposes first-party concepts for zaps, wallet info/request/response, uploads, membership cohorts, premium leaderboards, purchase/status/media-management flows, Stripe checkout initialization, and a
Working conclusion
Primal is best cataloged as a managed Nostr social-and-payments stack. The open protocol matters, but the strongest first-party evidence in this pass points to a product whose real differentiation sits in its integrated cache server, membership layer, upload/media services, and wallet/zap surfaces.