19-10-2024 NOTE: Current iris.to source code is at https://github.com/irislib/iris-client
Iris is a Nostr Android, iOS and web client that has also standalone desktop (Windows, MacOS, Linux) and Docker versions.
- Sign up in seconds: Just type a name and hit "Go"
- Secure: It's open source. Users can validate that big brother doesn't read your private messages.
- Available: It works offline-first and is not dependent on any single centrally managed server.
Visit Iris FAQ for features, explanations and troubleshooting.
sign-up-iris.1.mp4
git clone https://github.com/irislib/iris-messenger.git
Yarn
# install dependencies
yarn
# serve with hot reload at localhost:8080
yarn dev
# build for production with minification
yarn build
# test the production build locally
yarn serve
# run tests with jest and enzyme
yarn test
npm
# install dependencies
npm i
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# test the production build locally
npm run serve
# run tests with jest and enzyme
npm run test
iris.to production version is in the production branch.
- Vite — a fast frontend build tool
- Preact — a fast 3kB alternative to React with the same modern API
- Tailwind CSS — a CSS framework for rapid UI development. Less custom CSS.
- DaisyUI — a component library for Tailwind CSS
Alternatively, you can run the dev environment on Docker: docker-compose up
. The dev build with autoreload will be available at http://localhost:8080.
With Docker Desktop and GitHub Desktop this is an easy way to get started with development. Just clone this repository and run docker-compose up
in a terminal in its directory.
Yarn
# install dependencies
yarn
# develop
yarn tauri dev
# build
yarn tauri build
npm
# install dependencies
npm i
# develop
npm run tauri dev
# build
npm run tauri build
iris.to production version is in the production branch.
Master branch is deployed to beta.iris.to.
Tauri desktop releases are built from the release
branch by GitHub CI.
- NIP-01: Basic protocol flow description
- NIP-02: Contact List and Petnames
- 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
andp
tags in text events - NIP-19: bech32-encoded entities
- NIP-20: Command Results
- NIP-21:
nostr:
URL scheme - NIP-23: Long-form Content
- NIP-25: Reactions
- NIP-26: Delegated Event Signing
- NIP-28: Public Chat
- NIP-33: Parameterized Replaceable Events
- NIP-39: External Identities in Profiles
- NIP-40: Expiration Timestamp
- NIP-42: Authentication of clients to relays
- NIP-46: Nostr Connect
- NIP-50: Keywords filter
- NIP-51: Lists
- NIP-56: Reporting
- NIP-57: Lightning Zaps
- NIP-58: Badges
- NIP-65: Relay List Metadata
The application is an unaudited proof-of-concept implementation, so don't use it for security critical purposes.