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 gtk3build path, also installlibgtk-3-devandlibwebkit2gtk-4.1-dev
Contribution Process Overview
The typical contribution workflow follows these steps:
- Fork & Clone - Create your own copy of the Wails repository
- Setup - Build the Wails CLI and verify your environment
- Branch - Create a feature branch for your changes
- Develop - Make your changes following our coding standards
- Test - Run tests to ensure everything works
- Commit - Commit with clear, conventional commit messages
- Submit - Open a pull request for review
- Iterate - Respond to feedback and make adjustments
- Merge - Once approved, your changes become part of Wails!
Step-by-Step Guide
Choose your contribution type:
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
Fork and Clone
Fork the repository at github.com/wailsapp/wails/fork
Clone your fork:
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
Build and Verify
Build Wails and verify you can reproduce the bug:
cd v3
go build -o ../wails3 ./cmd/wails3
# Reproduce the bug to understand it
Create a Bug Fix Branch
Create a branch for your fix:
git checkout -b fix/issue-123-window-crash
Fix the Bug
- Make the minimal changes needed to fix the bug
- Don’t refactor unrelated code
- Add or update tests to prevent regression
# Make your changes
# Add tests in *_test.go files
Test Your Fix
Run tests to ensure the fix works:
go test ./...
# Test the specific package
go test ./pkg/application -v
# Run with race detector
go test ./... -race
Commit Your Fix
Commit with a clear message:
git commit -m "fix: prevent window crash when closing during initialization
Fixes #123"
Submit Pull Request
Push and create PR:
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
Respond to Feedback
Address review comments and update your PR as needed.
Write a WEP
- Read the WEP (Wails Enhancement Proposal) process
- Copy the WEP template into
v3/wep/proposals/<name>/proposal.md - Open a draft PR titled
[WEP] <title>containing the WEP only - Wait for a maintainer decision before implementing
Fork and Clone
Fork the repository at github.com/wailsapp/wails/fork
Clone your fork:
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
Setup Development Environment
Build Wails and verify your environment:
cd v3
go build -o ../wails3 ./cmd/wails3
# Run tests to ensure everything works
go test ./...
Create a Feature Branch
Create a descriptive branch:
git checkout -b feat/window-transparency-support
Implement the Feature
- Follow our Coding Standards
- Keep changes focused on the feature
- Write clean, documented code
- Add comprehensive tests
# Example: Adding a new window method
# 1. Add to window.go interface
# 2. Implement in platform files (darwin, windows, linux)
# 3. Add tests
# 4. Update documentation
Test Thoroughly
Test your feature:
# Unit tests
go test ./pkg/application -v
# Integration test - create a test app
cd ..
./wails3 init -n feature-test
cd feature-test
# Add code using your new feature
../wails3 dev
Document Your Feature
- Add docstrings to all public APIs
- Update relevant documentation in
/docs/src/content/docs/ - Add examples if applicable
Commit with Convention
Use conventional commits:
git commit -m "feat: add window transparency support
- Add SetTransparent() method to Window API
- Implement for macOS, Windows, and Linux
- Add tests and documentation
Closes #456"
Submit Pull Request
Push and create PR:
git push origin feat/window-transparency-support
In your PR:
- Describe the feature and use cases
- Show examples or screenshots
- List any breaking changes
- Reference the accepted WEP PR
Iterate Based on Review
Maintainers may request changes. Be patient and collaborative.
Identify Documentation Needs
- Found outdated docs while using Wails?
- Notice missing examples or explanations?
- Want to fix typos or improve clarity?
- Check documentation issues
Fork and Clone
Fork the repository at github.com/wailsapp/wails/fork
Clone your fork:
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
Setup Documentation Environment
The docs are in /docs/src/content/docs/ and built with Astro:
cd docs
npm install
npm run dev
Open http://localhost:4321/ to preview changes live.
Create a Documentation Branch
Create a branch for your changes:
git checkout -b docs/improve-window-api-examples
Make Your Changes
Documentation files are in /docs/src/content/docs/:
# Edit MDX files
# Check the preview in your browser
# Ensure formatting is correct
Best Practices:
- Use clear, concise language
- Include practical code examples
- Add links to related sections
- Check spelling and grammar
- Test all code examples
Verify Your Changes
Check the live preview and ensure:
- Links work correctly
- Code examples are accurate
- Formatting renders properly
- No broken images or references
Commit Documentation Changes
Commit with clear message:
git commit -m "docs: add practical examples to Window API guide
- Add window positioning examples
- Include common patterns section
- Fix broken links to Event API"
Submit Pull Request
Push and create PR:
git push origin docs/improve-window-api-examples
In your PR:
- Describe what docs you improved
- Explain why the change helps users
- Include screenshots if visual changes
Address Review Feedback
Documentation PRs are usually quick to review and merge!
Finding Issues to Work On
- Look for
good first issuelabels - Check
help wantedissues - Browse open issues and ask to be assigned
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
- Set up your Development Environment
- Review our Coding Standards
- Explore the Technical Documentation