Uses RSVP (Rapid Serial Visual Presentation) to flash words at configurable speeds. Everything runs client-side, your documents never leave your browser.
- RSVP engine with adjustable WPM (100-1000)
- Word grouping: display 1, 3, 5, 10, or 20 words per flash
- ORP (Optimal Recognition Point) highlighting in amber for faster recognition
- Document library with IndexedDB storage and AES-GCM encryption
- Supports PDF, TXT, DOCX, and Markdown
- Fullscreen mode for distraction-free reading
- Full keyboard shortcut support
- Dark theme with void black background and amber accents
- Language: Rust
- Framework: Leptos 0.8 (CSR)
- Compilation: WebAssembly via wasm-bindgen
- Build: Trunk
- Storage: IndexedDB with AES-GCM encryption
- PDF parsing: pdf.js 4.0
- DOCX parsing: JSZip 3.10
- Sanitization: ammonia (XSS prevention)
- Deployment: Vercel with auto-deploy
- Typography: Space Grotesk
Prerequisites:
- Rust (stable)
- wasm32-unknown-unknown target
- Trunk
git clone https://github.com/JDRV-space/nabu.git
cd nabu
rustup target add wasm32-unknown-unknown
cargo install trunk
trunk serveApp runs at http://127.0.0.1:8080
For production: ./scripts/build.sh (output in dist/)
| Key | Action |
|---|---|
| Space | Play/Pause |
| Left/Right | Adjust WPM by 50 |
| Up/Down | Adjust WPM by 10 |
| R | Restart |
| F | Fullscreen |
| ESC | Exit reader |
nabu/
├── src/
│ ├── main.rs # Entry point
│ ├── components/ # reader, library, settings, controls, upload
│ ├── state/ # Application state and signals
│ ├── storage/ # IndexedDB + encryption
│ └── parser/ # PDF, DOCX, TXT, MD parsing
├── docs/SPEC.md # Full specification
├── scripts/ # Build scripts
├── index.html
├── style.css
├── Cargo.toml
├── Trunk.toml
├── vercel.json
└── LICENSE
- XSS prevention via ammonia
- AES-GCM encryption for stored documents
- Magic bytes validation and size limits on uploads
- Strict CSP headers via Vercel
- No backend = no server-side attack surface
PRs welcome. See CONTRIBUTING.md.
- Fork the repo
- Create feature branch
- Commit changes
- Push and open PR
- Project Specification: design system, features, UI mockups
MIT. See LICENSE.
Juan Diego Rodriguez @JDRV-space