--- title: Frequently Asked Questions description: Common questions about Wails sidebar: order: 99 --- ## General ### What is Wails? Wails is a framework for building desktop applications using Go and web technologies. It provides native OS integration whilst allowing you to build your UI with HTML, CSS, and JavaScript. ### How does Wails compare to Electron? **Wails:** - ~10MB memory usage - ~15MB binary size - Native performance - Go backend **Electron:** - ~100MB+ memory usage - ~150MB+ binary size - Chromium overhead - Node.js backend ### Is Wails production-ready? Yes! Wails v3 is suitable for production applications. Many companies use Wails for their desktop applications. ### What platforms does Wails support? - Windows (7+) - macOS (10.13+) - Linux (GTK3) ## Development ### Do I need to know Go? Basic Go knowledge is helpful but not required. You can start with simple services and learn as you go. ### Can I use my favourite frontend framework? Yes! Wails works with: - Vanilla JavaScript - React - Vue - Svelte - Any framework that builds to HTML/CSS/JS ### How do I call Go functions from JavaScript? Use bindings: ```go // Go func (s *Service) Greet(name string) string { return "Hello " + name } ``` ```javascript // JavaScript import { Greet } from './bindings/myapp/service' const message = await Greet("World") ``` ### Can I use TypeScript? Yes! Wails generates TypeScript definitions automatically. ### How do I debug my application? Use your browser's dev tools: - Right-click → Inspect Element - Or enable dev tools in window options ## Building & Distribution ### How do I build for production? ```bash wails3 build ``` Your application will be in `build/bin/`. ### Can I cross-compile? Yes! Build for other platforms: ```bash wails3 build -platform windows/amd64 wails3 build -platform darwin/universal wails3 build -platform linux/amd64 ``` ### How do I create an installer? Use platform-specific tools: - Windows: NSIS or WiX - macOS: Create DMG - Linux: DEB/RPM packages See the [Installers Guide](/guides/installers). ### How do I code sign my application? **macOS:** ```bash codesign --deep --force --sign "Developer ID" MyApp.app ``` **Windows:** Use SignTool with your certificate. ## Features ### Can I create multiple windows? Yes! Wails v3 has native multi-window support: ```go window1 := app.Window.New() window2 := app.Window.New() ``` ### Does Wails support system tray? Yes! Create system tray applications: ```go tray := app.SystemTray.New() tray.SetIcon(iconBytes) tray.SetMenu(menu) ``` ### Can I use native dialogs? Yes! Wails provides native dialogs: ```go path, _ := app.Dialog.OpenFile(). SetTitle("Select File"). PromptForSingleSelection() ``` ### Does Wails support auto-updates? Wails doesn't include auto-update functionality, but you can implement it yourself or use third-party libraries. ## Performance ### Why is my binary large? Go binaries include the runtime. Reduce size: ```bash wails3 build -ldflags "-s -w" ``` ### How do I improve performance? - Paginate large datasets - Cache expensive operations - Use events for updates - Optimise frontend bundle - Profile your code See the [Performance Guide](/guides/performance). ### Does Wails support hot reload? Yes! Use dev mode: ```bash wails3 dev ``` ## Troubleshooting ### My bindings aren't working Regenerate bindings: ```bash wails3 generate bindings ``` ### Window doesn't appear Check if you called `Show()`: ```go window := app.Window.New() window.Show() // Don't forget this! ``` ### Events not firing Ensure event names match exactly: ```go // Go app.Event.Emit("my-event", data) // JavaScript OnEvent("my-event", handler) // Must match ``` ### Build fails Common fixes: - Run `go mod tidy` - Check `wails.json` configuration - Verify frontend builds: `cd frontend && npm run build` - Update Wails: `go install github.com/wailsapp/wails/v3/cmd/wails3@latest` ## Migration ### Should I migrate from v2 to v3? v3 offers: - Better performance - Multi-window support - Improved API - Better developer experience See the [Migration Guide](/migration/v2-to-v3). ### Will v2 be maintained? Yes, v2 will receive critical updates. ### Can I run v2 and v3 side by side? Yes, they use different import paths. ## Community ### How do I get help? - [Discord Community](https://discord.gg/JDdSxwjhGf) - [GitHub Discussions](https://github.com/wailsapp/wails/discussions) - [GitHub Issues](https://github.com/wailsapp/wails/issues) ### How do I contribute? See the [Contributing Guide](/contributing). ### Where can I find examples? - [Official Examples](https://github.com/wailsapp/wails/tree/v3-alpha/v3/examples) - [Community Examples](https://github.com/topics/wails) ## Still Have Questions? Ask in [Discord](https://discord.gg/JDdSxwjhGf) or [open a discussion](https://github.com/wailsapp/wails/discussions).