A Nostr client that makes relays a first-class concept
Go to file
2022-12-20 14:56:03 -08:00
public First commit 2022-11-22 17:28:33 -08:00
src Tweak cursor again 2022-12-20 14:56:03 -08:00
.ackrc Improve channel management and chunked retrieval of events 2022-11-29 10:21:51 -08:00
.env.local Make dufflepud configurable 2022-12-03 12:56:39 -08:00
.env.production Make dufflepud configurable 2022-12-03 12:56:39 -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 Make dufflepud configurable 2022-12-03 12:56:39 -08:00
CNAME Add CNAME file 2022-11-26 21:47:56 -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
LICENSE Add license 2022-12-19 08:49:31 -08:00
package-lock.json Add link previews 2022-12-03 12:26:13 -08:00
package.json Add link previews 2022-12-03 12:26:13 -08:00
postcss.config.cjs First commit 2022-11-22 17:28:33 -08:00
README.md Tweak cursor again 2022-12-20 14:56:03 -08:00
tailwind.config.cjs Get everything working again 2022-11-30 10:26:58 -08:00
vite.config.js Add sourcemaps 2022-12-05 21:46:40 -08:00

Bugs

  • Support bech32 keys
  • Loading icon not showing at bottom
  • uniq and sortBy are sprinkled all over the place, figure out a better solution
  • With link/image previews, remove the url from the note body if it's on a separate last line
  • Search page is slow and likes don't show up. Probably move this server-side
  • Replies counts aren't showing on replies

Features

  • Chat
  • Threads/social
  • Search
  • Mentions
  • Link previews
  • Add notes, follows, likes tab to profile
  • Notifications
  • Images
  • Server discovery and relay publishing - https://github.com/nostr-protocol/nips/pull/32/files
  • Favorite chat rooms
  • 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.
    • This allows us to keep a copy of all user data, and possibly user likes/reply parents

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