A professional, production-ready starter kit (template) for building desktop applications with Dioxus (Rust). This template features a custom window, multi-language localization, dark/light theme support, and modern styling with Tailwind CSS.
Click the green "Use this template" button on top right corner to create your own project based on this starter.
After using this template, update the project name in Cargo.toml
:
[package]
name = "your-app-name"
Watch the demo: https://www.youtube.com/watch?v=y5Qv9c9FRzc
- ⚡ Dioxus Desktop: Fast, reactive UI in Rust
- 🪟 Custom Window: Unique window chrome and controls
- 🌐 Localization: Multi-language support (see
src/localization/
) - 🌗 Dark/Light Themes: Seamless theme switching
- 🎨 Tailwind CSS: Utility-first styling
- 🔄 Live CSS Reload:
npm run dev
for Tailwind watch mode - 🧩 Modular, scalable architecture
- Clone the repository:
git clone https://github.com/safwa1/dioxus_starter.git <your-app-name> cd <your-app-name>
- Install Rust dependencies:
cargo build
- Install Node.js dependencies (for Tailwind):
npm install
-
Start Tailwind in watch mode:
npm run dev
This will watch and rebuild your CSS on changes.
-
Run the Dioxus desktop app:
dx serve
Runs the app in development mode with hot reload.
-
Build for release:
dx build --release
Builds the app for production.
-
Bundle for distribution:
dx bundle --release
Bundles the app for release/distribution.
├── src/ # Rust source code
│ ├── app/ # App logic, components, router
│ ├── localization/ # Language files (multi-language)
│ ├── models/ # Data models
│ ├── services/ # Service layer
│ ├── state/ # State management
│ └── utils/ # Utilities and macros
├── assets/ # Static assets (CSS, icons)
├── icons/ # App icons for various platforms
├── tailwind.config.js # Tailwind CSS config
├── tailwind.css # Tailwind CSS entry
├── Cargo.toml # Rust project manifest
├── package.json # Node.js dependencies/scripts
└── README.md # Project documentation
- Add or edit language files in
src/localization/
to support more languages. - Language switching is handled in-app.
- Supports both dark and light themes.
- Theme switching is available in the UI and managed in app state.
- Hot Reload: Use
dx serve
or your preferred tool for live reload during development. - Linting:
cargo clippy
- Formatting:
cargo fmt
Contributions are welcome! Please open issues or submit pull requests for improvements or bug fixes.
This project is licensed under the MIT License.