Skip to content

Why Wails?

Wails combines Go’s performance and simplicity with modern web UI flexibility, enabling you to build beautiful, native desktop applications with the tools you already know.

Wails Applications:

  • ~15MB binaries (vs Electron’s 150MB)
  • ~10MB baseline memory (vs Electron’s 100MB+)
  • <0.5s startup time (vs Electron’s 2-3s)
  • Native rendering using the OS-provided WebView

Users perceive your application as fast, lightweight, and professional.

Write Once, Run Everywhere:

  • One Go codebase for Windows, macOS, and Linux
  • Use any web framework (React, Vue, Svelte, vanilla JS)
  • Hot reload during development
  • TypeScript bindings auto-generated from Go code

Ship faster with less code to maintain.

Everything you need:

  • Multiple windows with independent lifecycles
  • Native menus (application, context, system tray)
  • File dialogs with platform-native UI
  • System integration (notifications, clipboard, keyboard shortcuts)
  • Code signing and packaging for all platforms

Build professional applications, not prototypes.

  • One codebase, three platforms - Write once, build for Windows, macOS, and Linux
  • Use existing skills - Go for backend, HTML/CSS/JS for UI
  • Instant feedback - Hot reload during development, compile times measured in seconds
  • Small binaries - 15MB apps mean faster builds, faster downloads, faster iteration

Wails is Perfect For:

  • Business applications (CRM, inventory, dashboards, admin tools)
  • Developer tools (database clients, API testers, deployment tools)
  • Productivity apps (note-taking, task managers, time trackers)
  • Creative tools (image editors, video processors, design utilities)
  • Internal tools (company-specific applications, automation tools)

Unlike Electron which bundles an entire browser and Node.js runtime, Wails takes a fundamentally different approach: your Go code compiles to a native binary, and your UI runs in the operating system’s built-in WebView. This architecture delivers the small binaries, fast startup, and low memory usage that make Wails applications feel native.

Wails applications consist of two main parts that communicate seamlessly: a Go backend handling business logic and system operations, and a web-based frontend for your user interface. The OS-provided WebView renders your UI without bundling a browser, while the bindings layer provides type-safe communication between Go and JavaScript.

Diagram

This simple architecture enables JavaScript code to call Go functions directly (through auto-generated bindings), while Go can send events and data back to the frontend. Both layers communicate through an efficient in-memory bridge with sub-millisecond overhead.

How Wails achieves performance:

  1. No runtime bundled - Uses Go’s compiled binary
  2. Native WebView - OS-provided rendering engine
  3. Direct Go ↔ JS bridge - In-memory communication, no network overhead
  4. Compiled binary - Instant startup, no JIT compilation

Now that you understand what Wails provides, let’s get you set up:

  1. Install Wails - Set up your development environment in 5 minutes
    Installation Guide →

  2. Build Your First App - Create a working application and understand the basics
    First App Tutorial →

  3. Explore Features - Discover what Wails can do for your application
    Feature Overview →


Still have questions? Join our Discord community and ask the team directly.