<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Wails Blog</title><description>Build beautiful desktop applications using Go and modern web technologies.</description><link>https://v3.wails.io/</link><language>en</language><item><title>Wails v3 Beta: a new foundation for Go desktop applications</title><link>https://v3.wails.io/blog/wails-v3-beta/</link><guid isPermaLink="true">https://v3.wails.io/blog/wails-v3-beta/</guid><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;starlight-image-zoom-zoomable&gt;&lt;img alt=&quot;A native Wails v3 frameless window on macOS&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2000&quot; height=&quot;1236&quot; src=&quot;https://v3.wails.io/_astro/frameless-v3-native-corners-macos.Bv_oWv7u_Zu3LiX.webp&quot;&gt;&lt;button aria-label=&quot;Zoom image: A native Wails v3 frameless window on macOS&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; fill=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;use href=&quot;#starlight-image-zoom-icon-zoom&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/starlight-image-zoom-zoomable&gt;&lt;/p&gt;
&lt;p&gt;Today we are releasing Wails v3 Beta.&lt;/p&gt;
&lt;p&gt;Wails lets Go developers build desktop applications with the web frontend tools
they already know, using the native WebView on each platform rather than an
embedded browser. v3 is a substantial step forward: it gives applications a
more direct API, a clearer build model, and a better foundation for the desktop
applications people have been asking Wails to support.&lt;/p&gt;
&lt;p&gt;This is a beta release, not the final 3.0 release. The desktop API is stable
and teams are already using v3 in production, but you should test thoroughly
before deploying. We are using the beta period to catch the final compatibility
and workflow issues with the community. Wails v2 remains the current stable
release and will continue to receive fixes.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;at-a-glance&quot;&gt;At a glance&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Explicit application and window APIs&lt;/li&gt;
&lt;li&gt;First-class multi-window applications&lt;/li&gt;
&lt;li&gt;Services with richer, statically generated TypeScript bindings&lt;/li&gt;
&lt;li&gt;Service-provided frontend assets and scripts - groundwork for richer plugins&lt;/li&gt;
&lt;li&gt;Inspectable Taskfile-based builds&lt;/li&gt;
&lt;li&gt;Guided &lt;code dir=&quot;auto&quot;&gt;wails3 setup&lt;/code&gt; and project creation&lt;/li&gt;
&lt;li&gt;Modern desktop support across macOS, Windows, and Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;why-v3&quot;&gt;Why v3&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Wails v2 made it straightforward to build a Go application with a modern web
frontend. It has served the project - and a great many applications - well. But its
single-window, context-driven runtime and tightly managed build process made
some common desktop work harder than it should have been.&lt;/p&gt;
&lt;p&gt;v3 starts from a different model. Applications, windows, services, events, and
platform capabilities are explicit objects. That makes the framework easier to
reason about as an application grows, and makes features such as multiple
windows a normal part of the application model rather than a workaround.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;what-is-new&quot;&gt;What is new&lt;/h2&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3 id=&quot;an-application-api-built-for-real-desktop-software&quot;&gt;An application API built for real desktop software&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;v3 replaces the v2 &lt;code dir=&quot;auto&quot;&gt;wails.Run(...)&lt;/code&gt; configuration style with an explicit
application lifecycle. You create an application, register services, create
windows, and interact with the objects that own the behaviour you need.&lt;/p&gt;
&lt;p&gt;That removes a great deal of implicit context passing. Window operations belong
to windows; application-wide operations belong to the application. It is a more
natural model for multi-window applications and a better fit for testing and
maintaining larger codebases.&lt;/p&gt;
&lt;p&gt;The feedback from people who used v3 during alpha has been overwhelmingly
positive. In particular, developers have responded well to the explicit model:
it makes the code easier to follow, makes ownership clearer, and gives complex
desktop applications room to grow without fighting the framework.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;first-class-multiple-windows&quot;&gt;First-class multiple windows&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Multiple windows are a core v3 capability. Windows have their own lifecycle and
can be created, managed, and closed at runtime. The result is a clearer route
to the kind of desktop software that needs editors, inspectors, preferences,
tool windows, or several independent pieces of UI.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;services-and-generated-bindings&quot;&gt;Services and generated bindings&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Go services replace the older binding model. They keep application logic as
ordinary Go code and make the boundary to the frontend explicit. Bindings are
generated into a structure that reflects the application and its services,
making it easier to find and use the API exposed to the frontend.&lt;/p&gt;
&lt;p&gt;v3 generates those bindings with static source analysis. That means the
generator can retain the information developers put into their code - including
comments and meaningful parameter names - rather than discovering an already
built program through reflection. The result is a richer, more useful frontend
API and a generation process that is easier to understand and maintain.&lt;/p&gt;
&lt;p&gt;Services can also mount frontend assets and scripts alongside their Go code.
That gives a capability one coherent home: its backend API, the JavaScript or
UI it needs, and the integration point for the host application. It opens the
door to Wails plugins that deliver rich functionality out of the box - install a
plugin, mount its service, and use the feature - rather than assembling a loose
collection of bindings and frontend dependencies yourself. A general plugin
system is not part of this beta, but v3 makes that direction practical in a way
the v2 binding model did not.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;a-build-system-you-can-inspect-and-adapt&quot;&gt;A build system you can inspect and adapt&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;v3 makes the project build structure visible. Rather than hiding every build
decision inside a single command, projects have a conventional layout and
Taskfile-based build configuration that can be understood, extended, and
debugged alongside the application.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;a-stronger-cross-platform-desktop-baseline&quot;&gt;A stronger cross-platform desktop baseline&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The beta supports Windows on amd64 and arm64, macOS on Intel and Apple Silicon,
and Linux on amd64 and arm64. GTK4 with WebKitGTK 6.0 is the default Linux
stack; GTK3 remains available as a legacy option throughout the v3.0 series.
Mobile support is exciting but remains experimental and is not part of the
desktop beta compatibility promise.&lt;/p&gt;
&lt;p&gt;This release also includes the work needed to make the day-to-day experience
more dependable: improved platform behaviour, a more capable window model,
clearer diagnostics, and release artefacts with checksums and provenance.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;moving-from-v2&quot;&gt;Moving from v2&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;v3 is a new major version, and migration is a real port rather than a version
number change. The main conceptual shifts are the application and window
lifecycle, services instead of context-bound bindings, direct application and
window APIs instead of the v2 runtime package, and regenerated frontend
bindings.&lt;/p&gt;
&lt;p&gt;We have published a &lt;a href=&quot;https://v3.wails.io/migration/v2-to-v3/&quot;&gt;v2-to-v3 migration guide&lt;/a&gt; that walks
through those changes and includes a feature mapping and testing checklist.
That manual guide is the supported migration path for this beta. Please do not
expect every v2 project to convert without review: test the result, port your
runtime calls deliberately, and keep v2 in place until the new application is
ready.&lt;/p&gt;
&lt;p&gt;We are also evaluating an experimental migration assistant. It is not part of
this beta release, and we will only recommend it once it has been validated
against representative real-world v2 projects.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;a-candid-note-on-the-journey&quot;&gt;A candid note on the journey&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The first v3 alpha tag was published on 18 January 2023. That is a long time
to be in alpha, and it deserves more than a vague acknowledgement.&lt;/p&gt;
&lt;p&gt;The project has changed enormously during that time. When the first Wails v2
beta shipped for Windows in September 2021, the repository had roughly 4,000
stars. By the v2 release in September 2022, it had roughly 10,300. Today it has
more than 35,000. That growth is a privilege, but it also changes what good
stewardship looks like: more users depend on release decisions, more
contributors need clear routes to participate, and more of the work is about
making the project predictable rather than simply adding the next feature.&lt;/p&gt;
&lt;p&gt;I have not always adapted our processes as quickly or as clearly as that growth
required. I own that. The answer is not to make grand promises or to turn every
decision into ceremony; it is to be clearer about what is supported, what is
experimental, how decisions are made, and what we are doing next.&lt;/p&gt;
&lt;p&gt;That work begins with this beta. We now have explicit beta, release-candidate,
and GA milestones; clearer compatibility commitments; an updated security
policy; and a WEP (Wails Enhancement Proposal) process for changes to public
behaviour and new capabilities. We will continue to improve the roadmap and
review the project’s governance as Wails grows. The aim is a project that feels
easier to rely on and easier to contribute to - not one that is harder to move.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;install-and-try-the-beta&quot;&gt;Install and try the beta&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Once the release is published, install the latest v3 CLI with:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;go&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;github.com/wailsapp/wails/v3/cmd/wails3@latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Before creating a project, run the guided setup wizard. It checks your local
development environment and helps configure the dependencies Wails needs:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;wails3&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;setup&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;starlight-image-zoom-zoomable&gt;&lt;img alt=&quot;The Wails v3 setup wizard in dark mode&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1600&quot; height=&quot;1000&quot; src=&quot;https://v3.wails.io/_astro/wails3-setup-wizard-dark.B6_JfvjI_104vSB.webp&quot;&gt;&lt;button aria-label=&quot;Zoom image: The Wails v3 setup wizard in dark mode&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; fill=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;use href=&quot;#starlight-image-zoom-icon-zoom&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/starlight-image-zoom-zoomable&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;create-a-project&quot;&gt;Create a project&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Once you are all set, create a project with:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;wails3&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Documentation: &lt;a href=&quot;https://v3.wails.io/&quot;&gt;https://v3.wails.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Migration guide: &lt;a href=&quot;https://v3.wails.io/migration/v2-to-v3/&quot;&gt;https://v3.wails.io/migration/v2-to-v3/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Release notes: &lt;a href=&quot;https://github.com/wailsapp/wails/releases&quot;&gt;VERSION PLACEHOLDER&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you find a reproducible bug, please report it with the output of &lt;code dir=&quot;auto&quot;&gt;wails3 doctor&lt;/code&gt; and a minimal example where possible. If you want to propose a new
capability or a change to public behaviour, start a draft WEP PR instead of a
feature-request issue. Both routes help us respond clearly and keep the beta
moving.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;thank-you&quot;&gt;Thank you&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Wails v3 exists because of the people who tested incomplete builds, reported
hard bugs, translated documentation, answered questions, contributed code, and
kept asking the project to become better. Thank you.&lt;/p&gt;
&lt;p&gt;And a very special, heartfelt thank you to the sponsors who have carried Wails
through this long transition. Your support did more than keep the lights on: it
gave us the opportunity to spend sustained time on the architecture, tooling,
testing, and documentation that let the project accelerate toward v3. Every
tester and contributor has helped shape this release, but the sponsors made it
possible to give that work the attention it deserved.&lt;/p&gt;
&lt;p&gt;The beta is an invitation to help us finish v3 properly. Try it, build with it,
tell us where it breaks, and help us make the road to 3.0 a short and careful
one.&lt;/p&gt;</content:encoded><category>wails</category><category>v3</category><category>beta</category></item><item><title>Alpha 10 Released - A New Chapter for Wails</title><link>https://v3.wails.io/blog/2024-12-03-alpha10-and-new-release-strategy/</link><guid isPermaLink="true">https://v3.wails.io/blog/2024-12-03-alpha10-and-new-release-strategy/</guid><pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h1 id=&quot;alpha-10-released---a-new-chapter-for-wails&quot;&gt;Alpha 10 Released - A New Chapter for Wails&lt;/h1&gt;&lt;/div&gt;
&lt;p&gt;We’re thrilled to announce the release of &lt;strong&gt;Wails v3 Alpha 10&lt;/strong&gt; - and it’s big! While our release cadence may have seemed slow recently, there’s been an incredible amount of work happening behind the scenes. Today marks not just another release, but a shift in how we approach the development of Wails.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;why-the-wait&quot;&gt;Why the Wait?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Like many development teams, we fell into the trap of trying to achieve perfection before each release. We wanted to squash every bug, polish every feature, and ensure everything was just right. But here’s the thing - software is never truly bug-free, and waiting for that mythical state only delays getting improvements into your hands.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;our-new-release-strategy&quot;&gt;Our New Release Strategy&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Starting today, we’re adopting a &lt;strong&gt;daily release strategy&lt;/strong&gt;. Any new changes merged during the day will be released at the end of that day. This approach will:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get bug fixes and features to you faster&lt;/li&gt;
&lt;li&gt;Provide more frequent feedback loops&lt;/li&gt;
&lt;li&gt;Speed up our journey to Beta&lt;/li&gt;
&lt;li&gt;Make the development process more transparent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means you might see more frequent, smaller releases rather than occasional large ones. We believe this will benefit everyone in the Wails community.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;how-you-can-help&quot;&gt;How You Can Help&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;We’ve been overwhelmed by the number of people wanting to contribute to Wails! To make it easier for contributors to get involved, we’re implementing a new system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Firstly, we are opening up bug reporting for alpha releases. The frequent releases allow us to do this.&lt;/li&gt;
&lt;li&gt;Issues marked with &lt;strong&gt;“Ready for Work”&lt;/strong&gt; are open for community contributions&lt;/li&gt;
&lt;li&gt;These issues have clear requirements and are ready to be tackled&lt;/li&gt;
&lt;li&gt;Most importantly, &lt;strong&gt;we need people testing PRs&lt;/strong&gt; - this is one of the most valuable contributions you can make&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Testing doesn’t require deep knowledge of the codebase, but it provides immense value by ensuring changes work across different environments and use cases.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;With our new daily release strategy, expect to see rapid progress toward Beta. We’re committed to maintaining momentum and getting Wails v3 to a stable release as quickly as possible without sacrificing quality.&lt;/p&gt;
&lt;p&gt;And who knows? There might be a few surprises along the way… 😉&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;thank-you&quot;&gt;Thank You&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;To everyone who has contributed code, tested releases, reported bugs, or simply used Wails - thank you. Your support and feedback drive this project forward.&lt;/p&gt;
&lt;p&gt;Here’s to more frequent releases, faster iteration, and an exciting journey ahead!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Want to get involved? Check out our &lt;a href=&quot;https://github.com/wailsapp/wails&quot;&gt;GitHub repository&lt;/a&gt; for issues marked “ready for work”, or join our community to help test the latest changes.&lt;/em&gt;&lt;/p&gt;</content:encoded></item></channel></rss>