Skip to content

๐Ÿš€ Modern desktop app boilerplate with Tauri, Vue 3, TypeScript, and comprehensive configuration system

License

Notifications You must be signed in to change notification settings

CooperJiang/tauri-vue-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PixelPunk

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


Preview

PixelPunk Preview

Configuration Driven ยท Four Core Modules Ready to Use

Features

๐ŸŽฏ Core Modules

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

โœจ Complete Features

  • ๐ŸŽฏ 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

Tech Stack

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

Quick Start

Prerequisites

Installation

# 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:build

Core Modules

This 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

Project Structure

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

Configuration

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

Documentation

๐Ÿ“š Complete Documentation

๐ŸŽฏ Quick Links

  • In-App Documentation - Launch the app and check the Home page for interactive docs
  • Examples - Check the examples/ directory for code samples

Common Commands

# 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 checking

FAQ

Configuration not working?

Run npm run sync:config and restart the app.

How to customize tray menu?
  1. Add menu items in src/config/app.config.ts
  2. Handle events in src-tauri/src/lib.rs on_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.

Contributing

Issues and Pull Requests are welcome! See Contributing Guide.

License

MIT License - See LICENSE file for details


Built with Tauri 2.0 + Vue 3 ยท Ready-to-Use Desktop Application Development Template

About

๐Ÿš€ Modern desktop app boilerplate with Tauri, Vue 3, TypeScript, and comprehensive configuration system

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published