Files
boris/FEATURES.md

5.0 KiB
Raw Blame History

Boris Features

Overview

  • Purpose: A calm, fast, Nostrfirst reader that turns your bookmarks into a focused reading app.
  • Layout: Threepane interface — bookmarks (left), reader (center), highlights (right). Collapsible sidebars.
  • Content: Renders both Nostr longform posts (kind:30023) and regular web URLs.
  • Social layer: Highlights shown by level — mine, friends, nostrverse — each with its own color and visibility toggle.

Reader Experience

  • Distractionfree view: Clean typography, optional hero image, summary, and published date.
  • Reading time: Displays estimated reading time for text or duration for supported videos.
  • Progress: Reading progress indicator with completion state.
  • TexttoSpeech: Listen to articles with browsernative TTS; play/pause/stop controls with adjustable speed (0.81.6x).
  • Menus: Quick actions to open, share, or copy links (for both Nostr and web content).
  • Performance: Lightweight fetching and caching for speed; skeleton loaders to avoid empty flashes.

Highlights (NIP84)

  • Levels: Mine, friends, nostrverse; toggle per level; colors configurable in settings.
  • Interactions: Click a highlight to scroll to its position; count indicator in the header.
  • Creation: Select text and use the floating highlighter button to publish a highlight.
  • Attribution: Automatically tags article authors for Nostr posts so they can see highlights.

Zap Splits (NIP57)

  • Configurable splits: Weightbased sliders for highlighter, author(s), and Boris (defaults 50/50/2.1).
  • Presets: Quick buttons for common split configurations.
  • Respect source: If the source article has zap tags, author weights are proportionally preserved.

Bookmarks & Reading List (NIP51 + Web)

  • Ingestion: Collects list bookmarks and items from kinds 10003/30003/30001.
  • Web bookmarks: Supports NIPB0 (kind:39701) for standalone URL bookmarks.
  • Add Bookmark: Modal with auto title/description extraction and keywords/tags suggestion (adds “boris” when helpful).
  • Views: Reading list in compact, cards, or large preview modes; quick toggles to switch.
  • Archive: “Read” items appear in your archive; can mark articles/web pages as read.

Explore & Profiles

  • Explore: Discover friends' highlights and writings, plus a "nostrverse" feed.
  • Filters: Visibility toggles (mine, friends, nostrverse) apply to Explore highlights.
  • Profiles: View your own (/my) or other users (/p/:npub) with tabs for Highlights, Bookmarks, Archive, and Writings.

Support

  • Supporter page: Displays avatars of users who zapped Boris (kind:9735 receipts).
  • Thresholds: Shows supporters who sent ≥ 2100 sats; whales (≥ 69420 sats) get special styling with a bolt badge.
  • Profile integration: Fetches and displays profile pictures and names for all supporters.
  • Stats: Total supporter count and zap count displayed at the bottom.

Video

  • Embedded player: Plays supported videos (e.g., YouTube) inline with duration display.
  • Metadata: Fetches YouTube title/description/transcript when available.
  • Deep links: Open in native apps via platformspecific URL schemes.

Settings (NIP78 Application Data)

  • Theme: System/light/dark with color variants (dark: black/midnight/charcoal; light: paperwhite/sepia/ivory).
  • Reading: Font family (preloaded), font size, highlight style (marker/underline), perlevel colors.
  • Layout & startup: Default view modes, autocollapse preferences, show/hide highlights.
  • Zap Splits: Weight sliders and presets for NIP57 splits.
  • Offline/Flight Mode: Local image cache with size limit and clear controls; “use local relay as cache”; rebroadcast preferences.
  • Relays: Relay overview and status in Settings; educational links.
  • PWA: Install prompt when available.

Offline, PWA, and Sync

  • PWA: Installable; service worker registered; periodic update checks with inapp toast.
  • Flight Mode: Operates with local relays only; highlights created offline are stored locally and synced later.
  • Relay indicator: Floating status indicator shows Connecting/Offline/Flight Mode and connected counts.

Relays & Accounts

  • Applesauce stack: Accounts, event store, relay pool, and blueprints power Nostr interactions.
  • Multirelay: Grouped connections with keepalive subscription; local+remote partitioning for fast queries.
  • Persistence: Accounts restored from local storage; settings saved to NIP78 and watched for updates.

Privacy

  • Identity: No email or new account; uses your existing Nostr signer/identity.
  • Data: Bookmarks and highlights live on Nostr; reading/rendering happens locally in your browser.

Conveniences

  • Share/copy: Oneclick copy or share for articles and videos.
  • Open on Nostr: Deep links to portals and nostr: schemes for longform articles.
  • Mobile UX: Floating open buttons for Bookmarks/Highlights, focus trapping, and backdrop controls.