Stack:

  • vite
  • tauri
  • tailwindcss
  • vue
  • daisyUI
  • iconify

Let's start
pnpm create tauri-app

✔ Project name · PackageWatcher
✔ Package name · packagewatcher
✔ Identifier · com.packagewatcher.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · pnpm
✔ Choose your UI template · Vue - (https://vuejs.org/)
✔ Choose your UI flavor · JavaScript

cd PackageWatcher
pnpm i

code "./package.json"

  "dependencies": {
    "vue": "^3.5.13",
    "@tauri-apps/api": "^2.1.1",
    "@tauri-apps/plugin-shell": "^2.0.1"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.2.1",
    "vite": "^6.0.1",
    "@tauri-apps/cli": "^2.1.0"
  }

pnpm i
pnpm i tailwindcss@next @tailwindcss/vite@next daisyui@alpha

{
  "name": "packagewatcher",
  "private": true,
  "version": "0.1.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "tauri": "tauri"
  },
  "dependencies": {
    "@tailwindcss/vite": "4.0.0-beta.4",
    "@tauri-apps/api": "^2.1.1",
    "@tauri-apps/plugin-shell": "^2.0.1",
    "daisyui": "5.0.0-alpha.42",
    "tailwindcss": "4.0.0-beta.4",
    "vue": "^3.5.13"
  },
  "devDependencies": {
    "@tauri-apps/cli": "^2.1.0",
    "@vitejs/plugin-vue": "^5.2.1",
    "vite": "^6.0.1"
  }
}

some more install:
pnpm dlx oxlint@latest
pnpm i -d prettier

Now, init config
new .prettierrc.json

{
	"$schema": "https://json.schemastore.org/prettierrc",
	"semi": false,
	"singleQuote": true,
	"printWidth": 100,
	"useTabs": true
}

open vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'

const host = process.env.TAURI_DEV_HOST

export default defineConfig(async () => ({
	plugins: [vue(), tailwindcss()],
	clearScreen: false,
	server: {
		port: 1420,
		strictPort: true,
		host: host || false,
		hmr: host
			? {
					protocol: 'ws',
					host,
					port: 1421,
				}
			: undefined,
		watch: {
			ignored: ['**/src-tauri/**'],
		},
	},
}))

open index.html
add:
<link rel="stylesheet" href="./index.css">
in the header and
<span class="loading loading-spinner text-warning mx-auto"></span>
somewhere for testing purpose.

new index.css (near index.html):

@import "tailwindcss";
@plugin "daisyui" {
	logs: true;
	root: ":root";
	themes: light --default, dark --prefersdark, cupcake;
}

Test:
pnpm tauri dev

Now I have daisyUI 5 in Tailwindcss 4 + vite 6 + vue 3.5 and Iconify in Tauri 2