Wails is like Tauri but with Go instead of Rust. Your web frontend (React, Vue, Svelte) + Go backend = native desktop app using OS webview.
Quick Start
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails init -n myapp -t react-ts
cd myapp && wails dev
Go Backend
// app.go
type App struct { ctx context.Context }
func (a *App) Greet(name string) string {
return fmt.Sprintf("Hello %s!", name)
}
func (a *App) GetUsers() ([]User, error) {
return db.GetAllUsers()
}
Frontend Calls Go
import { Greet, GetUsers } from '../wailsjs/go/main/App'
const greeting = await Greet('World') // "Hello World!"
const users = await GetUsers() // typed automatically
Wails vs Tauri vs Electron
| Feature | Wails | Tauri | Electron |
|---|---|---|---|
| Backend | Go | Rust | Node.js |
| Size | 5-15MB | 3-10MB | 150MB |
| RAM | 40MB | 30MB | 150MB+ |
| Learning | Easy (Go) | Medium (Rust) | Easy (Node) |
The Bottom Line
If you know Go, Wails is your desktop framework. Easier than Tauri's Rust, 10x smaller than Electron.
Need to automate data collection or build custom scrapers? Check out my Apify actors for ready-made tools, or email spinov001@gmail.com for custom solutions.
Top comments (0)