A Modern Desktop Application Development Template based on Tauri 2.0 + Vue 3 + TypeScript
Ready to Use ยท Configuration Driven ยท Feature Complete
English | ็ฎไฝไธญๆ
Features โข Quick Start โข Core Modules โข Documentation
This template includes enterprise-grade functional modules, all configuration-driven and ready to use:
Business Modules:
- ๐ Auto Updater - Version checking, download progress, auto-installation
- ๐พ Data Persistence - Local storage, nested access, Vue reactivity
- โจ๏ธ Shortcuts System - Global/local shortcuts, cross-platform support
- ๐ System Notifications - Native notifications, permission management
Infrastructure:
- ๐ช Window State - Auto-save/restore window position and size
- ๐ Single Instance - Prevent multiple app instances
- ๐จ Theme System - Dark/light mode, follow system preference
- ๐ Logger - Structured logging with persistence
- ๐ฏ Floating Ball - File drag & drop upload, real-time progress, draggable, always on top
- ๐จ Custom Window - macOS-style title bar, transparent window support
- ๐ System Tray - Multi-level menu groups, fully configurable
- ๐ฆ Lightweight & Efficient - Rust-based, small size, excellent performance
- ๐ ๏ธ Configuration Driven - TypeScript config auto-synced to Rust
- ๐ Code Standards - ESLint + Prettier + Husky out of the box
Frontend: Vue 3.5 + TypeScript 5.8 + Vite 7.1 + Tailwind CSS 3.4
Backend: Tauri 2.8 + Rust 1.70+
State: Pinia 3.0
- Node.js 20.19+ or 22.12+
- Rust 1.70+
- System dependencies: See Tauri Prerequisites
# Clone the project
git clone <your-repo-url>
cd pixelpunk
# Install dependencies
npm install
# Development mode
npm run tauri:dev
# Build application
npm run tauri:buildThis template includes ready-to-use core modules. For detailed usage, see Development Guide.
Business Modules:
| Module | Features | Config File |
|---|---|---|
| ๐ Auto Updater | Version check, download progress, auto-install | src/config/updater.config.ts |
| ๐พ Data Persistence | Local storage, nested access, Vue reactivity | src/config/storage.config.ts |
| โจ๏ธ Shortcuts System | Global/local shortcuts, configuration-driven | src/config/shortcuts.config.ts |
| ๐ Notifications | Native notifications, permission management | src/utils/notification.ts |
Infrastructure Modules:
| Module | Features | Location |
|---|---|---|
| ๐ช Window State | Auto-save/restore position and size | src/composables/useWindowState.ts |
| ๐ Single Instance | Prevent multiple app instances | src-tauri/src/single_instance.rs |
| ๐จ Theme System | Dark/light mode, follow system preference | src/composables/useTheme.ts |
| ๐ Logger | Structured logging with persistence | src/utils/logger.ts |
pixelpunk/
โโโ src/ # Vue frontend
โ โโโ config/ # Config files (main modification point)
โ โโโ utils/ # Utility modules
โ โโโ composables/ # Vue Composables
โ โโโ features/ # Feature modules
โ โโโ views/ # Page views
โ
โโโ src-tauri/ # Rust backend
โ โโโ src/ # Rust source code
โ โโโ icons/ # App icons
โ โโโ app.config.json # Auto-generated (do not edit manually)
โ
โโโ docs/ # Documentation
All configurations are centralized in src/config/app.config.ts and auto-synced to Rust:
export const appConfig = {
name: "Your App Name",
version: "1.0.0",
author: "Your Name",
description: "App description",
// ... window, tray, float ball configs
};Config Workflow: Modify TypeScript config โ Run npm run tauri:dev โ Auto-sync and apply
- Development Guide - Detailed usage guide, API reference, best practices
- Plugin Setup - Tauri plugin installation and configuration
- Icon Guide - Application icon configuration guide
- Tray Icon Guide - Tray icon design specifications
- Changelog - Version update records
- Contributing - How to contribute
- In-App Documentation - Launch the app and check the Home page for interactive docs
- Examples - Check the
examples/directory for code samples
# Development
npm run tauri:dev # Development mode (recommended)
npm run dev # Frontend dev server only
# Build
npm run tauri:build # Build complete application
npm run build # Build frontend only
# Configuration
npm run sync:config # Sync configuration
npm run generate-icons # Generate icons
# Code Quality
npm run lint # Code linting
npm run format # Code formatting
npm run type-check # Type checkingConfiguration not working?
Run npm run sync:config and restart the app.
How to customize tray menu?
- Add menu items in
src/config/app.config.ts - Handle events in
src-tauri/src/lib.rson_menu_event
See Development Guide for details.
How to use core modules?
Check Development Guide for detailed usage and code examples for each module.
More questions?
Check Development Guide or submit an Issue.
Issues and Pull Requests are welcome! See Contributing Guide.
MIT License - See LICENSE file for details
Built with Tauri 2.0 + Vue 3 ยท Ready-to-Use Desktop Application Development Template
