Installation & Setup
Relevant source files
The following files were used as context for generating this wiki page:
Augenblick is a cross-platform desktop application built using the Tauri framework, combining a Rust-based backend with a React-based frontend. The installation and setup process involves configuring both the Node.js environment for frontend development and the Rust toolchain for native system integration.
The project utilizes bun as the primary package manager for executing scripts and managing dependencies, while cargo handles the Rust-specific build requirements. The development environment is designed to support hot module replacement (HMR) for the frontend while simultaneously running the native Tauri application shell.
Sources: README.md:46-52, plans/migration.md:104-106, src-tauri/tauri.conf.json:7-12
Prerequisites & Dependencies
To set up the development environment, the system must have specific tools installed to handle the dual-language architecture of the project.
Frontend Dependencies
The frontend is built with React 19 and styled using Tailwind CSS v4. Key libraries include Radix UI for accessible components and Tiptap for the Markdown editor.
Sources: package.json:16-52
Backend Dependencies
The backend is powered by Rust (Edition 2021) and the Tauri v2 framework. It relies on rusqlite for local database management and chrono for time-based note expiry logic.
Sources: src-tauri/Cargo.toml:1-35
| Tool/Dependency | Requirement | Description |
|---|---|---|
| Node.js/Bun | Latest Stable | Frontend package management and script execution. |
| Rust/Cargo | Edition 2021 | Native backend compilation and system integration. |
| Tauri CLI | v2 | Orchestrates the build process between frontend and backend. |
| SQLite | Bundled | Local persistence for notes and app state. |
Sources: package.json:7-14, src-tauri/Cargo.toml:1-30, plans/migration.md:104-106
Development Environment Setup
The development workflow is orchestrated through Vite and the Tauri CLI. The environment is configured to facilitate rapid iteration by isolating frontend watching from native system changes.
The diagram above shows the concurrent execution of the Vite development server and the Rust compilation process during the development phase.
Sources: src-tauri/tauri.conf.json:8-10, vite.config.ts:31-48
Build Configuration
The project uses a specific port configuration for Tauri to communicate with the Vite development server.
- Frontend Dev URL:
http://localhost:1420 - HMR WebSocket Port:
1421 - Build Output Directory:
../dist
Sources: src-tauri/tauri.conf.json:9-12, vite.config.ts:32-41
Scripts Reference
The following scripts are defined in package.json for managing the lifecycle of the application:
| Script | Command | Purpose |
|---|---|---|
dev | vite | Starts the frontend dev server. |
build | vite build | Compiles frontend assets for production. |
tauri | tauri | Accesses the Tauri CLI (e.g., bun tauri dev). |
test | vitest | Runs the test suite. |
Sources: package.json:7-14
System Architecture Overview
Augenblick utilizes a decoupled architecture where the frontend (React) communicates with the backend (Rust) via an Inter-Process Communication (IPC) bridge.
The sequence shows the standard data flow for an application command initiated from the UI.
Sources: plans/migration.md:52-64, src-tauri/src/notes/write.rs:11-54
Native Build & Distribution
The build process for distribution bundles the compiled frontend assets into the native binary.
Build Artifacts
When running bun tauri build, the application generates system-specific installers:
- macOS:
.app,.dmg(includes App Sandbox and security-scoped bookmark capabilities). - Windows:
.msi,.exe. - Linux:
.deb,.AppImage.
Sources: src-tauri/tauri.conf.json:30-41, plans/migration.md:124-142
Application Configuration
The tauri.conf.json file defines critical application metadata and security settings.
- Identifier:
com.sunstory.augenblick - TitleBarStyle:
Overlay(enables the custom titlebar and drag region). - CSP: Configured to allow
self,asset:, and specific IPC connections while restrictingobject-src.
Sources: src-tauri/tauri.conf.json:5-28, vite.config.ts:1-48
Conclusion
Setting up Augenblick requires a synchronized environment of Bun and Rust. By leveraging Vite for frontend agility and Tauri for native performance, the project provides a robust development workflow that supports local persistence through SQLite and secure system interactions on macOS, Windows, and Linux.