This is a text repository explorer built with Rust and akar (a GPU UI component library) on top of wgpu and glyphon. The application provides an infinite canvas interface for exploring text documents in a visual, card-based layout, with hybrid commit, code, and document search.
✅ Infinite Canvas
✅ Left Drawer
✅ Document Cards
✅ Global Search Box
✅ Code Search Across Five Languages
.rs), TypeScript (.ts), TSX (.tsx), JavaScript (.js), and JSX (.jsx) files share one code indexnode_modules/, vendor/, dist/, build/, .next/, coverage/, and *.min.js), so production paths stay language-neutral✅ System Theme Support
AKAR_THEME_DARK)# From the daftprompt directory
cargo run
daftprompt/
├── Cargo.toml # workspace root + main binary
├── src/
│ ├── main.rs # entry point, CLI args, event loop, screenshot flow
│ ├── state.rs # application state (CanvasState, AppState)
│ ├── git_log.rs # git commit reader (gitoxide)
│ └── ui/
│ ├── mod.rs # module tree (container, render)
│ ├── adapter.rs # stable card key hashing
│ ├── container.rs # data model (Container, CardData, DocumentData, ContainerType)
│ └── render.rs # immediate-mode render functions (canvas, drawer, search, containers)
├── crates/
│ └── daftprompt-indexer/
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs # Indexer public API (commits, code, documents, unified search)
│ ├── db.rs # SQLite schema, FTS5, vec0, queries
│ ├── embed.rs # model2vec-rs wrapper
│ ├── code.rs # language registry/router + shared Rust/TypeScript/TSX/JavaScript/JSX query constants
│ ├── documents.rs # document discovery, chunking, incremental indexing
│ └── schema.sql # SQL schema definition
└── epics/ # feature epic specifications
~/Projects/akar/crates/akar-*. Owns the wgpu pipeline, taffy layout, components, and winit event routing.akar-winit augments it).rs), TypeScript (.ts), TSX (.tsx), and JavaScript/JSX (.js/.jsx); tree-sitter-javascript shares one grammar across JS and JSX (Epics 004, 009, 010)--screenshot outputThe previous "Next Steps" list (real-data integration, document parsing, file watching) is now done by Epic 002 (git log column), Epic 003 (commit indexer), Epic 004 (Rust code indexer), Epic 007 (document indexer), Epic 009 (TypeScript and TSX), and Epic 010 (JavaScript and JSX). The remaining genuine follow-ups after Epic 010 are:
~/Library/Caches/daftprompt/{slug}.db on macOS), but window state and canvas pan/zoom are not.akar-winit does not expose Cmd/Ctrl modifier state; modifier tracking is done manually in AppState via a WindowEvent::ModifiersChanged arm.# Check for compilation errors
cargo check --workspace
# Run with debug logging
RUST_LOG=debug cargo run
# Capture one frame to PNG (visual regression)
cargo run --release -- --screenshot /tmp/daftprompt.png --exit
# Run tests
cargo test --workspace
This project is a prototype and is not yet licensed for distribution.
82 commits
Hacker News (1)
Rust
100.0%
This is a text repository explorer built with Rust and akar (a GPU UI component library) on top of wgpu and glyphon. The application provides an infinite canvas interface for exploring text documents in a visual, card-based layout, with hybrid commit, code, and document search.
✅ Infinite Canvas
✅ Left Drawer
✅ Document Cards
✅ Global Search Box
✅ Code Search Across Five Languages
.rs), TypeScript (.ts), TSX (.tsx), JavaScript (.js), and JSX (.jsx) files share one code indexnode_modules/, vendor/, dist/, build/, .next/, coverage/, and *.min.js), so production paths stay language-neutral✅ System Theme Support
AKAR_THEME_DARK)# From the daftprompt directory
cargo run
daftprompt/
├── Cargo.toml # workspace root + main binary
├── src/
│ ├── main.rs # entry point, CLI args, event loop, screenshot flow
│ ├── state.rs # application state (CanvasState, AppState)
│ ├── git_log.rs # git commit reader (gitoxide)
│ └── ui/
│ ├── mod.rs # module tree (container, render)
│ ├── adapter.rs # stable card key hashing
│ ├── container.rs # data model (Container, CardData, DocumentData, ContainerType)
│ └── render.rs # immediate-mode render functions (canvas, drawer, search, containers)
├── crates/
│ └── daftprompt-indexer/
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs # Indexer public API (commits, code, documents, unified search)
│ ├── db.rs # SQLite schema, FTS5, vec0, queries
│ ├── embed.rs # model2vec-rs wrapper
│ ├── code.rs # language registry/router + shared Rust/TypeScript/TSX/JavaScript/JSX query constants
│ ├── documents.rs # document discovery, chunking, incremental indexing
│ └── schema.sql # SQL schema definition
└── epics/ # feature epic specifications
~/Projects/akar/crates/akar-*. Owns the wgpu pipeline, taffy layout, components, and winit event routing.akar-winit augments it).rs), TypeScript (.ts), TSX (.tsx), and JavaScript/JSX (.js/.jsx); tree-sitter-javascript shares one grammar across JS and JSX (Epics 004, 009, 010)--screenshot outputThe previous "Next Steps" list (real-data integration, document parsing, file watching) is now done by Epic 002 (git log column), Epic 003 (commit indexer), Epic 004 (Rust code indexer), Epic 007 (document indexer), Epic 009 (TypeScript and TSX), and Epic 010 (JavaScript and JSX). The remaining genuine follow-ups after Epic 010 are:
~/Library/Caches/daftprompt/{slug}.db on macOS), but window state and canvas pan/zoom are not.akar-winit does not expose Cmd/Ctrl modifier state; modifier tracking is done manually in AppState via a WindowEvent::ModifiersChanged arm.# Check for compilation errors
cargo check --workspace
# Run with debug logging
RUST_LOG=debug cargo run
# Capture one frame to PNG (visual regression)
cargo run --release -- --screenshot /tmp/daftprompt.png --exit
# Run tests
cargo test --workspace
This project is a prototype and is not yet licensed for distribution.
Hacker News (1)
82 commits
Rust
100.0%