A Nostr client that makes relays a first-class concept
Go to file
2022-12-03 12:56:39 -08:00
public First commit 2022-11-22 17:28:33 -08:00
src Make dufflepud configurable 2022-12-03 12:56:39 -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
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 Add link previews 2022-12-03 12:26:13 -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

Bugs

  • uniq is sprinkled all over the place, figure out a better solution for de-duplication
  • Fix replies - notes may only include a "root" in its tags
  • Reactions in modal are broken

Features

  • Chat
  • Threads/social
  • Search
  • Permalink note detail (share/permalink button?)
  • Add "view thread" page that recurs more deeply
  • Link previews https://github.com/Dhaiwat10/svelte-link-preview, https://microlink.io/sdk
    • Make them opt-in
  • With link/image previews, remove the url from the note body if it's on a separate last line
  • Followers, blocks, likes on 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