Inspiration
We wanted a serious AI reading tool that respects privacy. Many readers require uploading entire documents to the cloud, so we built RustyReader around a local-first approach that keeps books, notes, reading progress, and extracted text on the user’s device.
## What it does
RustyReader is an AI-powered desktop reader for PDFs and EPUBs. Users can ask questions about selected text, the current page, page ranges, or entire chapters. Answers include clickable page citations that navigate back to the source. It also supports tables of contents, OCR fallback, reading statistics, and both cloud and local AI models.
## How we built it
We built the desktop application with Tauri v2, React, TypeScript, and Vite. PDF rendering uses PDF.js, application state is managed with Zustand, and local data is stored in SQLite. RustyReader connects to OpenAI-compatible APIs, Anthropic, LM Studio, and Ollama while sending only the bounded text context required for each request.
## Challenges we ran into
The biggest challenges were handling long and differently structured documents, extracting useful context without sending complete files, supporting both PDFs and EPUBs, and keeping AI citations reliably connected to the correct pages. We also had to provide OCR fallback for documents without usable text layers and securely store provider credentials.
## Accomplishments that we're proud of
We are proud of creating a genuinely local-first reading experience with no accounts, advertising, or built-in telemetry. RustyReader combines configurable AI providers, secure credential storage, contextual questions, clickable citations, native document navigation, and persistent reading state in one desktop application.
## What we learned
We learned that an effective AI reader depends as much on context selection and source traceability as it does on the model itself. Restricting requests to relevant text improves privacy and keeps interactions manageable, while clickable citations make AI answers easier to verify and trust.
## What's next for RustyReader
Next, we plan to improve support for complex and long documents, strengthen OCR and text extraction, refine contextual AI conversations and citations, expand reading and annotation workflows, and continue polishing the experience across PDFs, EPUBs, local models, and self-hosted providers.
Built With
- javascript
- openai
- rust
- sqlite
- tauri
- typescript
- vite
Log in or sign up for Devpost to join the conversation.