A secure, encrypted password vault desktop app built with Tauri, React, and TypeScript, featuring biometric authentication and automatic clipboard clearing.
- Biometric Authentication: Windows Hello integration via
tauri-plugin-biometric - Clipboard Management: Auto-clear clipboard after 10 seconds via
tauri-plugin-clipboard-manager - Plugin Integration: All necessary Tauri plugins configured in
src-tauri/Cargo.toml
- Login Component: Email + master password login with biometric unlock button
- Vault Component: View, add, edit, delete password entries
- Password Generator: Generate strong random passwords
- Settings Component: User account and app settings
- API Integration: Backend communication with encrypted vault storage
- UI Framework: Full Tailwind CSS + Radix UI component library
- Responsive Design: Mobile-friendly with dark/light theme support
- Build System: Vite (ultra-fast bundler)
- Testing: Vitest with coverage support
- Icons: All required icon assets present (32x32, 128x128, 256x256, .ico, .icns)
- Environment: Support for different backend URLs via
.envfile
-
Node.js & npm: 18+ recommended
- ✅ Already satisfied (npm install completed)
-
Rust Toolchain: 1.77.2+
- Get from: https://www.rust-lang.org/tools/install
-
MSVC Build Tools
⚠️ REQUIRED FOR TAURI ON WINDOWS- Download: https://visualstudio.microsoft.com/downloads/
- Choose either:
- "Build Tools for Visual Studio 2022" (minimal, ~10GB)
- "Visual Studio Community" (full IDE, ~20GB)
- During installation, MUST select "Desktop development with C++"
- This provides the MSVC linker (
link.exe) needed by Tauri
-
WebView2 (Usually auto-installed with Visual Studio)
- Download from: https://visualstudio.microsoft.com/downloads/
- Run the installer
- Select "Desktop development with C++" workload
- Click "Install" and wait for completion (~15-30 min depending on connection)
- Restart your computer
# Check if MSVC linker is available
where link.exe
# Should output path like:
# C:\Program Files\Microsoft Visual Studio\2022\...\VC\Tools\MSVC\...\bin\Hostx86\x64\link.execd c:\Users\chait\Downloads\zcloudpass-app\zcloudpass-app
# Build Rust backend + React frontend
npm run tauri:build
# Or for development with hot reload
npm run tauri:devnpm run tauri:dev- Frontend auto-rebuilds on file changes
- Rust backend reloads automatically
- Dev tools available (DevTools + Console)
npm run tauri:build- Creates optimized executable in
src-tauri/target/release/ - Installer will be in
src-tauri/target/release/bundle/
- Windows Hello (fingerprint, face recognition)
- Appears as first option on login screen if available
- Fallback to master password always available
- AES-256-GCM encryption
- Argon2 key derivation (PBKDF2 alternative)
- Encrypted locally and synced to backend
- When you copy a password, it automatically clears after 10 seconds
- Prevents accidental paste of sensitive data
- Notification in Tauri status bar
- Customizable length and character types
- One-click generation while creating entries
- Strength indicator
- Add, edit, delete password entries
- Organize by account name, username, URL
- Search functionality
- Favicon display for websites
├── src/ # React frontend
│ ├── components/ # React components
│ │ ├── Login.tsx # Biometric + password login
│ │ ├── Vault.tsx # Main vault view
│ │ ├── Passwordgenerator.tsx
│ │ └── ui/ # Radix UI components
│ ├── lib/
│ │ ├── api.ts # Backend API + Tauri integration
│ │ └── crypto.ts # Encryption/decryption
│ ├── App.tsx # Main app component
│ └── index.css # Global styles
│
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ └── lib.rs # Tauri command handlers
│ ├── Cargo.toml # Rust dependencies + plugins
│ ├── tauri.conf.json # Tauri configuration
│ └── icons/ # App icons
│
├── package.json # npm scripts + dependencies
├── vite.config.ts # Vite bundler config
├── tsconfig.json # TypeScript config
└── .env.production # Backend URL
Update .env.production to point to your backend:
VITE_API_BASE_URL=https://your-backend-url.com/api/v1
The app expects these endpoints from your backend:
POST /auth/register- User registrationPOST /auth/login- Login (returns session token)GET /vault- Fetch encrypted vaultPUT /vault- Update encrypted vaultPOST /auth/change-password- Change master password
# Run unit tests
npm run test
# Run tests with coverage
npm run test:coverage
# Open coverage report
start coverage/index.html- Cause: MSVC Build Tools not installed
- Solution: Follow Step 1 in Installation Steps above
- Cause: Rust not installed
- Solution: Install from https://www.rust-lang.org/tools/install
- Platform Support: Windows 10+ with Windows Hello enabled
- Verification:
Settings > Accounts > Sign-in options > Check for Windows Hello
- Note: Clipboard clearing happens on the desktop app
- Fallback: Manual Ctrl+X clears it immediately after copy
- Run:
npm install - Reload VS Code:
Ctrl+Shift+P→ "Reload Window"
Create .env.development for local testing:
VITE_API_BASE_URL=http://localhost:3000/api/v1
Create .env.production for production build:
VITE_API_BASE_URL=https://zcloudpass-backend.onrender.com/api/v1
- Master password is hashed with Argon2 before transmission
- Vault is encrypted client-side with AES-256-GCM
- Session tokens expire after configured period
- Biometric is hardware-backed (Windows Hello)
- Clipboard auto-clears to prevent accidental leaks
After npm run tauri:build:
- Windows Installer:
src-tauri/target/release/bundle/msi/ - Portable EXE:
src-tauri/target/release/ - Size: ~50-70MB depending on system libraries
- Frontend changes: Edit
src/components/*.tsx→ auto-reload - Backend changes: Edit
src-tauri/src/*.rs→ restart dev server - Config changes: Edit
tauri.conf.jsonorCargo.toml→ rebuild
# Watch for changes
npm run tauri:dev
# In another terminal for Rust changes
cd src-tauri && cargo watch -x build- ✅ Install MSVC Build Tools (see Step 1 above)
- ✅ Run
npm run tauri:devto start development - ✅ Test biometric login with your fingerprint/face
- ✅ Copy a password and watch it clear after 10 seconds
- ✅ Build release version with
npm run tauri:build
- Set backend URL in
.env.production - Update app version in
src-tauri/tauri.conf.json - Create
.env.productionwith production backend URL - Run
npm run tauri:build - Sign executable with code signing certificate (optional but recommended)
- Test installer on clean Windows machine
- Collect installer
.msifromsrc-tauri/target/release/bundle/
Happy secure password managing! 🔐