mirror of
https://github.com/hoornet/vega.git
synced 2026-04-24 06:40:01 -07:00
Fix own profile not updating after save + expand roadmap
- ProfileView: own profile now reads from user store directly instead of useProfile() hook, which only re-fetches on pubkey change — so the bio/ name/avatar updates immediately after saving without needing to navigate away - ROADMAP: added items from playtest feedback: - About/funding page (Bitcoin QR, Lightning, zap dev npub, Ko-fi/GitHub) - Mute/ignore user + anti-spam settings + WOT brainstorm note - Quote/repost (NIP-18) - Sidebar auto-hide + clearer collapse affordance - Profile helpers for newcomers (NIP-05, image upload) - Search improvements (NIP-50 relay detection, people search fallback) - UI/look & feel deferred until after Windows playtest - Long-form reading experience as a brainstorm session Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
93
ROADMAP.md
93
ROADMAP.md
@@ -1,7 +1,5 @@
|
||||
# Wrystr — Next Steps Roadmap
|
||||
|
||||
_Generated 2026-03-09 based on codebase analysis._
|
||||
|
||||
---
|
||||
|
||||
## Vision note: more than a Nostr client
|
||||
@@ -24,49 +22,96 @@ platform that happens to live on Nostr, not a social feed that happens to suppor
|
||||
|
||||
### 1. OS Keychain via Rust (Tauri backend)
|
||||
- Security-critical: private keys currently live in NDK signer memory only
|
||||
- Rust backend (`src-tauri/src/lib.rs`) only has a placeholder `greet()` command
|
||||
- Tauri has keychain plugins ready to use (`tauri-plugin-keychain`)
|
||||
- nsec sessions don't survive app restart — keychain fixes this permanently
|
||||
- Tauri has keychain plugins ready (`tauri-plugin-keychain`)
|
||||
|
||||
### 2. SQLite note caching
|
||||
- Notes disappear on every refresh — no persistence
|
||||
- Notes disappear on every restart — no local persistence
|
||||
- Would make the app feel dramatically more solid and fast
|
||||
- Rust backend is the right place for this
|
||||
|
||||
### 3. Direct Messages (NIP-44 — P3)
|
||||
- Significant complexity (encryption, key handling)
|
||||
### 3. About / Funding page
|
||||
- Hardcoded in-app page with all support options
|
||||
- Bitcoin on-chain address with scannable QR code
|
||||
- Lightning address with scannable QR code
|
||||
- Zap button (zap the developer's npub directly from within the app)
|
||||
- Links: GitHub (hoornet), Ko-fi/Jure, and any other funding sources
|
||||
- Lives in the sidebar footer or as a dedicated view — tasteful, never nagging
|
||||
- Ties into the zap infrastructure already built
|
||||
|
||||
### 4. Mute / ignore user + anti-spam
|
||||
- "Ignore this user" from profile or note context menu (NIP-51 mute list)
|
||||
- Mute list persisted to Nostr so it follows you across clients
|
||||
- Settings toggles for basic spam filters (e.g. hide notes from accounts < N days old,
|
||||
hide notes with no followers, hide pure bot patterns)
|
||||
- Consider: Web of Trust (WOT) score as an optional feed filter — needs design session
|
||||
|
||||
### 5. Quote / Repost (NIP-18)
|
||||
- "Quote" wraps a note in your own post with added commentary
|
||||
- "Repost" is a plain re-broadcast (kind 6)
|
||||
- Both are standard and expected by Nostr users
|
||||
- Quote is more valuable — it drives conversation
|
||||
|
||||
### 6. Sidebar: collapsible to icon-only + auto-hide
|
||||
- Toggle already exists (clicking WRYSTR collapses to w-12 icons), but it's not obvious
|
||||
- Make the toggle affordance clearer — a visible ‹ / › button
|
||||
- Auto-hide mode: sidebar expands on hover/click, collapses automatically after N seconds
|
||||
of activity in the main pane
|
||||
- Most important: the icon-only state should be the default or easily reachable
|
||||
|
||||
### 7. Profile helpers for newcomers
|
||||
- **NIP-05**: link to a guide or offer a basic self-hosted verification path
|
||||
- **Avatar / banner image upload**: instead of pasting a URL, let users upload directly
|
||||
(NIP-96 file storage or a simple Blossom upload via Tauri)
|
||||
- Newcomers fill in a URL field and have no idea what to put — this is a friction point
|
||||
|
||||
### 8. Search: improve full-text + people
|
||||
- NIP-50 full-text (`bitcoin` query) returns zero results on most relays — the UI
|
||||
should detect this and suggest using `#hashtag` instead, or show which relays support it
|
||||
- People search only works on NIP-50-capable relays; most don't support it
|
||||
- Consider: local people search by scanning follows-of-follows graph
|
||||
|
||||
### 9. Direct Messages (NIP-44 / NIP-17)
|
||||
- Significant complexity (encryption, key handling, inbox model)
|
||||
- Major feature gap but non-trivial to implement well
|
||||
- NIP-17 (private DMs) is the modern standard; NIP-44 is the encryption layer
|
||||
|
||||
---
|
||||
|
||||
### 10. Project funding & support UI
|
||||
## TODO — brainstorm sessions needed
|
||||
|
||||
> **TODO — brainstorm needed:** Users should have an easy, visible way to support the
|
||||
> project financially. This should feel native to the Nostr/Bitcoin ecosystem, not like
|
||||
> a generic donate button.
|
||||
>
|
||||
> Options to design around:
|
||||
> - **Bitcoin on-chain** — static address or xpub-derived address
|
||||
> - **Lightning** — LNURL-pay / Lightning address (instant, low-fee)
|
||||
> - **Zaps** — zap the developer's Nostr profile directly from within the app
|
||||
> - **Recurring** — Lightning recurring payments (NIP-47 or similar)
|
||||
>
|
||||
> UI ideas: a small persistent icon (⚡ or ₿) in the sidebar footer, an About modal,
|
||||
> or a dedicated Support page. Should be tasteful and opt-in, never nagging.
|
||||
> Ties directly into the zap infrastructure we'll build for NIP-57 anyway.
|
||||
### UI / look & feel
|
||||
- After Windows playtest: full design review of native feel, spacing, typography
|
||||
- The current UI is functional but has "amateur web app" feel on some surfaces
|
||||
- Target bar remains Telegram Desktop — fast, keyboard-navigable, feels native not webby
|
||||
- Specific surfaces to revisit: note cards, thread view, profile header, modals
|
||||
|
||||
### Web of Trust (WOT)
|
||||
- Nostr has a concept of social graph distance for trust scoring
|
||||
- Could power: feed ranking, spam filtering, people search, follow suggestions
|
||||
- Worth exploring but needs a dedicated design session — not a simple feature add
|
||||
|
||||
### Long-form reading experience
|
||||
- We write articles but there's no reader view
|
||||
- Discovery, recommendations, reading history, estimated read time
|
||||
- This is a major differentiator — needs its own design session
|
||||
|
||||
---
|
||||
|
||||
## What's already done (for reference)
|
||||
## What's already done
|
||||
|
||||
- **Onboarding**: key generation, nsec backup flow, plain-language UX, no extension required
|
||||
- **Onboarding**: key generation, nsec backup, plain-language UX, no extension required
|
||||
- **Global + following feed**, compose, reply, thread view
|
||||
- **Reactions** (NIP-25) with live network counts
|
||||
- **Follow / Unfollow** (NIP-02), contact list publishing
|
||||
- **Profile view + edit** (kind 0)
|
||||
- **Profile view + edit** (kind 0) — bug fix: own profile now updates immediately after save
|
||||
- **Long-form article editor** (NIP-23) with draft auto-save
|
||||
- **Zaps**: NWC wallet connect (NIP-47) + NIP-57 via NDKZapper, amount presets, comment
|
||||
- **Search**: NIP-50 full-text, hashtag (#t filter), people with inline follow
|
||||
- **Settings**: relay add/remove (live + persisted), NWC wallet setup, npub copy
|
||||
- **Sidebar**: collapsible to icon-only (click WRYSTR to toggle)
|
||||
- **Read-only mode**: npub login hides all write actions correctly
|
||||
- Note rendering (images, video, mentions, hashtags)
|
||||
- Relay connection status view
|
||||
- NDK 3.x wrapper for all Nostr interactions
|
||||
- GitHub Actions release: Linux AppImage, Windows exe/msi, macOS ARM dmg
|
||||
|
||||
Reference in New Issue
Block a user