A Nostr client that makes relays a first-class concept
Go to file
Jonathan Staab 4b59484cb7 Add spinner component 2022-11-30 21:14:06 -08:00
public First commit 2022-11-22 17:28:33 -08:00
src Add spinner component 2022-11-30 21:14:06 -08:00
.ackrc Improve channel management and chunked retrieval of events 2022-11-29 10:21:51 -08:00
.eslintrc.cjs First commit 2022-11-22 17:28:33 -08:00
.fdignore First commit 2022-11-22 17:28:33 -08:00
.gitignore Load account during initial setup 2022-11-26 21:38:25 -08:00
CNAME Add CNAME file 2022-11-26 21:47:56 -08:00
README.md Improve chat 2022-11-30 12:39:11 -08:00
index.html Nail down sub/unsub with modal 2022-11-30 09:12:28 -08:00
jsconfig.json First commit 2022-11-22 17:28:33 -08:00
package-lock.json Add some loading icons 2022-11-30 20:47:53 -08:00
package.json Add some loading icons 2022-11-30 20:47:53 -08:00
postcss.config.cjs First commit 2022-11-22 17:28:33 -08:00
tailwind.config.cjs Get everything working again 2022-11-30 10:26:58 -08:00
vite.config.js Load account during initial setup 2022-11-26 21:38:25 -08:00

README.md

Bugs

  • Pin joined relays at the top
  • Load/publish user preferred relays
  • Optimistically load events the user publishes (e.g. to reduce reflow for reactions/replies). Essentially, we can pretend to be our own in-memory relay.

Features

  • Chat
  • Threads/social
  • Search
  • Followers
  • Server discovery
  • Favorite chat rooms

Nostr implementation comments

  • It's impossible to get deletes for an event's replies/mentions in one query, since deletes can't tag anything other than what is to be deleted.
  • Recursive queries are really painful, e.g. to get all notes for an account, you need to 1. get the account's notes, then get everything with those notes in their tags, then get deletions for those.
  • The limit of 3 channels makes things difficult. I want to show a modal without losing all the state in the background. I am reserving one channel for one-off recursive queries.
  • Why no spaces in names? Seems user hostile