A cutting-edge desktop application template that combines the latest web technologies with Rust-powered desktop capabilities and experimental web rendering.

This template demonstrates a modern approach to desktop application development by combining:
- Svelte v5 & SvelteKit v2 - The latest version of the powerful full-stack web framework
- Rolldown via Vite v7 - Ultra-fast Rust-powered bundler as a Vite plugin replacement
- Tauri v2 - Lightweight Rust-based framework for building desktop apps
- Servo Rendering Engine - Experimental high-performance web engine written in Rust
- Biome v2 - Lightning-fast formatter and linter that replaces ESLint + Prettier
- Tailwind CSS v4 - Latest version with improved performance and new features
- ShadCn Svelte - Beautiful, accessible UI components built with Tailwind
- Rolldown Bundling with Vite v7 - Significantly faster builds compared to traditional bundlers
- Servo Rendering Engine - Experimental web engine with potential performance benefits
- Tauri v2 - Smaller bundle sizes and better performance than Electron
- Biome v2 - 10-100x faster than ESLint/Prettier combinations
- TypeScript support out of the box
- Hot module reloading for rapid development
- Consistent code formatting with Biome
- Modern CSS with Tailwind v4 features
- Component library with ShadCN Svelte components
- Build for Windows, macOS, and Linux
- Native system integration through Tauri
- Web-based UI with native performance
Make sure you have the following installed:
- Bun (latest version) - Package manager and runtime
- Rust (latest stable) - Required for Tauri
- Node.js (v22.12+) - Fallback runtime support
- Microsoft C++ Build Tools or Visual Studio with C++ support
- Xcode Command Line Tools:
xcode-select --install
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
-
Clone or use this template
git clone <your-repo-url> cd template-sveltekit-rolldown-tauri-servo-biome-tailwind-shadcn-bun
-
Install dependencies
bun install
-
Install Tauri CLI (if not already installed)
bun add -g @tauri-apps/cli@latest
Start the development server with hot reloading:
bun run dev
This will:
- Start the SvelteKit dev server on
http://localhost:5173
- Launch the Tauri desktop application
- Enable hot module reloading for both frontend and backend changes
If you want to develop just the web portion:
bun run sveltekit:dev
Build the complete desktop application:
bun run build
Preview the built SvelteKit application:
bun run preview
βββ src/ # SvelteKit application source
β βββ lib/ # Shared components and utilities
β β βββ components/ # Reusable Svelte components
β β β βββ ui/ # ShadCN UI components
β β βββ hooks/ # SvelteKit hooks
β β βββ utils.ts # Utility functions
β βββ routes/ # SvelteKit routes (pages)
β β βββ +layout.svelte # Root layout component
β β βββ +layout.ts # Layout load function
β β βββ +page.svelte # Home page
β βββ app.css # Global styles (Tailwind imports)
β βββ app.d.ts # TypeScript declarations
β βββ app.html # HTML template
βββ src-tauri/ # Tauri Rust backend
β βββ src/ # Rust source code
β βββ Cargo.toml # Rust dependencies
β βββ tauri.conf.json # Tauri configuration
β βββ build.rs # Build script
βββ static/ # Static assets
βββ biome.json # Biome configuration
βββ components.json # ShadCN component configuration
βββ package.json # Node.js dependencies and scripts
βββ svelte.config.js # SvelteKit configuration
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration (with Rolldown)
Script | Description |
---|---|
bun run dev |
Start development server with Tauri app |
bun run build |
Build production desktop application |
bun run sveltekit:dev |
Start only SvelteKit dev server |
bun run sveltekit:build |
Build only SvelteKit application |
bun run preview |
Preview production SvelteKit build |
bun run check |
Run SvelteKit type checking |
bun run check:watch |
Run type checking in watch mode |
bun run tauri |
Access Tauri CLI commands |
This template uses Tailwind CSS v4 with:
- Modern configuration
- JIT compilation
- Custom design tokens
- Responsive design utilities
Pre-configured with ShadCn Svelte for beautiful, accessible components:
- Button components included
- Easy to add more components via CLI
- Customizable design system
- TypeScript support
To add new ShadCn components:
bunx shadcn-svelte@latest add button # Example
Biome is configured with:
- Formatting: 2-space indentation, single quotes, trailing commas
- Linting: Recommended rules enabled
- Performance: Much faster than ESLint + Prettier
Run code quality checks:
bunx biome check . # Check all files
bunx biome format . # Format all files
bunx biome lint . # Lint all files
bunx biome check . --fix # Fix auto-fixable issues
This template uses the experimental Servo rendering engine through tauri-runtime-verso
. This provides:
- Potential performance benefits over traditional webviews
- Modern web standards support
- Rust-based rendering for consistency with Tauri
Note: Servo integration is experimental and may have compatibility issues. For production applications, consider using the standard Tauri webview until Servo reaches stability.
Rolldown is used via rolldown-vite
package, providing:
- Faster builds than traditional bundlers
- Rust-powered performance
- Vite compatibility for familiar development experience
# Build for current platform
bun run build
# Build for specific platforms (configure in tauri.conf.json)
bun run tauri build --target x86_64-pc-windows-msvc # Windows
bun run tauri build --target x86_64-apple-darwin # macOS Intel
bun run tauri build --target aarch64-apple-darwin # macOS Apple Silicon
bun run tauri build --target x86_64-unknown-linux-gnu # Linux
Built applications will be in src-tauri/target/release/bundle/
:
- Windows:
.msi
installer and.exe
executable - macOS:
.dmg
disk image and.app
bundle - Linux:
.deb
package and.appimage
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run quality checks:
bunx biome check . --fix
- Test your changes:
bun run dev
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This template is available under the MIT License. See the LICENSE file for more details.
- Use
bun run dev
for the full development experience - The Servo rendering engine is experimental - report issues to help improve it
- Biome is much faster than ESLint/Prettier - leverage it for better DX
- Take advantage of Tailwind v4's new features for better styling
- Use ShadCn components for consistent, accessible UI elements
Happy coding! π This template represents the cutting edge of desktop application development with web technologies.