coracle/README.md

72 lines
3.0 KiB
Markdown
Raw Normal View History

2022-12-15 18:31:47 +00:00
# What is this?
2022-11-24 19:47:03 +00:00
2022-12-15 18:31:47 +00:00
Coracle is a web client for the Nostr protocol. While Nostr is useful for many things, Coracle focuses on providing a high-quality user experience. Check it out at [coracle.social](https://coracle.social).
[Dufflepud](https://github.com/staab/dufflepud) is a companion server which you can self-host. It helps Coracle with things like link previews and image uploads.
Coracle is currently in _alpha_ - expect bugs, slow loading times, and rough edges.
2022-11-24 19:47:03 +00:00
2022-12-15 18:31:47 +00:00
# Features
2022-11-24 19:47:03 +00:00
2022-11-27 03:34:28 +00:00
- [x] Chat
- [x] Threads/social
2022-12-03 20:26:09 +00:00
- [x] Search
2022-12-15 13:55:12 +00:00
- [x] Notifications
2022-12-06 05:46:40 +00:00
- [x] Link previews
2022-12-14 06:01:26 +00:00
- [x] Add notes, follows, likes tab to profile
2022-12-15 18:31:47 +00:00
- [ ] Mentions - render done, now reference in compose
- [ ] Image uploads
2022-12-15 13:55:12 +00:00
- [ ] An actual readme
2022-12-03 20:26:09 +00:00
- [ ] Server discovery and relay publishing - https://github.com/nostr-protocol/nips/pull/32/files
2022-12-17 20:30:18 +00:00
- [ ] Support invoices https://twitter.com/jb55/status/1604131336247476224
- [ ] Indexing server
2022-12-20 22:49:16 +00:00
- [ ] Add a coracle relay
2022-12-15 18:31:47 +00:00
# Bugs
- [ ] Completely redo notes fetching, it's buggy as heck
- [ ] uniq and sortBy are sprinkled all over the place, figure out a better solution
- [ ] Search page is slow and likes don't show up. Probably move this server-side
- [ ] User detail is not filtering by author
- [ ] Add alerts for replies to posts the user liked
- [ ] Support bech32 keys/add guide on how to convert
- [ ] With link/image previews, remove the url from the note body if it's on a separate last line
- [ ] Stack views so scroll position isn't lost on navigation
- [ ] We're sending client=astral tags, event id 125ff9dc495f65d302e8d95ea6f9385106cc31b81c80e8c582b44be92fa50c44
2022-12-20 13:48:28 +00:00
- [ ] Add notification for slow relays
- [ ] Wait for 60% or so of relays to eose to balance completeness with speed
2022-12-20 22:49:16 +00:00
- [ ] Add a CSP
2022-12-16 17:45:58 +00:00
2022-12-20 22:49:16 +00:00
# Current update
2022-12-16 17:45:58 +00:00
2022-12-17 04:46:15 +00:00
- [ ] Re-implement muffle
- Don't store muffled events, when muffle changes delete them
2022-12-17 23:25:07 +00:00
- [ ] Delete old events
- [ ] Sync account updates to user for e.g. muffle settings
2022-12-20 13:48:28 +00:00
- [ ] Make sure login/out, no user usage works
- [ ] Add a re-sync/clear cache button
2022-12-17 04:46:15 +00:00
- https://vitejs.dev/guide/features.html#web-workers
- https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers
- https://web.dev/module-workers/
2022-12-19 12:04:21 +00:00
2022-12-20 13:48:28 +00:00
- [x] Sync user
- [x] Based on petnames, sync network to 2 or 3 degrees of separation
2022-12-19 14:46:22 +00:00
- When a user is added/removed, sync them and add to or remove from network
- [ ] Add cursor object to handle since/until/last sync
- [ ] Separate fetching and loading from the db
- Each route should have a fetcher and loader.
- The fetcher should keep track of the range of notes it has already gotten
- Separate helper functions into loaders and fetchers
2022-12-19 12:04:21 +00:00
- [ ] Main fetch requests:
2022-12-19 14:46:22 +00:00
- Fetch feed by name, since last sync
2022-12-19 12:04:21 +00:00
- Fetch person, including feed
- Fetch note, including context
- This is based on detail pages. Each request should check local db and fall back to network, all within an await.
- [ ] How will newcomers get followed?
2022-12-20 22:49:16 +00:00
# Quick fixes
- Add default relay and relay list
- Show relay nav item when no user
- check security = user.name, image, use https://github.com/cure53/DOMPurify