A Nostr client that makes relays a first-class concept
Go to file
2022-12-05 21:12:11 -08:00
public First commit 2022-11-22 17:28:33 -08:00
src Implement muffle 2022-12-05 21:12:11 -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 follow 2022-12-05 10:06:07 -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

  • Prevent tabs from re-mounting (or at least re- animating)
  • Go "back" after adding a note
  • When the back button is clicked while a modal is open, close the modal instead
  • uniq is sprinkled all over the place, figure out a better solution for de-duplication
  • With link/image previews, remove the url from the note body if it's on a separate last line

Features

  • Chat
  • Threads/social
  • Search
  • Permalink note detail (share/permalink button?)
  • Add "view thread" page that recurs more deeply
  • Fix replies - notes may only include a "root" in its tags
  • Link previews https://github.com/Dhaiwat10/svelte-link-preview, https://microlink.io/sdk
    • Make them opt-in
  • Add notes, follows, likes tab to profile
  • 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