Linux-first, local-first desktop Bible companion built with Tauri v2 + SvelteKit (TypeScript), SQLite (WAL + FTS5), and a minimal, atomic package structure. This repo is intentionally organized to be LLM-friendly, with schema-first contracts and small, focused packages.
Date scaffolded: 2025-08-17
bread-of-life/
apps/desktop/ # SvelteKit frontend (Tailwind + daisyUI + Bits UI + Melt UI hooks)
crates/
bible-ingest/ # Rust lib: OSIS/USFM ingestion -> SQLite
search/ # Rust lib: (future) Tantivy index support
docs/
ADR/ # Architecture Decision Records
SPEC.md # Main product spec (v1)
SPEC-ADDENDUM.md # Spec templates for atomic units
assets.yml # Bundled and user-added content, licenses, attribution
packages/
core/ # Domain types (TS), Zod schemas, enums
prompts/ # Prompts/specs for AI agents (MCP optional)
ui/ # Svelte components (thin abstractions; prefer Bits/Melt)
resources/
devotionals/ # Public-domain devotional datasets or import scripts
fonts/ # Suggested font stacks (Charis SIL / Inter / Noto)
src-tauri/ # Tauri v2 (Rust) backend, migrations, plugins
.editorconfig
.gitignore
justfile
pnpm-workspace.yaml
package.json
Cargo.toml
Install deps:
pnpm i --recursive
Frontend dev (Terminal A):
pnpm -C apps/desktop dev
Desktop shell (Terminal B):
# Uses devUrl http://localhost:5173 from Tauri
cargo run -p bread-of-life-tauri
First launch will initialize
~/.local/share/bread-of-life/
anddb.sqlite
(WAL + FTS5) and run migrations.
pnpm -C apps/desktop build
cargo tauri build