---
title: Why Wails?
description: Understand why Wails is the right choice for your desktop application
sidebar:
  order: 1
---


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.

## Performance That Users Notice

**Wails Applications:**
- **~15MB binaries** (vs Electron's 150MB)
- **~10MB baseline memory** (vs Electron's 100MB+)
- **&lt;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.

## Developer Experience

**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.

## Production-Ready Features

**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.

## Faster Development

- **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

## When to Choose Wails

**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)

## Real-World Success Stories

:::tip[Production Applications]
Wails powers real applications used by thousands of users:
- **Database management tools** with complex UIs
- **Financial dashboards** processing real-time data
- **Video editing tools** with native performance
- **Development utilities** used by engineering teams

[See the showcase →](/community/showcase)
:::

## How Wails Works

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.

### Architecture

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.

<div style="display: flex; justify-content: center; align-items: center; margin: 2rem 0;">
<div style="max-width: 600px;">

```d2
direction: down

Application: {
Go: "Go Backend" {
  shape: rectangle
  style.fill: "#00ADD8"
}
WebView: "Native WebView" {
  shape: rectangle
  style.fill: "#3B82F6"

    Frontend: "Your UI\n(React/Vue/etc)" {
      shape: rectangle
      style.fill: "#8B5CF6"
    }

}
Go <-> WebView: "Bindings & Events"
}



```

</div>
</div>

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

## Next Steps

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 →](/quick-start/installation)

2. **Build Your First App** - Create a working application and understand the basics  
   [First App Tutorial →](/quick-start/first-app)

3. **Explore Features** - Discover what Wails can do for your application  
   [Feature Overview →](/quick-start/next-steps)

---

**Still have questions?** Join our [Discord community](https://discord.gg/JDdSxwjhGf) and ask the team directly.
