Getting Started
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