Getting Started

How to start contributing to Wails v3

Welcome, Contributor!

Thank you for your interest in contributing to Wails! This guide will help you make your first contribution.

Prerequisites

Before you begin, ensure you have:

  • Go 1.25+ installed (download)
  • Node.js 20+ and npm (download)
  • Git configured with your GitHub account
  • Basic familiarity with Go and JavaScript/TypeScript

Platform-Specific Requirements

macOS:

  • Xcode Command Line Tools: xcode-select --install

Windows:

  • MSYS2 or similar Unix-like environment recommended
  • WebView2 runtime (usually pre-installed on Windows 11)

Linux:

  • gcc, pkg-config, libgtk-4-dev, libwebkitgtk-6.0-dev (default GTK4 stack)
  • Install via: sudo apt install build-essential pkg-config libgtk-4-dev libwebkitgtk-6.0-dev (Debian/Ubuntu)
  • For the legacy -tags gtk3 build path, also install libgtk-3-dev and libwebkit2gtk-4.1-dev

Contribution Process Overview

The typical contribution workflow follows these steps:

  1. Fork & Clone - Create your own copy of the Wails repository
  2. Setup - Build the Wails CLI and verify your environment
  3. Branch - Create a feature branch for your changes
  4. Develop - Make your changes following our coding standards
  5. Test - Run tests to ensure everything works
  6. Commit - Commit with clear, conventional commit messages
  7. Submit - Open a pull request for review
  8. Iterate - Respond to feedback and make adjustments
  9. Merge - Once approved, your changes become part of Wails!

Step-by-Step Guide

Choose your contribution type:

1

Find or Report the Bug

  • Check if the bug is already reported in GitHub Issues
  • If not, create a new issue with steps to reproduce
  • Wait for confirmation before starting work
2

Fork and Clone

Fork the repository at github.com/wailsapp/wails/fork

Clone your fork:

bash
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
3

Build and Verify

Build Wails and verify you can reproduce the bug:

bash
cd v3
go build -o ../wails3 ./cmd/wails3

# Reproduce the bug to understand it
4

Create a Bug Fix Branch

Create a branch for your fix:

bash
git checkout -b fix/issue-123-window-crash
5

Fix the Bug

  • Make the minimal changes needed to fix the bug
  • Don’t refactor unrelated code
  • Add or update tests to prevent regression
bash
# Make your changes
# Add tests in *_test.go files
6

Test Your Fix

Run tests to ensure the fix works:

bash
go test ./...

# Test the specific package
go test ./pkg/application -v

# Run with race detector
go test ./... -race
7

Commit Your Fix

Commit with a clear message:

bash
git commit -m "fix: prevent window crash when closing during initialization

Fixes #123"
8

Submit Pull Request

Push and create PR:

bash
git push origin fix/issue-123-window-crash

In your PR description:

  • Explain the bug and root cause
  • Describe your fix
  • Reference the issue: “Fixes #123”
  • Include before/after behavior
9

Respond to Feedback

Address review comments and update your PR as needed.

Finding Issues to Work On

Getting Help

  • Discord: Join Wails Discord
  • Discussions: Post in GitHub Discussions
  • Issues: Open an issue for a reproducible bug; use Discussions for questions and a WEP PR for enhancements

Code of Conduct

Be respectful, constructive, and welcoming. We’re building a friendly community focused on creating great software together.

Next Steps

Edit page

Last updated: