Files
libre-study/docs/product-tracks.md

3.9 KiB

Product Tracks

Phase 8 converts the completed foundation phases into durable product tracks. Future implementation phases should choose one track and define a narrow, finishable milestone inside it.

Study Experience

Purpose: make the app feel like a serious Bible study workspace.

Current foundation:

  • Page-first reader.
  • Bible desk layout with a resizable Bible page, verse-focused margin, and tabbed study stack.
  • Session-aware resource toggles.
  • Strong's links and definitions.
  • Verse-anchored margin notes with markers and export metadata.
  • Notebook book in the study stack with structured text/link/resource/image clip blocks.
  • Timeline.
  • Search.
  • Maps and audio controls where resources exist.

Good next milestones:

  • Cross-reference UX after a LibreBible package exists.
  • Better search result navigation and saved searches.
  • Highlights, clip organization, and richer notebook editing.
  • Sermon/study document workflows.
  • Responsive layout and accessibility pass.

Resource Ecosystem

Purpose: keep public Bible/study resources reusable, attributed, and separate from user data.

Current foundation:

  • LibreBible packages are consumed from W:\libre-bible-data\packages\json.
  • App-level query contracts hide the backing storage surface.
  • Existing resources include ASV, KJV, NET, Strong's, notes, commentary, dictionaries, places/routes, and KJV audio metadata.

Good next milestones:

  • Cross-reference package.
  • Additional commentaries and dictionaries.
  • Atlas images/media.
  • Licensed pronunciation audio.
  • Package install/update metadata.
  • Offline package management for desktop.

Persistence And Sync

Purpose: preserve study work across sessions and platforms without making any one backend mandatory.

Current foundation:

  • Versioned local workspace snapshot.
  • Structured session notes.
  • Session timeline.
  • JSON import/export.
  • Markdown, HTML, and CSV export.
  • Optional one-way Nextcloud WebDAV export.
  • Hosted workspace client boundary exists but is not the active development lane.

Good next milestones:

  • Import validation and conflict handling.
  • Better workspace migration tests.
  • Explicit backup/restore workflow.
  • Hosted single-user persistence after deployment is explicitly resumed.
  • Only consider sync after one-way export/import is reliable.

Platform Adapters

Purpose: keep one app core while allowing platform-specific storage, packaging, and runtime behavior.

Current foundation:

  • Browser/HotView adapter is the active lead lane.
  • Hosted web adapter exists for login/workspace API but is parked.
  • Tauri adapter exists with Rust/SQLite work but is not feature-parity with browser resources.
  • HotView runs on private Tailscale/local intranet at http://desktop:5174/.

Good next milestones:

  • Keep browser adapter clean and fast.
  • Resume hosted web only through an explicit release/deploy pass.
  • Harden Tauri once the study model is stable.
  • Evaluate PWA/mobile after responsive web is proven.

Public Responsibility

Purpose: prepare for responsible public use before public accounts or public hosted access.

Current foundation:

  • Public resource/user workspace ownership split is documented.
  • License attribution appears in resource surfaces.
  • Public release is intentionally not the current active loop.

Good next milestones:

  • License and attribution pages.
  • Privacy and terms pages.
  • Backups and monitoring.
  • Password reset and account lifecycle.
  • Abuse/rate-limit controls before public signup.

Collaboration

Purpose: support shared Bible study without turning the app into a social network.

Current foundation:

  • Sessions and exports can already carry study context.
  • Timeline events already record study actions.

Good next milestones:

  • Shareable read-only session exports or links.
  • Shared sessions with explicit owners and participants.
  • Collaborative notes before whiteboards.
  • Conflict-safe document model only after single-user persistence works.