Consolidate roadmap into product tracks
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# App Architecture Boundaries
|
||||
|
||||
Libre Study should remain one app with platform adapters, not a set of separate apps.
|
||||
|
||||
## Shared Core
|
||||
|
||||
The UI should talk to stable app-level contracts:
|
||||
|
||||
- resource catalog queries
|
||||
- translation and page loading
|
||||
- search
|
||||
- Strong's lookup
|
||||
- notes/commentary/dictionary/map/audio lookup
|
||||
- session state
|
||||
- user workspace persistence
|
||||
- import/export
|
||||
- authentication where a platform supports it
|
||||
|
||||
Primary files today:
|
||||
|
||||
- `src/studyDataClient.ts`: resource/query interface.
|
||||
- `src/studyClient.ts`: browser and Tauri resource adapters.
|
||||
- `src/workspace.ts`: workspace, auth, session, settings, and timeline persistence contracts.
|
||||
- `src/sessionPortability.ts`: session export/import and one-way Nextcloud export.
|
||||
|
||||
## Resource Data Boundary
|
||||
|
||||
LibreBible owns public resources:
|
||||
|
||||
- translations
|
||||
- Strong's links
|
||||
- lexicons
|
||||
- footnotes and study notes
|
||||
- commentaries
|
||||
- dictionaries
|
||||
- places, routes, maps, and media
|
||||
- audio metadata and packages
|
||||
- license and attribution metadata
|
||||
|
||||
Libre Study consumes those packages. It should not become the canonical source for public Bible resources.
|
||||
|
||||
## User Data Boundary
|
||||
|
||||
Libre Study owns user workspace data:
|
||||
|
||||
- sessions
|
||||
- notes
|
||||
- timeline events
|
||||
- view settings
|
||||
- resource toggles
|
||||
- tags and future highlights
|
||||
- saved searches
|
||||
- exports
|
||||
- future collaboration state
|
||||
|
||||
User data should never be mixed into public LibreBible packages.
|
||||
|
||||
## Adapter Lanes
|
||||
|
||||
### HotView / Browser
|
||||
|
||||
Current lead lane. Uses Vite, local package reads, browser storage, and the private Tailscale/local intranet dev URL.
|
||||
|
||||
Normal URL:
|
||||
|
||||
```text
|
||||
http://desktop:5174/
|
||||
```
|
||||
|
||||
Vite HMR should use the detected Tailscale IPv4 address when available. `VITE_HMR_HOST` remains the override for other private addresses.
|
||||
|
||||
### Hosted Web
|
||||
|
||||
Parked until explicitly resumed. It may use login, remote persistence, private hosted resource URLs, and later collaboration services. Hosted deployment is not part of the normal HotView loop.
|
||||
|
||||
### Tauri Desktop
|
||||
|
||||
Future hardening lane. It should remain account-optional and offline-capable. Desktop storage can use SQLite and local package installation/update management.
|
||||
|
||||
### PWA / Mobile
|
||||
|
||||
Future lane. Evaluate responsive web and PWA behavior before considering mobile Tauri or native shells.
|
||||
|
||||
## Current Rule
|
||||
|
||||
When adding new features, first decide which shared contract owns the behavior. Only then wire platform-specific adapter details. This keeps browser, hosted web, desktop, and future mobile from drifting into separate products.
|
||||
Reference in New Issue
Block a user