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