A powerful, AI-enhanced notes application built with Tauri and React, designed for technical content creators and knowledge workers.
Logia blends structured text editing with infinite visual canvases, ensuring your ideas are captured exactly how you envision them. With local-first performance and optional cloud capabilities, it is the perfect companion for your second brain.
- AI-Powered Assistance: Integrated with Google AI for intelligent note generation and editing.
- Rich Text Editing: Full-featured editor with BlockNote for structured content creation.
- Visual Note-Taking: Integrated tldraw canvas for infinite sketching, diagrams, and whiteboarding.
- Audio Recording & Transcription: Record and transcribe audio content directly in your notes.
- File Management: Hierarchical file tree with drag-and-drop organization.
- Trash & Recovery: Safely delete notes and folders with a 14-day recovery window.
- Cloud Sync: Optional Google Drive synchronization for backup and cross-device access (BYO Credentials).
- Search & Discovery: Fast, fuzzy search across all your notes.
- Kanban Boards: Organize your tasks and workflows with visual boards.
- Cross-Platform: Native desktop app for Windows, macOS, and Linux.
- Markdown Support: Full markdown rendering with GitHub Flavored Markdown.
-
Clone the repository:
git clone https://github.com/daschinmoy21/Logia.git cd logia -
Install dependencies:
bun install
-
Run in development mode:
bun run tauri dev
-
Build for production:
bun tauri build
Note for Linux Users: There is a known issue with linuxdeploy in Tauri which may cause build errors with AppImage creation. usage:
NO_STRIP=true bun tauri build
Logia is available as a Nix flake for easy installation on NixOS or any system with Nix.
Run without installing:
nix run github:daschinmoy21/LogiaInstall to user profile:
nix profile install github:daschinmoy21/LogiaAdd to NixOS configuration:
-
Add to your flake inputs:
inputs.logia = { url = "github:daschinmoy21/Logia"; inputs.nixpkgs.follows = "nixpkgs"; };
-
Pass it through
specialArgsand use in your config:environment.systemPackages = [ logia.packages.${pkgs.system}.default ];
To enable Google Drive sync, you need to provide your own Google OAuth credentials. The Logia package accepts googleClientId and googleClientSecret parameters:
-
Get OAuth credentials from Google Cloud Console.
-
Create secrets files (store these securely, outside your git repo):
mkdir -p ~/.config/logia-secrets echo "YOUR_CLIENT_ID" > ~/.config/logia-secrets/google-client-id echo "YOUR_CLIENT_SECRET" > ~/.config/logia-secrets/google-client-secret
-
Update your NixOS config to pass credentials:
# In your flake.nix specialArgs or where you define packages: logia = inputs.logia.packages.${system}.logia { googleClientId = builtins.readFile /home/YOUR_USERNAME/.config/logia-secrets/google-client-id; googleClientSecret = builtins.readFile /home/YOUR_USERNAME/.config/logia-secrets/google-client-secret; };
Note: The
defaultpackage builds without credentials (Google Drive sync disabled). Use thelogia { ... }function to pass your own credentials.
Development shell:
nix develop # Enters a shell with all dependencies
bun install
bun tauri dev- Creating Notes: Use the file tree sidebar to create new notes or organize existing ones.
- AI Assistance: Access AI features through the AI sidebar for content generation and editing.
- Drawing: Click the drawing tool to open the infinite canvas for visual notes.
- Recording: Use the recording feature to capture audio and automatically transcribe it.
- Search: Press
Alt+PorMeta/Cmd+P(Mac) to open the command palette and search across all content. - Sync: If configured, sync your notes to Google Drive via the Settings menu.
Create a .env file in the root directory with your API keys:
OPENAI_API_KEY=your_openai_key
GROQ_API_KEY=your_groq_key
GOOGLE_GENRATIVE_AI_API_KEY=your_google_keysrc/- React frontend applicationsrc-tauri/- Tauri backend and Rust codesrc/components/- Reusable UI componentssrc/store/- State management with Zustand
bun run dev- Start the Vite development serverbun run build- Build the frontend for productionbun run tauri dev- Start Tauri development modebun run tauri build- Build the native application
The dist/ folder is committed to the repository for reproducible Nix builds. When you make frontend changes, you must rebuild and commit the dist folder:
# Enter dev shell (if on NixOS)
nix develop
# Make your frontend changes...
# Rebuild the frontend
bun run build
# Commit the updated dist
git add dist/
git commit -m "Update frontend build"
git pushNote: This is required because Nix builds are sandboxed and cannot access the network to run
bun install. Pre-building ensures reproducible builds for all users.
When distributing the Windows installer, include this checklist so users have the required runtime components for audio capture and transcription to work.
Required on target machine (or bundled in installer):
- Microsoft Visual C++ Redistributable (Visual Studio C++ 2015-2022 runtime)
- FFmpeg available on PATH (required by some audio libs and optional features)
- Python 3.12+ (if not bundling a portable Python)
- pip available
- If your installer does not bundle Python, the app will attempt to create a virtual environment and install dependencies at first run.
- Internet access for pip installs (unless you bundle prebuilt wheels)
Optional but recommended:
- Code-sign the EXE/MSI to avoid SmartScreen/AV false positives
Packaging tips:
- You can bundle a portable Python and a pre-created venv inside your installer to avoid first-run installs (tradeoff: larger installer size).
- Run installer tests on a clean Windows VM to reproduce missing-dependency issues.
The app exposes a Tauri command prereflight_check that returns JSON with diagnostics (python presence, ffmpeg, VC++ runtime, network, resource paths). The UI can call this command at first run to show actionable errors to users.
DO NOT MAKE SPAM PRs.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
