Skip to main content

Iris

Simple, clean Nostr web client. Open source and self-hostable.

Overview​

Iris is a web-based Nostr client created by Martti Malmi (sirius), one of Bitcoin's earliest contributors. It emphasizes simplicity and ease of use while remaining fully open source.

Key Features​

Clean Interface​

┌─────────────────────────────────────────────────────────┐
│ Iris │
├─────────────────────────────────────────────────────────┤
│ ┌────┐ │
│ │ 🏠 │ Home │
│ │ 🔔 │ Notifications │
│ │ ✉️ │ Messages │
│ │ 🔍 │ Search │
│ │ 👤 │ Profile │
│ │ ⚙️ │ Settings │
│ └────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐│
│ │ 📝 What's on your mind? ││
│ └─────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────┐│
│ │ alice · 2m ││
│ │ Just discovered Nostr, this is amazing! ││
│ │ ♥ 12 💬 3 ⚡ ││
│ └─────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────┘

Core Features​

FeatureDescription
FeedChronological timeline
ProfilesView and edit
MessagesEncrypted DMs
SearchFind users and content
ReactionsLikes and emojis
ZapsLightning tips
MediaImages and videos

Multiple Access Points​

DomainDescription
iris.toMain hosted version
Self-hostedRun your own

PWA Support​

Install as a Progressive Web App:

  • Add to home screen
  • Offline capability
  • App-like experience

Getting Started​

Web Access​

  1. Go to iris.to
  2. Create account or import keys
  3. Start following and posting

Login Options​

MethodDescription
Create newGenerate fresh keypair
Import nsecUse existing key
Browser extensionNIP-07 (Alby, nos2x)
Nostr ConnectNIP-46 remote

Key Backup​

Iris emphasizes key backup during setup:

⚠️ Save your private key!

Your private key is:
nsec1abc123...

Write this down or store it safely.
If you lose it, you lose access forever.

[I've saved my key]

Self-Hosting​

Static Hosting​

Iris is a static site that can be hosted anywhere:

# Clone repository
git clone https://github.com/irislib/iris-messenger.git
cd iris-messenger

# Install dependencies
npm install

# Build
npm run build

# Deploy dist/ to any static host

Docker​

docker run -p 8080:80 irislib/iris-messenger

Hosts​

Deploy to:

  • Vercel
  • Netlify
  • GitHub Pages
  • Any static hosting
  • Self-hosted server

Privacy Features​

Local-First​

  • Keys stored locally
  • No server-side accounts
  • Your data, your control

Relay Configuration​

Choose your relays:

Settings → Relays

Default relays:
├── wss://relay.damus.io
├── wss://nos.lol
└── wss://relay.nostr.band

Add custom relays as needed

Technical Details​

Stack​

ComponentTechnology
FrameworkPreact
BundlerVite
StorageIndexedDB
ProtocolNostr

NIP Support​

NIPFeature
NIP-01Basic protocol
NIP-02Contact lists
NIP-04Encrypted DMs
NIP-05DNS verification
NIP-07Browser signing
NIP-25Reactions
NIP-57Zaps

History​

Created by Martti Malmi (sirius):

  • Early Bitcoin contributor
  • Helped Satoshi with Bitcoin development
  • Built Iris as a censorship-resistant social platform

Comparison​

FeatureIrisSnortPrimal
ComplexitySimpleModerateFeature-rich
Self-hostEasyPossibleNo
Target userGeneralGeneralGeneral
Open sourceYesYesYes
PWAYesNoNo

Use Cases​

For New Users​

  • Simple onboarding
  • Clear interface
  • Easy to understand

For Privacy-Focused​

  • Self-hostable
  • No tracking
  • Local key storage

For Self-Hosters​

  • Static site
  • Easy deployment
  • Full control

See Also​