Getting Started¶
This guide covers setting up a local development environment for DragonFly.
Prerequisites¶
| Tool | Minimum version | Notes |
|---|---|---|
| Node.js | 20 | LTS recommended |
| Rust | stable | rustup install stable |
| CMake | any | Required by whisper-rs for bindgen |
Windows¶
Install CMake and make sure it is in your PATH:
winget install cmake
Or download the installer from cmake.org.
Linux (Debian/Ubuntu)¶
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev \
patchelf clang libclang-dev cmake build-essential
Linux (Fedora)¶
sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel \
librsvg2-devel clang clang-devel cmake
Clone & Run¶
git clone https://github.com/Limozacloud/dragonfly.git
cd dragonfly
npm install
npm run dev:tauri
This opens the full desktop app with hot-reload for the frontend.
Frontend only (browser, no native features):
npm run dev
# → http://localhost:1420
Build for Release¶
npm run tauri build
Outputs are placed in src-tauri/target/release/bundle/.
For a Docker-based build that requires no local toolchain, see building.md.
Project Structure¶
dragonfly/
├── src/ # React + TypeScript frontend
│ ├── components/ # UI pages and components
│ ├── components/ui/ # Shadcn/ui base components
│ ├── services/ # Business logic, DB, API
│ ├── stores/ # Zustand state
│ ├── editor/ # BlockNote extensions
│ ├── i18n/ # Translation JSON files
│ └── types/ # TypeScript types
├── src-tauri/
│ └── src/commands/ # Rust Tauri commands
├── docs/ # Documentation
└── .github/ # Workflows, templates
First Steps for Contributors¶
- Check CONTRIBUTING.md for the contribution workflow
- Read architecture.md for the system overview
- Browse open issues for something to work on
Common Issues¶
CMake not found during cargo build
→ Install CMake and restart your terminal so PATH is updated.
libwebkit2gtk not found on Linux
→ Run the apt/dnf install command above.
App shows blank screen on dev:tauri
→ Make sure Vite dev server started on port 1420 before Tauri opens the window. It usually retries automatically.