How rubarmo/crysta works
Crysta is a local-first Snowflake Method writing workspace. A writer creates or opens a project, develops the novel through guided steps and planning tools, then can prepare a formatted book export. The frontend invokes native Rust commands through the Tauri bridge, with SQLite-backed project data. The README documents snapshots, bilingual directionality, and export formats; some of those implementations were not sampled, so their internal wiring is shown conservatively.
Main entry points: Workspace.tsx Writing workspace · lib.rs Tauri runtime · lib.ts Command bridge · App.tsx App shell
Components 21
Application shell
- App shell
src/App.tsx - Language settings
src/LanguageContext.tsx
Story development
- Writing workspace
src/components/Workspace.tsx - Workspace data
src/hooks/useWorkspaceData.ts - Snowflake steps
src/components/Workspace.tsx - Character planning
src/components/Workspace.tsx - Scene outlining
src/components/workspace/SceneMatrixView.tsx - Novel drafting
src/components/workspace/WriteNovelTab.tsx - Word counts
src/components/WordCounter.tsx
Local project data
- Command bridge
src/lib.ts - Project commands
src-tauri/src/commands/project.rs - Novel commands
src-tauri/src/commands/novel.rs - Story commands
src-tauri/src/commands/story.rs - Snapshot commands
src-tauri/src/commands/snapshots.rs - SQLite project data
src-tauri/src/db.rs
Book production
- Book studio
src/components/workspace/BookStudioTab.tsx - Book export
src/services/bookExportService.ts - Export commands
src-tauri/src/commands/export.rs
Native services
- Tauri runtime
src-tauri/src/lib.rs
Other components
- Writer
- Local files
Connections 28
- Writer → App shell: uses
- App shell → Command bridge: manages projects
- App shell → Writing workspace: opens workspace
- App shell → Language settings: sets language
- App shell → Command bridge: loads progress
- Writing workspace → Workspace data: edits story data
- Writing workspace → Snowflake steps: presents steps
- Writing workspace → Character planning: presents planning
- Writing workspace → Scene outlining: presents outlines
- Writing workspace → Novel drafting: presents drafting
- Writing workspace → Word counts: counts words
- Workspace data → Command bridge: loads and saves
- Command bridge → Tauri runtime: invokes commands
- Tauri runtime → Project commands: dispatches
- Tauri runtime → Novel commands: dispatches
- Tauri runtime → Story commands: dispatches
- Tauri runtime → Snapshot commands: dispatches
- Tauri runtime → Export commands: dispatches
- Project commands → SQLite project data: reads and writes
- Novel commands → SQLite project data: reads and writes
- Story commands → SQLite project data: reads and writes
- Snapshot commands → SQLite project data: backs up
- Book studio → Command bridge: saves formatting
- Book studio → Book export: exports book
- Book export → Command bridge: saves export
- Export commands → SQLite project data: reads and writes
- Project commands → Local files: selects project files
- Export commands → Local files: writes export