Community

Apps

Nostter

Nostter is a web Nostr client that feels simple on the surface but carries a serious amount of protocol work underneath: signers, bunker sessions, relay lists, metadata relays, NWC payments, custom emoji, bookmarks, mute lists, profile state and browser-native app behavior.

Nostter icon
Apps The product layer Clients, signers, publishing tools, wallets and useful experiments.
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

Social 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

Trust context

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
Apps24 min readSvelte web client, Japanese Nostr scene, PWA, NIP-07, NIP-46, NWC, zaps, relay lists, custom emoji, bookmarks and local browser storage

Nostter

Nostter is a web Nostr client that feels simple on the surface but carries a serious amount of protocol work underneath: signers, bunker sessions, relay lists, metadata relays, NWC payments, custom emoji, bookmarks, mute lists, profile state and browser-native app behavior.

The quick readNostter is the Nostr web client at nostter.app and the open-source project SnowCait/nostter. The repository describes it plainly as a Nostr client for web, uses AGPL-3.0 licensing, showed 176 stars, 33 forks and 65 open issues on June 12, 2026, and had a same-day merge for showing users without kind 0 metadata in follow lists. The current code is a SvelteKit application with a PWA manifest, share target, protocol handler, Svelte 5, Vite, Cloudflare adapter, nostr-tools, rx-nostr, rust-nostr bindings, nip07-awaiter and Dexie. Users can sign in with a NIP-07 browser extension, an nsec, a read-only npub, or a NIP-46 bunker connection. Nostter can also act as a remote signer by exposing a bunker URL. Its default relay choices include broad public relays and Japanese local relays, with separate metadata, search and trend relays. The app stores preferences, mute lists, bookmarks, relay lists, custom emojis and profile state through Nostr events where possible, while browser storage handles session and cache state. NWC support lets it pay Lightning invoices through a connected wallet. Treat it as a capable web client, but use an external signer for important keys, test NWC with small payments and check relays before relying on it as your only Nostr home.

A quiet web client with a lot underneath

Nostter looks modest at first glance. The public repository describes it in one short sentence: a Nostr client for web. That simplicity is part of its appeal. It does not announce itself as a grand social network, a wallet, a creator platform or a protocol laboratory. It opens as a web client where a reader can browse, sign in, post, react, follow, search, manage relays and use the familiar Nostr social layer without installing a platform-specific app.

The project is more substantial than that short description suggests. The current repository is active, AGPL-3.0 licensed, written primarily in Svelte, and built with SvelteKit, Vite, Cloudflare deployment tooling, nostr-tools, rx-nostr, rust-nostr bindings, Dexie, emoji handling, QR generation and Lightning invoice decoding. The web app has a PWA manifest, a share target and a protocol handler, so it is intended to behave like a resident browser app rather than a temporary demo page.

That combination makes Nostter useful to two different kinds of readers. A normal user can treat it as a clean web Nostr client. A more technical reader can inspect a living codebase that shows how a modern browser client handles signers, relay lists, Nostr Connect, wallet connect payments, local state and Japanese community defaults. Nostter is not loud, but it is not shallow.

The project is alive

Activity matters when choosing a Nostr client. A stale client can still load public notes, but signing, search, media previews, wallet flows and private-message behavior age quickly as protocol habits change. As of June 12, 2026, the SnowCait/nostter repository showed 176 stars, 33 forks, 65 open issues, a push at 05:39:56 UTC and a same-day merge commit, c43bcef, for showing users without kind 0 metadata in followees, followers and list members. That is a good signal for an app that depends on live web, relay and signer behavior. It also tells you the maintainer is still working on unglamorous social-client details: incomplete profile metadata, list rendering and the real mess of follow graphs.

The release history gives the project a simple arc. The beta appeared in March 2023. Version 1 followed in October 2023, still pointing to the original Vercel deployment. Version 1.1 in November 2023 marked the move to the new domain and logo at nostter.app. The app itself now warns users who land on the older nostter.vercel.app host that the project has moved to nostter.app. That sort of migration detail is boring in the best possible way: it is what maintained software does.

The open issue list is also useful because it shows real pressure points. Recent and older discussions include animated image detection, custom emoji layout problems, NIP-92 imeta work, mobile interface requests and user-status controls. Those are not abstract protocol debates. They are the rough edges a web client meets when people use it every day: media, layout, metadata, client polish and the long tail of event kinds.

Login choices define the trust model

Nostter offers several ways in. The README recommends NIP-07 browser extensions, and the login view supports browser-extension signing through nip07-awaiter. It can also generate a new nsec, accept an existing nsec, accept an npub for read-only use, or connect through a NIP-46 bunker URL. Those choices are not cosmetic. They determine where your private key lives and which software has permission to sign events.

The safest everyday pattern for a serious identity is usually an external signer. With NIP-07, Nostter asks the browser extension to sign, and the extension remains the place where key custody and approvals should be inspected. With NIP-46, Nostter can connect to a remote signer through a bunker session. With a raw nsec, the browser app itself becomes part of the private-key custody story. That may be fine for a test account. It deserves more caution for a long-lived public identity.

Read-only npub mode is a useful low-risk entry point. A reader can look around, inspect profiles, search, open notes and understand the app before authorizing any signing path. That makes Nostter friendlier than clients that force key entry immediately. Start there when evaluating it, then add signing only after checking which browser profile, extension, device and relay settings you are actually using.

NIP-46 works in both directions

Nostter is interesting because it does not only consume remote signing. It can connect to a bunker, and it can also expose itself as a remote signer. The signer source supports NIP-07, bunker URLs and nsec-backed local signing. The remote-signer source can create a bunker URL, store a session secret, listen on a relay and answer signing methods such as connect, ping, get public key, sign event, NIP-04 encryption and NIP-44 encryption.

That is a deeper implementation than a simple sign-in button. A browser client that understands NIP-46 can participate in a wider signer ecosystem where the client, signer and relay are separate pieces. The default remote-signer relay in the source is an ephemeral relay, and the session has its own stored secret. A careful user should learn where those messages go and how the session can be revoked or replaced.

The practical value is flexibility. A person can use Nostter as a normal client with a browser extension. They can connect it to a remote signer when they do not want the web app to hold the long-term key. They can also use Nostter's signer behavior for another client in certain setups. The practical risk is the same flexibility: a bunker session is only as safe as its approval interface, relay choice, session-secret handling and revocation habits.

Relays are chosen with geography in mind

Nostter's relay defaults say a lot about the app. The constants include broad public relays such as nos.lol and relay.damus.io, metadata relays such as purplepag.es and user.kindpag.es, search relays such as nostr.wine and search.nos.today, and trend relays for buzz-style discovery. The same file also adds Japanese local relays when the user's locale starts with Japanese.

That locale behavior matters. Nostr often pretends to be global by default, but social discovery still depends on where people publish, which communities maintain relays and which relays a client chooses early. Nostter's Japanese relay additions make the client less neutral in a useful way. It tries to meet Japanese-language users and the Japanese Nostr scene closer to where their content already lives.

The reader should still inspect relay settings. Defaults are starting points, not guarantees. If a feed looks empty, a search result is thin or a profile appears incomplete, the problem may be relay selection rather than the app. Nostter's default lists show thoughtful curation, but Nostr is not a single database. A reliable experience still depends on matching your follows, region, language and use case with the relays that actually carry those events.

Metadata and relay lists are first-class concerns

Nostter reads more than short notes. The author code fetches and stores profile metadata, contact lists, relay lists, custom emojis, bookmarks, profile badges, preferences, last-read markers, mutes and channels. It uses replaceable and parameterized replaceable events for state that should be updated over time rather than treated as one-off posts. That is exactly where many Nostr clients become complicated: the social feed is only the visible layer.

Relay-list handling is especially important. The relay-list source fetches kind 10002 relay-list metadata and can fall back to relay information embedded in older contact-list events. That keeps Nostter compatible with more than one era of Nostr client behavior. It also means the app can follow where a user says they publish and read, instead of assuming every profile lives on the same small set of relays.

For a reader, the value is continuity. If your profile, relay list, bookmarks or mute list are signed as Nostr events, other clients may be able to understand parts of that state. The limitation is that not every client implements every event kind in the same way. Nostter gives those pieces real attention, but portable state still requires testing across the specific clients you care about.

Zaps use Nostr Wallet Connect

Nostter supports Lightning zaps through Nostr Wallet Connect. The wallet-connect settings screen stores a NWC connection string, validates the nostr+walletconnect form and points users toward wallets such as Coinos and Alby. The zap code builds a NWC pay-invoice request, signs it, sends it to the wallet service relay and waits for a wallet response event tied to the request.

That is a good fit for a web social client. Nostter does not need to become a Lightning wallet to let a user zap. It can ask a connected wallet to pay a Lightning invoice, while the wallet remains the place that holds funds, spending limits and wallet-side approval behavior. This keeps the social app and money custody separated, as long as the NWC connection is created carefully.

Small-payment testing is essential. Connect a wallet with low limits, send a tiny zap, confirm the wallet's payment history and make sure failure states are understandable. A zap can fail because of a wallet permission, relay response, invoice problem, recipient metadata issue, network delay or browser storage state. Nostter implements the NWC flow; it cannot remove the need to test the full payment path.

Browser app behavior is part of the product

The web manifest describes Nostter as a standalone social app with a start page, icons, a share target and a protocol handler for web+nostr links. Those are small details, but they change how the app fits into daily use. A reader can install it like a PWA, share text or links into it, and let the browser hand certain Nostr references to the app.

That matters because Nostr is full of portable identifiers. Users move through npubs, notes, events, addresses and profile links copied from many clients. A web client that can receive those links and accept shared text becomes more than a website. It becomes part of the operating environment around Nostr, especially on devices where installing a native client is inconvenient.

The browser context also sets limits. PWA behavior depends on the browser and operating system. Background behavior, notification reliability, storage persistence and share-target support differ across desktop and mobile environments. Nostter can take advantage of these web platform features, but a user should test them on the actual browser they plan to use.

Custom emojis, media and imeta work show daily-use detail

Nostter's dependency list and issue tracker show attention to the expressive parts of Nostr. The app uses emoji-kitchen-mart, handles custom emoji state and has open discussion around layout when very wide custom emoji reactions appear. That may sound minor until you spend time in Nostr communities where custom emoji, reaction images and visual shorthand are part of the local culture.

The source also includes media-related helpers and imeta components, and an issue tracks NIP-92 imeta support. NIP-92-style media metadata is one of those protocol details that can improve how clients show images and files, but only when enough clients implement it carefully. Nostter's presence in that conversation is a sign that it is not only rendering plain text and hoping media links work.

A reader should still treat media as distributed infrastructure. A Nostr event can point at an image, video or file, but availability depends on the storage service and the metadata quality. Nostter can improve previewing and rendering, and it can adapt to newer event metadata, but it cannot guarantee that every linked file remains online. Test media behavior across another client before relying on it for important publishing.

Preferences, mute lists and bookmarks are signed data where possible

Nostter stores some app state in the browser, but it also uses signed Nostr events for portable user preferences. The preferences source uses kind 30078 with a nostter-specific identifier to save settings such as reaction emoji and media uploader choices. The mute source works with kind 10000 mute lists and can encrypt private mute tags before publishing.

Bookmarks and custom emojis follow the same broader pattern: user state should be expressed in Nostr events when it benefits from portability and identity binding. That does not mean every setting should be public. The mute-list code is careful about private tags, and the user still needs to understand what is public, what is encrypted, what is local and what other clients can read.

This is where Nostr clients become personal software rather than only readers. Your mute list, bookmarks, preferences and relay choices shape the network you experience. Nostter gives these pieces dedicated code, which is better than hiding them as incidental browser state. The reader's job is to check which settings are shared across clients and which are specific to Nostter.

The stack is modern but inspectable

Nostter's package file shows a current web stack: Svelte 5, SvelteKit 2, Vite 7, Cloudflare adapter, Wrangler, Vitest and Playwright. The Nostr layer uses nostr-tools, rx-nostr, rx-nostr-crypto, rust-nostr bindings and nip07-awaiter. Dexie handles IndexedDB-style local data, while QR, Lightning invoice decoding, markdown, media and UI helpers fill out the client surface.

That stack will be familiar to web developers, but the AGPL-3.0 license changes the project posture. Readers and builders can inspect the source, run it, study it and understand how the app handles keys, relays and wallet connections. For a Nostr client, inspectability is not decoration. A client asks to sign social events and sometimes payment requests. Source visibility gives users a way to audit behavior, even if most users will not read every file.

There is still a trust step. A public repository does not automatically prove that the deployed website is identical to the source, and a web app can change between visits. That is why external signers matter. Nostter's inspectable source is valuable, but the safest browser-client posture is to keep important private keys in a signer that asks for approval and can be revoked.

Nostter can be useful before a user signs anything. Read-only npub login, public browsing and search relays let a reader explore the network without giving the app a private key. That matters for onboarding because Nostr should not require a person to make a permanent identity decision before they understand what a client feels like.

The constants separate several kinds of relays: defaults for ordinary use, metadata relays for profile and identity information, search relays for query behavior and trend relays for discovery. That separation gives the app more chances to find the right data for the screen the reader is using. It also reveals the fragmented nature of Nostr discovery. Search, identity, trends and home feed data do not necessarily come from the same place.

Use that as a learning tool. Search for a profile, open it, compare the relay list, then open the same profile in another client. If the results differ, you are seeing Nostr's relay model, not necessarily a bug. Nostter is a good place to learn that distinction because it exposes enough of the network to make the difference visible without forcing the user into developer tooling.

Japanese Nostr context is a real advantage

The Japanese onboarding guide for Nostter and the Japanese relay defaults make the app especially relevant for readers interested in Japan's Nostr scene. Nostr has always been geographically uneven in practice. Some relays, clients and communities become important because actual people gather around them. Nostter acknowledges that by adding Japanese relay choices when the locale calls for it.

That does not make Nostter a Japan-only client. The app is broadly usable, and its defaults include public international relays. The point is that language and geography are treated as part of the user experience. A Japanese-speaking reader should not have to discover every local relay by accident. A global reader can still benefit from an app that understands regional relay reality instead of pretending every user starts from the same social graph.

For community discovery, this is valuable. A client can make the early network feel alive or empty depending on relay and language defaults. Nostter's choices help the former. As always, readers should adjust settings over time, but the initial posture is more thoughtful than a one-size-fits-all relay list.

What to test before relying on it

Start with a low-risk identity. Open Nostter in read-only mode or with a test key. Then try the signer path you actually want: NIP-07 extension, bunker connection or another supported method. Confirm what the app asks the signer to do, how approvals appear, where session data is stored and how you would revoke access if you changed your mind.

Next test relays and state. Open your profile, follows, notifications, bookmarks, mute list, custom emojis and relay list. Compare a few important threads in another client. If Nostter misses an event, check relay coverage before assuming the event is gone. If it sees something another client misses, inspect which relay carried it. This is the normal discipline of using Nostr seriously.

Finally test money and media with tiny stakes. Add NWC only with a wallet that has spending limits. Send a tiny zap, confirm the wallet history and check whether the recipient event appears as expected. Share a small media link and inspect how another client renders it. Nostter is capable, but browser clients deserve careful testing around keys, payments and storage.

Who Nostter is best for

Nostter is best for readers who want a clean web Nostr client with serious underlying protocol support. It is especially attractive if you prefer browser-first software, want a client that can install as a PWA, use an external signer, pay zaps through NWC, browse before login and keep an eye on relay behavior without turning every screen into a technical dashboard.

It is also useful for builders. The source is compact enough to study and modern enough to reflect current web-client work. Login, bunker signing, relay defaults, NWC payment requests, custom emoji, bookmarks, preferences, mute lists and PWA handlers are all visible in code. A developer can learn a lot from how Nostter connects these pieces.

It is less ideal if you want a native mobile client, a conservative wallet, or a client where every important data path is hidden behind a polished consumer layer. Nostter's strength is different: it is an open, active, web-native Nostr client with thoughtful regional defaults and enough protocol depth to serve both everyday readers and curious builders.

Sources worth opening

The most useful reading path begins with the live Nostter app, the GitHub repository, releases and README, then follows the source files for login, signing, remote signing, relays, NWC zaps, preferences, mute lists, bookmarks, custom emoji, media metadata and the NIPs behind those behaviors.

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

How to use this page

Find the product surface first.

Search web-client behavior, signing choices, relay defaults or zap flows when you need a specific Nostter source, risk note or comparison clue.

AppsKeep exploring social appsApp routeWeb clients, relay behavior, wallet flows and key-safety notes.Browse apps
Social app route visual cue 1
Social app route visual cue 2
Social app route visual cue 3
Social app route visual cue 4
Social app 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.