Skip to content

Repository files navigation

Snort

Snort is a nostr UI built with React aiming for speed and efficiency.

Snort supports the following NIP's:

  • NIP-01: Basic protocol flow description
  • NIP-02: Contact List and Petnames (No petname support)
  • NIP-03: OpenTimestamps Attestations for Events
  • NIP-04: Encrypted Direct Message
  • NIP-05: Mapping Nostr keys to DNS-based internet identifiers
  • NIP-06: Basic key derivation from mnemonic seed phrase
  • NIP-07: window.nostr capability for web browsers
  • NIP-08: Handling Mentions
  • NIP-09: Event Deletion
  • NIP-10: Conventions for clients' use of e and p tags in text events
  • NIP-11: Relay Information Document
  • NIP-13: Proof of Work
  • NIP-14: Subject tag in text events
  • NIP-17: Private Direct Messages
  • NIP-18: Reposts
  • NIP-19: bech32-encoded entities
  • NIP-21: nostr: Protocol handler (web+nostr)
  • NIP-22: Comments
  • NIP-23: Long form content
  • NIP-25: Reactions
  • NIP-26: Delegated Event Signing (Display delegated signings only)
  • NIP-27: Text note references
  • NIP-28: Public Chat
  • NIP-30: Custom Emoji
  • NIP-31: Alt tag for unknown events
  • NIP-36: Sensitive Content
  • NIP-38: User Statuses
  • NIP-39: External Identities
  • NIP-40: Expiration Timestamp
  • NIP-42: Authentication of clients to relays
  • NIP-44: Versioned encryption
  • NIP-46: Nostr connect (+bunker)
  • NIP-47: Nostr wallet connect
  • NIP-50: Search
  • NIP-51: Lists
  • NIP-53: Live Events
  • NIP-55: Android signer application
  • NIP-57: Zaps
  • NIP-58: Badges
  • NIP-59: Gift Wrap
  • NIP-65: Relay List Metadata
  • NIP-68: Picture-first feeds
  • NIP-69: Zap polls
  • NIP-71: Video events
  • NIP-75: Zap Goals
  • NIP-78: App specific data
  • NIP-89: App handlers
  • NIP-90: Data Vending Machines
  • NIP-92: Media Attachments
  • NIP-94: File Metadata
  • NIP-98: HTTP Auth

Media uploads use Blossom servers.

Development

Snort is a Bun workspace. Install Bun, then:

bun install
bun run start          # build the packages and start the dev server
bun run build          # build everything into packages/app/build
bun test               # run the test suite
bunx --bun biome lint  # lint
bun --cwd=packages/app run typecheck

Set NODE_CONFIG_ENV to build with one of the configs in packages/app/config, for example NODE_CONFIG_ENV=iris bun run start.

Translations

Crowdin

Translations are managed on Crowdin

To extract translations run:

bun run pre:commit

This updates the source strings in packages/app/src/lang.json and compiles them to packages/app/src/translations/en.json.

About

Feature packed nostr web UI

Topics

Resources

Stars

346 stars

Watchers

6 watching

Forks

Releases

Used by

Contributors

Languages