Community

Apps

Primal Studio

Primal Studio is Primal's professional publishing suite for Nostr: editor, media library, importer, scheduler, team review room and analytics board in one product.

Primal Studio icon
Apps The product layer Clients, signers, publishing tools, wallets and protocol utilities.
Back to Nostr
Apps

Apps shelf

Apps pages collect clients, signers, tools, developer libraries and product research without turning the app into the whole network.

Apps All Apps pages App routeProduct profiles, categories, tools and source links Browse appsClose shelf

App orientation

App categories

App profiles

0xchatadvanced-nostr-searchAegisAlbyAlby GoAlby HubAlby HubAlby SDKAmberAmberAmethystAmethystApp and product researchApplication-specific dataBlossomBlossom spec NIP-B7BookstrBorisBouquetCalendar by FormstrChachiNostr Apps DirectoryCoracleCoracleCorny ChatCreatrDamusDamusDeveloper stack researchDittoDittodiVineDocstrDTANEmojitoFlotillaFlycatFormstrFountainFreeFromFundstrfutrGIF BuddyGittrgo-nostrGossipGossipGrimoireGroups NIP-29HablaHablaHello Nostr — ResourcesHighlighterHiveTalkhomebrew-nostrHORNET StorageHugo2NostrHyperNoteIrisIrisJumblekanbanstrKeys BandListrLNBits NostrmarketLumeLumilumiLUMINAMapstrMarmot Protocolmatrix-nostr-bridgeMeetstrMemestrMindsmonstrmostardMostronaknak — Nostr Army KnifeNalgorithmNarrnashboardNDKNegentropyngitNofluxNosNos Socialnos2xnosbinnosclNostorg Feature MatrixNostr App ManagerNostr Apps Directory GuideNostr clients feature listNostr Compass — ProjectsNostr Developer GuideNostr Development KitNostr Events MonitorNostr MCP ServerNostr NestsNostr PlaygroundNostr Service ProvidersNostr Writernostr-post-checkernostr-protocol/nostrnostr-rubynostr-sdknostr-sdk-ffinostr-sdk-flutternostr-to-rssnostr-toolsNostr.bandnostr.buildnostr.co.uk ClientsNostr.how — Clientsnostr.hsNostrabilityNostrAppsNostrApps category — AudioNostrApps category — CareerNostrApps category — CommunityNostrApps category — CurationNostrApps category — Direct MessageNostrApps category — DiscoveryNostrApps category — File SharingNostrApps category — Group ChatNostrApps category — MeatspaceNostrApps category — OnboardingNostrApps category — SignersNostrApps category — Toolsnostrchecknostrdbnostrdb-rsNostreeNostreonNostriaNostridNostrium / read.nostr.comNostrmoNostrubenoStrudelnoStrudelNostterNosturNosturNotedeckNpub.proNpub.worldnsec.appnsiteNsiteNstart.meObsidian Nostr WriterOlasOpenvibeOracoloOstrich WorkOwn Your PostsP2P BandPazPeridotPhoenixPlebeian MarketPostizPostr / write.nostr.comPrimalPrimalPrimal Article Editor / Reads authoringPrimal Studiopynostrpython-nostrRecommended Application HandlersRelay Toolsrsslayrust-nostrrust-nostr docsSatelliteSatellite EarthSatlantisSatShootShakespeareShopstrSlidestrSnortSnortStemstrswift-nostr-clientTreasuresWavlakeWavlakeWikifreediaWikistrYakiHonneYakiHonneYakiHonne mobile/web app directoryYondar

App pages

Deep dives

Field guides

Awesome Nostr branches

Research and library

Source inventory

Deep Research: Clients, apps and product surfacesDeep Research: Developer stack and toolingResearch Map: nostrapps.comResearch Source: 0xchatResearch Source: 0xchat — NostrApps pageResearch Source: advanced-nostr-searchResearch Source: Aegis — NostrApps pageResearch Source: AlbyResearch Source: Alby — NostrApps pageResearch Source: Alby GoResearch Source: Alby HubResearch Source: Alby Hub GitHubResearch Source: Alby SDKResearch Source: AmberResearch Source: Amber — NostrApps pageResearch Source: AmethystResearch Source: Amethyst GitHubResearch Source: Awesome Nostr ResourcesResearch Source: BookstrResearch Source: BorisResearch Source: Boris — NostrApps pageResearch Source: BouquetResearch Source: Bouquet — NostrApps pageResearch Source: Calendar by FormstrResearch Source: ChachiResearch Source: Chachi — NostrApps pageResearch Source: CoracleResearch Source: Coracle — NostrApps pageResearch Source: Corny ChatResearch Source: DamusResearch Source: Damus — NostrApps pageResearch Source: DittoResearch Source: Ditto — NostrApps pageResearch Source: DocstrResearch Source: DTANResearch Source: DTAN — NostrApps pageResearch Source: EmojitoResearch Source: Emojito — NostrApps pageResearch Source: Flotilla — NostrApps pageResearch Source: FlycatResearch Source: FormstrResearch Source: Formstr — NostrApps pageResearch Source: FountainResearch Source: FreeFromResearch Source: FreeFrom — NostrApps pageResearch Source: FundstrResearch Source: futrResearch Source: futr — NostrApps pageResearch Source: GIF BuddyResearch Source: GIF Buddy — NostrApps pageResearch Source: GittrResearch Source: go-nostr GitHubResearch Source: GossipResearch Source: Gossip — NostrApps pageResearch Source: GrimoireResearch Source: Grimoire — NostrApps pageResearch Source: HablaResearch Source: Habla — NostrApps pageResearch Source: Hello Nostr — ResourcesResearch Source: HighlighterResearch Source: HiveTalkResearch Source: HORNET Storage — NostrCompassResearch Source: IrisResearch Source: Iris — NostrApps pageResearch Source: JumbleResearch Source: Jumble — NostrApps pageResearch Source: Keys BandResearch Source: Keys Band — NostrApps pageResearch Source: ListrResearch Source: LNBits NostrmarketResearch Source: LumeResearch Source: LumilumiResearch Source: LUMINAResearch Source: MapstrResearch Source: Marmot ProtocolResearch Source: MeetstrResearch Source: MemestrResearch Source: MindsResearch Source: monstr GitHubResearch Source: mostardResearch Source: MostroResearch Source: my.nostr.comResearch Source: nak — Nostr Army KnifeResearch Source: nak GitHubResearch Source: NalgorithmResearch Source: Narr — NostrApps pageResearch Source: nashboardResearch Source: NDK GitHubResearch Source: NDK NPMResearch Source: NegentropyResearch Source: Noflux — NostrApps pageResearch Source: Nos SocialResearch Source: Nos Social — NostrApps pageResearch Source: nos2xResearch Source: nos2x — NostrApps pageResearch Source: nosbinResearch Source: noscl GitHubResearch Source: Nostorg Feature MatrixResearch Source: Nostr App ManagerResearch Source: Nostr Book — KindsResearch Source: Nostr DesignResearch Source: Nostr Developer GuideResearch Source: Nostr NestsResearch Source: Nostr Nests — NostrApps pageResearch Source: Nostr PlaygroundResearch Source: nostr-post-checkerResearch Source: nostr-protocol/nostr GitHubResearch Source: nostr-sdk crates.ioResearch Source: nostr-sdk-ffi GitHubResearch Source: nostr-tools GitHubResearch Source: nostr-tools NPMResearch Source: Nostr.BandResearch Source: nostr.buildResearch Source: nostr.co.uk ClientsResearch Source: Nostr.howResearch Source: Nostr.how — ClientsResearch Source: Nostr.how — ProtocolResearch Source: Nostr.how — What is Nostr?Research Source: Nostr.orgResearch Source: NostrabilityResearch Source: NostrAppsResearch Source: NostrApps category — AudioResearch Source: NostrApps category — CareerResearch Source: NostrApps category — CommunityResearch Source: NostrApps category — CurationResearch Source: NostrApps category — Direct MessageResearch Source: NostrApps category — DiscoveryResearch Source: NostrApps category — File SharingResearch Source: NostrApps category — Group ChatResearch Source: NostrApps category — MeatspaceResearch Source: NostrApps category — OnboardingResearch Source: NostrApps category — SignersResearch Source: NostrApps category — ToolsResearch Source: nostrcheckResearch Source: nostrdb GitHubResearch Source: NostreeResearch Source: Nostree — NostrApps pageResearch Source: NostriaResearch Source: Nostria — NostrApps pageResearch Source: NostridResearch Source: Nostrmo — NostrApps pageResearch Source: Nostrmo GitHubResearch Source: NostrubeResearch Source: noStrudelResearch Source: noStrudel — NostrApps pageResearch Source: NostterResearch Source: NosturResearch Source: Nostur — NostrApps pageResearch Source: NotedeckResearch Source: Npub.proResearch Source: Npub.worldResearch Source: nsec.appResearch Source: NsiteResearch Source: Nstart.meResearch Source: Nstart.me — NostrApps pageResearch Source: Obsidian Nostr Writer — NostrApps pageResearch Source: OlasResearch Source: Olas — NostrApps pageResearch Source: OpenvibeResearch Source: OracoloResearch Source: Oracolo — NostrApps pageResearch Source: Ostrich WorkResearch Source: P2P BandResearch Source: PazResearch Source: PeridotResearch Source: Peridot — NostrApps pageResearch Source: PhoenixResearch Source: Phoenix — NostrApps pageResearch Source: Plebeian MarketResearch Source: Plebeian Market — NostrApps pageResearch Source: PrimalResearch Source: Primal — NostrApps pageResearch Source: Primal Article Editor / Reads authoringResearch Source: Primal StudioResearch Source: pynostr GitHubResearch Source: python-nostr GitHubResearch Source: Registry of KindsResearch Source: Relay Tools — NostrApps pageResearch Source: rsslayResearch Source: rust-nostr docsResearch Source: rust-nostr GitHubResearch Source: SatelliteResearch Source: SatShootResearch Source: ShakespeareResearch Source: Shakespeare — NostrApps pageResearch Source: ShopstrResearch Source: Shopstr — NostrApps pageResearch Source: SlidestrResearch Source: SnortResearch Source: start.nostr.netResearch Source: StemstrResearch Source: TreasuresResearch Source: WavlakeResearch Source: WikifreediaResearch Source: Wikifreedia — NostrApps pageResearch Source: WikistrResearch Source: Wikistr — NostrApps pageResearch Source: YakiHonne mobile/web app directoryResearch Source: YondarResearch Source: Yondar — NostrApps page
Apps18 min readprofessional Nostr publishing suite

Primal Studio

Primal Studio is not a prettier posting box. It is Primal's attempt to give serious Nostr publishers a desk: write, import, store media, schedule, review with a team and read the network back through analytics.

The quick readUse Primal Studio when Nostr has stopped being only a feed for you. It is built for articles, notes, media storage, imported archives, scheduled releases, team approval and analytics. The question is not whether it is "decentralized" in a slogan. The question is which parts become signed Nostr events, which parts live in Primal's service layer and how much of your publishing operation you want there.

The CMS problem Nostr had to meet

Nostr began with a brutal little idea: keys sign events, relays move them, clients show them. That is enough to create a social network without a single king database. It is not enough to run a serious publishing room. The moment you move from "I posted a note" to "we publish essays every week, reuse media, schedule launches, import an old archive, review drafts and measure what landed", you are no longer asking for a client. You are asking for a content management system.

Primal Studio is Primal's answer to that problem. The official site introduces it as "a professional publishing suite for Nostr" for creators, teams and companies. That sentence matters because it places the product in a different drawer from Primal's main reader app. Primal is the feed, wallet, Reads surface and discovery client. Studio is the back office. It is where you prepare the thing before the network sees it.

This is an important category for Nostr. A protocol can let you publish without permission, but it does not automatically give you the boring professional comforts that make publishing sustainable. Someone still has to handle drafts. Someone still has to make image upload sane. Someone still has to show a writer how a long article will look on desktop and mobile. Someone still has to answer the editor who asks, at 23:40, whether tomorrow's piece is approved or still in review.

That is the useful way to read Studio. Not as a proof that Nostr has become mature overnight. Not as a magic replacement for every newsletter, blog or CMS. Read it as Primal building a serious creator desk on top of the network. If you only want to write a note and vanish, it may feel too heavy. If you have an archive, a publishing calendar or a team, the heaviness is the point.

There is also a tradeoff baked into the category. A CMS always adds a product layer. On Nostr, that product layer can be honest and useful, but it does not become protocol just because it publishes to protocol. Studio's strongest parts are the signed articles and notes, the Blossom media trail and the way it surfaces relay-published content. Its Primal-specific parts are the scheduler service, license checks, analytics index, team workflows and hosted media defaults. A grown-up reader can like the product and still keep those layers separate in their head.

The editor is the first promise

The first promise of Primal Studio is not a button. It is a calmer writing environment than a feed composer. The official page calls out professional-grade editors, rich formatting, a dedicated code view and real-time previews for desktop and mobile layouts. That is a very different promise from the normal Nostr client promise of "type, sign, broadcast." It says: you can prepare a real piece here and see what you are about to publish.

The public code supports that promise. The article editor uses TipTap, SolidJS and a Markdown transform rather than a plain textarea. The dependencies include TipTap extensions for bubble menus, code blocks, file handling, images, links, mentions, tables, table rows and underline. The editor also has Nostr-specific mention extensions for profiles, events and addressable articles: nprofile, nevent and naddr are not decorative details. They are how a writer can point at people, notes and long-form material without turning every reference into a dead paste of text.

For long-form work, Studio writes Nostr long-form content as kind 30023, the kind described by NIP-23. For ordinary notes, it writes kind 1. For drafts, the Studio code uses kind 31234. That means the article editor is not merely exporting HTML into a Primal database. It is preparing Nostr event shapes. The `sendArticle` path creates an event with `kind: Kind.LongForm`, the article content, tags and a `published_at` timestamp. The `sendNote` path creates a kind 1 event and tags it with `client`, `Primal Studio`.

The detail I like here is that the product seems to understand that writers need two modes at once. A writer wants the visual view because formatting by code is tiring. The same writer wants a code or Markdown view because serious publishing often needs exact control. Studio exposes both sides. That is not glamorous, but it is the sort of unglamorous feature that decides whether a tool becomes part of someone's weekly rhythm.

The note editor is also more than the little field you expect from a social app. It has rich/text modes, media uploads, user mentions, note mentions, article mentions, emoji history and scheduled publishing. It can attach images and video through the uploader. It can store an emergency draft locally while you work. It can turn references in the content into tags. That tells you Studio is not treating notes as a side feature. It treats notes and articles as two surfaces of the same creator operation.

Still, the writer's test is simple. Write a small article, publish it, then open it outside Studio. If another Nostr client that understands NIP-23 can read the event, you are looking at protocol value. If the article only feels alive inside Primal's own reading surfaces, you are looking at product value. Both can matter. You just want to know which one you are using.

Media is where ownership gets expensive

Text is cheap. Media is where the Nostr dream starts sweating. A relay can pass events around, but images, videos, audio and large files need storage, bandwidth, previews, metadata and failure handling. Every creator who says "I own my audience" eventually has to ask a less poetic question: where do the files actually live?

Primal Studio answers with a media library and Blossom. The official page says Studio lets you organize Nostr media uploads in one place, gives 100 GB of media storage on Primal's Blossom media server and lets you mirror content or manage any number of third-party Blossom servers. That is a serious feature. It means Studio is not simply asking you to paste image URLs from elsewhere. It is trying to make media storage part of the publishing workflow.

The code trail is specific. Studio has a default `primalBlossom` server at `https://blossom.primal.net`. It reads and updates the user's Blossom server list through a Nostr event kind 10063, with `server` tags. The relay API file has a `sendBlossomEvent` function that publishes a Blossom server list. The uploader uses `blossom-client-sdk`, creates upload authorization through a signed Nostr event, calculates the file's SHA-256 hash, sends `X-SHA-256`, `Authorization`, `Content-Type` and `X-Content-Length` headers, then tries the server's `media` or `upload` endpoint. It also has a mirroring path that takes additional Blossom servers from the account store and mirrors the blob.

That is much better than a vague promise of "decentralized media." It gives the creator a concrete object to inspect: the file URL, the hash, the primary server, the mirror servers and the event that advertises server preferences. Blossom is not a Nostr relay. It is a companion pattern for blobs, built around signed authorization and simple media server behavior. Studio's use of it shows how Nostr apps can avoid pretending that every image belongs inside a relay event.

Here is the practical caution. A 100 GB included media library is convenient because Primal is hosting a strong default. It is also a dependency. If your media is only on Primal's Blossom server, Primal is part of your publishing stack. If you add third-party Blossom servers and mirror files, the stack becomes more resilient. The reader should not moralize this. Hosted storage is useful. But if you are publishing work you care about, open the media settings, look at the server list and decide whether one server is enough for you.

The pricing page makes the media promise part of paid Studio, not a tiny free trial footnote. When checked, the Studio landing page showed Primal Pro at 69 USD per month, billed annually at 749 USD, with one user, Studio access, Legend status on Primal, 100 GB media storage and a 10 GB max file size. Primal Team showed 49 USD per user per month, billed annually at 2,695 USD for five users, with Studio, Legend status, 100 GB storage and 10 GB max file size for each user. Prices can change, so treat those numbers as a current product signal, not eternal protocol law.

Imports, scheduling and teams

The most revealing Studio feature may be importing. Primal's own feature language names this stretch of the product Content Imports, Smart Scheduling, Team Collaboration and Content Analytics. Primal's page says you can bring work from Substack, WordPress, Medium, Ghost or any RSS-enabled platform, and that imported content lands in a Primal Studio inbox ready to publish or refine. That is exactly the bridge Nostr needs if it wants established writers, not only early adopters. A creator with five years of essays does not want to start from a blank feed. They want a migration path.

The code has a settings list for `content_imports` and an `rss_feed_url` payload. It also has an inbox permission path, which matters for teams. Imports do not magically make old writing sovereign the moment you connect a feed. The useful moment comes when a piece is reviewed, turned into a Nostr event, signed and published. Studio's inbox language is therefore honest: it is a staging room. Your old archive comes in, then you decide what belongs on Nostr.

Scheduling is the next professional feature. The official site calls it Smart Scheduling and says you can create, sign and schedule content in advance while Primal's system handles the rest. The code has operations named `import_scheduled`, `replace_scheduled`, `get_scheduled` and `delete_scheduled`. For articles, `scheduleArticle` signs a long-form event with the future publish time, then sends it to Studio's scheduled import path. For notes, `scheduleNote` does the same with a kind 1 event.

This is one of those places where product convenience and protocol purity do not line up neatly. Relays do not wake up in the future and publish your content because you whispered a date at them. Some service has to remember the scheduled event and broadcast it later. Studio appears to make that comfortable: sign now, schedule now, let Primal handle the timing. That is useful. It is also a hosted promise. If scheduling is mission-critical for you, test it before you depend on it for a launch.

The team workflow is even more interesting because it changes who gets to sign. The public page says content creators can propose drafts while designated users review, sign and publish. In the code, `ReadsProposeDialog` literally says "Prepare the article and send to another Nostr user to publish under their name." `ReadsApproveDialog` parses proposed drafts, reviews the article, then either sends or schedules it. Draft paths use encryption through `encrypt44`, attach kind tags for long-form or text, and can include a recipient public key. In plain English: one person can prepare the work, another person can become the publisher of record.

That is not a small feature for companies, magazines, creator teams or projects with brand accounts. It means a junior contributor can prepare a post without holding the publishing key. It means a founder can approve a release without rewriting the whole thing in a chat window. It means an organization can have a Nostr presence without passing one private key around like a cursed office password. The human workflow is the actual product here.

The caution, again, is to understand where trust lives. If you are using team approval, ask who can draft, who can approve, who can sign, where drafts live and what happens when someone leaves the team. Nostr gives you cryptographic authorship at the event level. Studio gives you workflow around that authorship. Those are complementary, not identical.

Analytics are Primal's readable network

Analytics is where Primal's personality shows most clearly. The official Studio page says Primal indexes the full network to deliver engagement scores, sentiment analysis and sats zapped for every note and published item. That is very Primal: the company has always treated Nostr not only as a set of relays, but as a network that needs indexing, scoring, search and readable context.

Studio turns that into a creator dashboard. The home stats component tracks replies, reposts, reactions, bookmarks, quotes, mentions, zaps received, zaps sent and sats deltas. The event stats component shows zaps, sats, replies, likes, reposts, bookmarks, quotes, sentiment and a score. The Studio API file has operations such as `home_totals`, `home_graph`, `home_top_articles`, `home_top_notes`, `feed`, `feed_totals`, `scoring` and `media_files_usage`. That is not just a like counter bolted onto a post composer. It is an analytics product built around Primal's view of the network.

For creators, this can be genuinely useful. Nostr often feels wonderfully raw but also unreadable. Relays do not hand you a polished dashboard of what worked. Different clients may show different slices. Zaps are money-like signals, but a creator still needs to see them alongside replies, reposts and attention. Studio gives the publisher one surface where those signals sit together.

The important caveat is that analytics are an interpretation layer. Your signed note is a Nostr event. Your score is Primal's score. Your sentiment read is Primal's analysis. Your full-network engagement view depends on what Primal indexed, how it weighted the signals and how it resolves the messy reality of relays. That does not make it bad. It makes it a product. Treat it like you would treat good analytics anywhere else: useful, directional and never the same thing as reality itself.

This distinction matters because creators can become obedient to dashboards. If Studio tells you a post scored badly, do not let that be the only sentence in the room. Open replies. Look at who zapped. Look at whether the work reached the right small audience rather than the largest possible audience. Nostr's promise is not that every creator becomes a growth spreadsheet. Studio is best when it makes the network legible without replacing judgment.

The product trail and the stack

The public project trail is clear enough. Primal Studio lives at `studio.primal.net` and the public web client is in `PrimalHQ/primal-studio-web` on GitHub. The repository is MIT licensed, written mostly in TypeScript with SCSS, and its README is plain: "Web client for the Primal Studio." GitHub showed 267 commits on the repository page when checked. The repo was created in May 2025 and the public metadata showed it pushed in April 2026. That makes Studio a real Primal codebase, not just a landing page and a promise.

The stack is modern but not mysterious. The package is still named `vite-template-solid`, which is a funny little fossil of its starting point, but the dependencies tell the real story: Vite 6, SolidJS 1.9, TypeScript 5.7, Sass, Kobalte components, TipTap, `solid-tiptap`, `nostr-tools 2.10.4`, `blossom-client-sdk 4.0.0`, Chart.js, `solid-chartjs`, DOMPurify, IndexedDB through `idb`, UUIDs and a remark/rehype/unified toolchain for Markdown and HTML conversion. That is exactly the stack you would expect for a serious browser-based editor that has to write, transform, preview, sanitize, upload and graph.

The Nostr integration is also visible in the constants. The app defines kind 1 for text, kind 30023 for long-form, kind 31234 for drafts, kind 10063 for Blossom server lists, and Primal-specific high-number cache events for media info, uploads, Studio note stats, Studio media usage and license status. It also signs Studio cache operations before asking Primal's cache API for totals, graphs, feeds, settings, scheduled events and license state. In other words, Studio is a hybrid: Nostr events for publishable content, Primal cache operations for the heavy product layer.

That hybrid is the honest architecture of many serious Nostr products. Pure protocol gives you the public artifact. Product infrastructure gives you speed, search, dashboards, coordination, import pipelines and paid features. The question is not whether Primal Studio is pure. It is not. The question is whether the boundary is understandable and whether the output you care about can survive outside the product.

Who is behind it? Primal. More specifically, the public trail points to the PrimalHQ GitHub organization and Primal's own domains. This page should not invent extra mythology where the source trail does not require it. The relevant fact is that Studio belongs to the same product family as Primal, Primal Reads, Primal Wallet and Primal's broader indexed view of Nostr. That matters because Studio is not an independent neutral CMS that merely happens to publish Nostr events. It is Primal's creator layer.

What you should test before you build on it

If Primal Studio fits your life, you will know quickly. You have a writing schedule. You care about how articles look. You have media you reuse. You are tired of pasting images into random uploaders. You want to move old posts from a newsletter or blog. You want someone else to draft without giving them the publishing key. You want to know which articles brought replies, zaps and real attention. For that person, Studio is not overbuilt. It is finally the right size.

If you are only exploring Nostr, start elsewhere. Use a normal client, post a note, follow people, try a signer, make a zap, read a long-form post. Studio makes the most sense after Nostr has become a place where you publish intentionally. It is not the first rung of the ladder. It is the desk you buy when you already know you are going to sit down every week.

Before you build your workflow around it, run a small audit. Publish one short note and one short long-form article. Open both in another client. Look at the tags. Check whether the article appears as a kind 30023 event. Upload one image, then inspect the media URL and your Blossom server settings. Add a second Blossom server if you care about redundancy and confirm mirroring does what you expect. Schedule a harmless post for tomorrow and see exactly how it behaves. Invite a collaborator only after you understand who signs what.

Then look at the analytics with the right attitude. Use them to learn, not to become obedient. A small audience that responds deeply can matter more than a large number in a dashboard. Nostr is good at restoring strange, specific publics. A publisher's job is not only to maximize reach. It is to keep faith with the people who actually came to read.

That is why Primal Studio is one of the more consequential apps in this shelf. It does not merely ask whether Nostr can host another social feed. It asks whether Nostr can support professional publishing without giving up the signed, portable artifact underneath. The answer is not finished. Studio is one serious attempt at it: useful, Primal-shaped, technically legible, commercially hosted and worth testing with clear eyes.

Sources worth opening

This article stays close to the official page, the public Primal Studio web client and the protocol pieces the product relies on.

Back to the Crays Nostr page
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

How to use this page

Find the product surface first.

Search clients, signers, product categories or developer tools when you need a specific app, source file or comparison clue.

AppsKeep exploring AppsApp routeProduct profiles, categories, signer guides and source links.Browse apps
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

Bring something back

Ask, suggest, submit or nominate.

Use these links when something is missing, a source is stale, or a public Nostr builder belongs in the map.