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 Primal brand, a deploy/git-commit marker, and og:description set to Live Free.
    • By itself the homepage is low-information; the public repos are much more revealing about the actual operating model.

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_URL and PRIMAL_UPLOAD_URL, which immediately signals that the app expects dedicated backend services.

3) Android app README

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:8801 as 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.

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.

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 Wallet label.
    • 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.

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.