Akda is a powerful, open-source PDF annotation and note-taking tool designed for students, researchers, and professionals who work across multiple operating systems.
Built with a modern tech stack, Akda offers a fast, lightweight, and intuitive experience for reading, annotating, and managing your PDF documents — without the heavy resource usage of a web browser.
The main motivation behind Akda is simple:
I use multiple environments — macOS, Windows, and Ubuntu Linux — and I need a single, consistent app to take notes and annotate PDFs across all of them.
Opening PDFs in full-fledged browsers like Chrome or Edge often consumes too much RAM, which makes multitasking difficult. Akda solves this problem by giving you fine-grained control over your PDF reading and annotation workflow while keeping memory usage low and performance high.
With Akda, your annotations and notes stay synchronized across your devices, and you stay productive no matter which OS you’re using.
- 🌍 Cross-Platform: Works seamlessly on Windows, macOS, and Linux.
- 🧠 Intelligent Notes: Highlight, underline, strikethrough, and add notes directly to your PDFs.
- 🧩 Modular Architecture: Easily extend Akda with your own plugins or features.
- ⚡ Built for Speed: Lightweight Rust + Tauri backend ensures blazing-fast performance and minimal memory usage.
- 🧭 Clean Interface: A modern and minimal interface built with React and shadcn/ui.
- 🔐 Open Source: Licensed under AGPL-3.0-or-later — free to use, modify, and share.
- Tauri: Lightweight framework for secure and fast desktop apps.
- React: UI built for responsiveness and modern design.
- TypeScript: For reliable and maintainable code.
- Vite: Lightning-fast development and build tool.
- Rust: Handles heavy PDF processing and system operations efficiently.
- shadcn/ui: Elegant UI components built on Radix primitives.
- Zustand: Lightweight state management for local and synced app state.
- TanStack Query: Manages async state, caching, and data synchronization.
Akda follows a hybrid architecture combining a web-based frontend and a native Rust backend:
-
Frontend (React + Vite):
Renders the UI, manages state, and handles user interaction. -
Backend (Rust + Tauri):
Manages native OS features like file access, windowing, and PDF parsing.
Provides a secure IPC bridge for communication with the frontend. -
IPC Communication:
Frontend and backend exchange data through Tauri’s secure Inter-Process Communication (IPC) layer, ensuring speed and safety.
- Node.js (v18+)
- Rust (latest stable)
- Platform dependencies (Tauri Prerequisites)
git clone https://github.com/marbelona/akda.git
cd akda
npm install
npm run tauri:devnpm run tauri:buildThe compiled binaries will be located in src-tauri/target/release.
Akda is just getting started. The roadmap includes exciting features that push cross-platform note-taking even further:
- Store your annotations, highlights, and notes directly in Google Drive.
- Automatic synchronization of app state across all your devices.
- Background updates to keep your environment in sync (Windows ↔ macOS ↔ Linux).
- No central server — your data stays in your Google Drive.
- Create custom notebooks to organize your PDFs and notes.
- Add, remove, or reorder pages seamlessly.
- Adaptive title bar styling that adjusts based on your operating system (macOS, Windows, Linux).
- Ensures a consistent but native feel across platforms.
- Supports native window buttons and dark/light mode variations.
- Multi-tab PDF viewer for quick switching between documents.
- Quick-search and global annotation indexing.
WIP
- Huge thanks to @dannysmith for creating the excellent Tauri Template, which provided a solid foundation for Akda’s production-ready setup.
Akda is licensed under the AGPL-3.0-or-later license.
See LICENSE.md for more details.