Skip to main content

Snort

Feature-packed Nostr web UI. Fast, decentralized, and accessible from any browser.

Overview

Snort is a web-based Nostr client built with React, focusing on speed and efficiency while offering a comprehensive feature set. No app download required — just open your browser and go.

Key Features

Web-First Design

┌─────────────────────────────────────────────────────┐
│ Browser │
│ ┌─────────────────────────────────────────────────┐│
│ │ snort.social ││
│ ├─────────────────────────────────────────────────┤│
│ │ ┌─────────┐ ┌──────────┐ ┌────────────────┐ ││
│ │ │ Feed │ │ Messages │ │ Notifications │ ││
│ │ └─────────┘ └──────────┘ └────────────────┘ ││
│ │ ││
│ │ Works on: Desktop, Mobile, Any OS ││
│ └─────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────┘
  • No installation — Runs in any modern browser
  • Cross-platform — Desktop, tablet, phone
  • Light & fast — Optimized React codebase
  • Responsive — Adapts to screen size

Content Features

FeatureDescription
PostsFull microblogging support
MediaImages, videos, audio
ZapsLightning payments
DMsEncrypted messages
ReactionsCustom emoji support
BookmarksSave posts
ListsOrganize follows

Recent Updates (v0.3+)

  • Redesigned relay management — Better relay UI
  • Relay uptime reporting — via nostr.watch NIP
  • New note designer — Media attachment UI
  • NIP-96 media browser — Upload via server list
  • NIP-89 app handlers — Unknown event support
  • Web of Trust filter — Filter replies by WoT
  • Trending widgets — People, articles sidebar
  • NIP-55 Amber signer — Android signing support
  • Profile QR codes — npub/nprofile selector

Key Management

Use with browser extensions for secure signing:

┌─────────────────┐         ┌─────────────────┐
│ Snort │◄───────►│ Alby / nos2x │
│ (web client) │ NIP-07 │ (extension) │
└─────────────────┘ └────────┬────────┘

│ Keys stored
│ in extension

┌─────────────────┐
│ Browser Storage │
└─────────────────┘

Supported signers:

  • Alby — Lightning + Nostr
  • nos2x — Simple NIP-07
  • Amber — Android (NIP-55)
  • Nostr Connect — Remote signing

Zap Integration

Send and receive Lightning payments:

┌──────────────────────────────────────────┐
│ Zap Flow │
├──────────────────────────────────────────┤
│ │
│ 1. Click ⚡ on any post │
│ 2. Choose amount (or custom) │
│ 3. Sign zap request │
│ 4. Pay invoice via wallet │
│ 5. Zap appears on post │
│ │
└──────────────────────────────────────────┘

Privacy Controls

SettingDescription
Followers-onlyLimit who sees replies
Content warningsHide sensitive content
Mute wordsFilter by keywords
Block usersHide specific accounts
WoT filterTrust-based filtering

Getting Started

Web Access

  1. Go to snort.social
  2. Click "Get Started"
  3. Create account or import keys
  4. Start following and posting

Self-Hosting

git clone https://github.com/v0l/snort
cd snort

# Install dependencies
yarn install

# Development
yarn dev

# Production build
yarn build

Docker

docker run -p 3000:3000 ghcr.io/v0l/snort:latest

Umbrel

Available in the Umbrel App Store for easy self-hosting.

Architecture

Built with modern web technologies:

┌─────────────────────────────────────────┐
│ Snort │
├─────────────────────────────────────────┤
│ React + TypeScript │
│ ┌─────────────────────────────────────┐│
│ │ State Management (React Query) ││
│ ├─────────────────────────────────────┤│
│ │ WebSocket Relay Connections ││
│ ├─────────────────────────────────────┤│
│ │ IndexedDB Local Cache ││
│ └─────────────────────────────────────┘│
└─────────────────────────────────────────┘

Comparison

FeatureSnortPrimalIris
PlatformWebMultiWeb
Self-hostableYesNoYes
Open sourceYesYesYes
CachingLocalServerLocal
WoT filterYesNoNo

NIP Support

Snort implements many NIPs:

NIPFeature
NIP-01Basic protocol
NIP-05DNS verification
NIP-07Browser signing
NIP-09Event deletion
NIP-25Reactions
NIP-55Android signing
NIP-57Zaps
NIP-89App handlers
NIP-96File uploads

See Also