mirror of
https://github.com/aljazceru/awesome-nostr.git
synced 2024-12-13 00:16:21 +00:00
e8a043a9c4
I just published 2 TypeScript libraries to make it easier to develop Nostr frontends! Would love to have them featured on this awesome list!
13 KiB
13 KiB
awesome-nostr
"nostr" stands for "Notes and Other Stuff Transmitted by Relays" and is an open protocol for censorship-resistant global networks created by @fiatjaf.
Protocol
- nostr - overview and FAQ
- NIPs - the "Nostr Implementation Possibilities" describe the protocol in technical detail
- nostr, a basic tour - an intro to nostr
- Nostr: Solucionando la censura de una vez por todas
Relays
Relays are (so far) application agnostic. You can run your own or use any or all of the public instances.
Implementations
- NNostr - a C# relay
- nostr-rs-relay - a minimalistic relay written in Rust that saves data on SQLite
- Relayer Basic - a simple relay based on relayer backed by Postgres
- nodestr - a Node.js implementation
- expensive relay - a relay that requires payment for registration
- me.untethr.nostr-relay - a relay written in Clojure
- Minds Nostr Relay - a relay for Minds, an open-source social network
- Minds Engine - Nostr - relevant Minds API code for reading/writing Minds posts using Nostr
- NostrPostr Relay - a Kotlin Relay supporting both SQLite and Postgresql
- nostrypy - relay, client, and other tooling in python
- nostr-ts-relay - a nostr relay written in Typescript backed by PostgreSQL
- nostr_relay – a nostr relay written in python, backed by SQLite
Instances
Instances are plenty and their availability may vary but these projects track them:
- nostr relay registry - real-time checking of status of some known relays
- nostr.info - real-time checking of status of some known relays
- nostr.watch - real-time checking of status of some known relays with advanced checks.
Clients
- branle - a Twitter-like client with chat. Some instances:
- branle.netlify.app - by fiatjaf
- nostr.rocks
- branle.wlvs.space
- branle tor - on tor
- astral - a branle fork with global feed and UI makeover
- damus - a twitter-like nostr client for iOS and MacOS
- more-speech - desktop client for nostr written in Clojure
- futr - nostr client desktop app written in Haskell
- nvote, Nvote is a decentralized, vote-driven community similar to services like Reddit and HackerNews. Nvote is powered by nostr
- Minds - open source social network. Supports reading and creating posts using the Nostr protocol
- alphaama - playground by Tiago Balas
- Jester - Chess over nostr
- Sendstr - shared clipboard between devices over nostr
- noscl - a basic command-line client written in Go
- loquaz - a desktop app written in Rust for direct encrypted chat
- nostr console - a nostr command line client written in Dart. Binaries available for Windows, Linux, and MacOS
- anigma - A clone of telegram built on nostr
- ArcadeCity - Public group chats and P2P services (WIP) over nostr
- second exchange - an experiment to work out something of like medium, something of creator economy where users are rewarded for engaging in quality discussion and most importantly engaging in governance-related discussion
- scalastr - A barebones nostr client written in scala
- Nostros - A nostr mobile client for Android
- NostrEmitter- Simple E2E encrypted client and EventEmitter object
- Lightning.Pub- A nostr daemon for Lightning nodes
- shockwallet- A Lightning wallet that uses nostr and lnurl to connect to nodes
- coracle - A nostr web client
- nostrweb - another nostr web client in vanilla JS
- nostr.ch - live instance
- Bija - A desktop client written in python. Currently Linux only
- Nosky - A native Android client for Nostr. Still in development
- Stackerstan - A decentralised organisation built on Bitcoin and Nostr, implemented as a replicated state machine in Golang
- nostr-java - A nostr client API written in java, for generating, signing and publishing events to relays
Client reviews and/or comparisons
Libraries
- nostr-ruby - a Ruby implementation of the nostr protocol
- NNostr.Client - a C# Nostr library for use by clients
- nostr-tools - a JavaScript client that abstracts the relay management code for use by clients
- nostrgg/client - a TypeScript library for the client that handles the hard stuff
- nostrgg/react - React Hooks for Nostr
- go-nostr - a Go library that implements relay management, plus event encoding and signing utils
- nostr_rust - Functional Rust implementation of the nostr protocol
- nostr-js - a javascript implementation of the nostr protocol
- nostr-rs - a Rust implementation of the nostr protocol
- nostr-rs-sdk - Nostr
protocol
implementation,SDK
, andFFI
written in Rust - relayer - a server framework for writing custom relays
- NostrPostr - a Kotlin Nostr library for clients or relays
- python-nostr - a python library for making clients
- nostr-bot - a Rust library for writing bots
- NostrKit - a Swift library for interacting with relays
- nostr-relay-inspector - A library that returns useful information about relays based on nostr-js
Bridges and Gateways
- rsslay - a bridge that puts RSS feeds into Nostr
- smtp nostr gateway - a bridge that forwards emails to pubkeys as encrypted direct messages
- matrix-nostr-bridge a simple Matrix-to-Nostr or Nostr-to-Matrix bridge
Tools
- git-nostr-tools - A cli tool for sending code patches over nostr
- nostr-cln-events - A CLN plugin to push clightning node events to nostr
- nostr registry - a database of known relays with their uptime and NIP support tables
- nostr-fzf - Nostr Directory; a tool for searching usernames and channels
- nostr-notify - desktop nostr notifications using libnotify
- nostr-launch - a tool for launching a bunch of relays and clients locally for development and testing
- nos2x - nostr signer extension - a browser extension for signing events on 3rd party site without sharing your private keys with them
- nostr GitHub Action - send events from GitHub Actions
- nostrefresh - simple refresh function for nostr web pages
- anonroom - anonymous chat room inside nostr
- nostril - C cli tool for creating nostr events
- nostr-rs-relay-compose - a Docker compose deployment for nostr-rs-relay with SSL support based on Traefik
- tostr - a twitter to nostr bot
- nostr.guru - a nostr web gateway for viewing events by their ID
- nostrandom.netlify.app - generate publish-able Nostr event with random keys
- nashboard and here - a Nostr network dashboard with network statistics
- nostr army knife - nostr army knife by fiatjaf
- joinstr - coinjoin implementation using nostr
- ndxstr - nostr's layer 2 indexing nodes, with more advanced querying capability than currently supported by relays
- nostrillery - a tool for running performance tests against Nostr relays
- nostr-terminal - SSH-like access to your machine via web terminal, powered by Nostr.
- nostcat - cat-like nostr client for scripting and debugging written in Rust
- rana - Nostr mining pubkey with multi threading
- nostreq - Nostr relay event request generator
- nostr.io - network statistics with last published notes, top 50 publishers, and top 50 followed users
- nostr-commander - simple but convenient CLI-based Nostr app for following users, sending DMs, etc.
- nostr.directory - searchable database of nostr users and their other social media links.
- nostr-tool - Rust CLI tool to generate and publish events
Browser extensions
Allow you to sign Nostr events on web-apps without having to give them your keys
- Alby - Bitcoin Lightning app with nostr support
- nos2x - Nostr Signer Extension
- wen - browser extension for website enhancer with nostr
- Blockcore - Multi wallet browser extension with nostr support
Community
Outside of nostr itself, you find the community on:
- nostr telegram group - a telegram group for nostr protocol discussion
- nostr reddit - a subreddit for nostr related discussion
Tutorials
Other links
- nostr on YouTube
- vanilla-js-nostr - a demo of posting and viewing a feed in nostr using vanilla javascript
- nostr playground in Ruby
- search posts by keyword - posts from major relays indexed and searchable in real-time
Data for this list is contributed by the community and curated by @aaaljaz.