DEV Community

Alex Spinov
Alex Spinov

Posted on

Wails Has a Free API That Builds Desktop Apps With Go Backend and Web Frontend

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
Enter fullscreen mode Exit fullscreen mode

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()
}
Enter fullscreen mode Exit fullscreen mode

Frontend Calls Go

import { Greet, GetUsers } from '../wailsjs/go/main/App'

const greeting = await Greet('World')    // "Hello World!"
const users = await GetUsers()           // typed automatically
Enter fullscreen mode Exit fullscreen mode

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)