mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dev Toolsevaluationupdated 27 Aug 2026

Avalonia review

Avalonia is a C# and XAML framework for building desktop, mobile, embedded, and WebAssembly interfaces from a shared codebase. It gives .NET teams a WPF-like development model across Windows, macOS, Linux, iOS, Android, and the browser, while leaving a true WPF compatibility route to the separate commercial XPF product.

+30 / 4dstars / 7d
Verdict

Our sandbox did not run Avalonia at commit 38402fc because C# was outside the harness and the repository had no Dockerfile. That leaves setup ease unverified, but the documented NuGet path and active 12.1.1 release make Avalonia a serious choice for a .NET team willing to test every target OS itself. Choose it for a new shared desktop product; use WPF for Windows-only continuity or budget for commercial XPF when an existing WPF application must move with minimal changes.

We ran it

Screenshot of Avalonia (avaloniaui.net)

Answers from our run

Did you run Avalonia yourself?

No. Its code is C#, and it carries no manifest our lab installs from, and no Dockerfile, so there was nothing standard to install, build or test. This review is written from the repository's own documentation.

Who should not use Avalonia?

WPF owners expecting a drop-in open-source port: the README says Avalonia is not a 1:1 WPF copy, while XPF is a separate commercial product licensed per app and platform.

What are the alternatives to Avalonia?

.NET MAUI, Uno Platform, WPF. That leaves setup ease unverified, but the documented NuGet path and active 12.

Setup2/5Not run; full source work needs pinned SDK and platform workloads
Docs4/5Clear start, editor, package, source-build, and migration routes
Community5/531,401 stars with same-day pushes and active issue discussion
Maturity5/5Active since 2013, with release 12.1.1 published in July 2026

Discussed on

  1. hn.NET MAUI is coming to Linux and the browser322 points
  2. hnMAUI Is Coming to Linux253 points
  3. hnAvalonia – A multi-platform .NET UI framework223 points
  4. hnShow HN: Avalonia UI framework for .NET now runs everywhere using WebAssembly11 points
  5. hnAvalonia – Farewell to the .NET Foundation8 points

Who it’s for

.NET teams building one product for Windows, macOS, and Linux, with mobile or WebAssembly also in scope.
WPF developers who accept API and styling changes in exchange for broader platform support.
Product teams that want C#, XAML, NuGet packages, and editor tooling in Visual Studio, VS Code, or Rider.
Framework contributors prepared to install the pinned .NET SDK, submodules, and target-specific workloads.

Who it’s NOT for

WPF owners expecting a drop-in open-source port: the README says Avalonia is not a 1:1 WPF copy, while XPF is a separate commercial product licensed per app and platform.
Teams without C# and XAML experience that do not want .NET in their client stack: Avalonia is delivered through NuGet and the repository's primary language is C#.
Contributors who need the full source tree to build in a plain generic container: the build guide requires recursive submodules, the SDK pinned in global.json, and platform workloads; native macOS libraries also need Xcode.
GNOME teams requiring an official Adwaita look today: open issue 22051 asks for a first-party Adwaita theme because the current modern first-party option is Fluent.
Test suites that must use Avalonia.Headless with xUnit.v3 4.0.0 immediately: open issue 22072 reports a discovery failure with Avalonia 12.1.1.

Setup reality

Our sandbox did not run Avalonia at commit 38402fc on 2026-08-27. The harness had no supported C# ecosystem, and the repository supplied no Dockerfile, so we have no install, build, or test result to report from the 3-CPU, 8 GB container.

App developers consume Avalonia through NuGet and do not need hosted credentials for the framework itself. Source contributors must clone submodules and install the .NET SDK version pinned by global.json; full-platform work also needs the documented .NET workloads.

The desktop solution filter avoids those extra workloads. Building native macOS libraries needs Xcode, while Android, iOS, tvOS, Mac Catalyst, and WebAssembly work uses separate workloads. Editor support also varies: Rider's XAML preview requires a community-maintained plugin.

Avalonia 12.1.1 targets six platform families with C# and XAML

Avalonia 12.1.1 is a UI framework for Windows, macOS, Linux, iOS, Android, and WebAssembly. A .NET team can keep C# view models and XAML interface work in one project family instead of choosing a separate toolkit for each operating system. The framework includes its own styling model and is distributed through NuGet. This is a better fit for installed product software than for a website whose interface already belongs in HTML and CSS.

The development path will feel familiar to a Microsoft-stack team. The README points to project and control templates, XAML previewing, completion, diagnostics, and navigation in the Visual Studio extension. VS Code has an Avalonia extension with similar goals. Rider handles code work directly, though XAML previewing depends on a community-maintained plugin. The official samples repository and starter tutorial give a new application a clearer entry point than the framework source tree itself.

The WPF resemblance stops short of 1:1 compatibility

The Avalonia 12.1.1 README calls the framework a spiritual successor to WPF and immediately says it is not a 1:1 copy. That distinction should drive the buying decision. Developers can reuse C#, XAML habits, and familiar application patterns, but an existing WPF codebase still needs a migration assessment. Controls, platform behavior, styling, and dependencies deserve proof on the operating systems you plan to ship.

Avalonia XPF is the closer compatibility offer for an existing WPF application, and it sits outside this open-source framework. The README describes XPF as a commercial product licensed per app and per platform for running WPF software on macOS and Linux with few code changes. Teams comparing the free repository with a rewrite should include that license in the decision. The open-source path is strongest for new products or migrations that can accept code changes.

What happened when we ran it

Our 2026-08-27 sandbox did not run commit 38402fc. The container had 3 CPUs and 8 GB of RAM, but our harness had no supported C# ecosystem and Avalonia had no Dockerfile it could use as a project-supplied route. We therefore have no first-party install, build, or test result. There is also no failure log to diagnose because execution never began.

That outcome is a limit of our harness, not proof that Avalonia fails to build. It still matters to a reader expecting a container-ready source checkout: the repository does not provide that tested path for us. Our review can judge the instructions and current project activity, but it cannot turn the README's setup commands into measured evidence. Before adopting Avalonia, run a representative application on every target and record cold start, rendering, input, accessibility, packaging, and update behavior yourself.

The full source tree requires workloads that desktop-only work avoids

Avalonia's build guide says contributors need the .NET SDK version selected in global.json and an IDE that supports at least .NET 10. A full clone must include submodules. Building the broad solution also calls for Android, iOS, tvOS, Mac Catalyst, and WebAssembly workloads, while the desktop solution filter avoids extra workloads. That smaller solution is the sensible entry point for someone fixing a Windows, macOS, or Linux desktop problem.

Platform work adds platform tools. Native macOS libraries require Xcode and a separate native compile task. The guide also warns that SDK releases can break builds, which is why the repository pins a known compatible version. None of this is unusual for a framework spanning six platform families, but it makes a source contribution more involved than installing an Avalonia package into an application. App developers and framework contributors have very different setup burdens.

Avalonia 12.1.1 has fresh Wayland and headless-test reports

Open issue 22064 reports that DispatcherTimer runs late on GNOME Wayland with Avalonia 12.1.1 and .NET 10 when the window is idle. The report says pointer activity masks the behavior and that the same application is unaffected on X11. We did not reproduce it, so treat it as a focused compatibility check for timer-driven Linux interfaces rather than a verdict on the entire Wayland backend.

Open issue 22072 describes a separate discovery failure when Avalonia.Headless is paired with xUnit.v3 4.0.0. The posted stack ends in a missing method during discovery, before the sample tests execute. A team standardizing on that exact runner combination should confirm a fix or pin compatible packages before moving its UI suite. Headless testing is useful, but an adapter break can stop the suite before application assertions get a chance to run.

GNOME styling still has an open first-party request

Issue 22051 asks for an official Adwaita package and says Fluent is the only modern first-party theme available. That is a contributor request, not an accepted roadmap item. It gives Linux product teams a practical design question: consistent Avalonia styling may be acceptable, while an application expected to match GNOME closely may need community packages or its own control themes. Do not read the request as a promise that official Adwaita support is coming.

A separate open report, issue 21255, shows italic text clipping with Avalonia.Fonts.Inter on Windows in both the 11.x and 12.x lines. This kind of rendering defect is why a shared UI codebase still needs screenshot and accessibility checks per platform. Cross-platform source reduces duplicated application code; it does not make Windows, Wayland, macOS, mobile, and browser behavior identical.

The August 2026 activity supports a production trial

GitHub showed 31,401 stars and 1,896 combined open issues and pull requests when we fetched the repository. The last push was August 27, 2026, and several issues and pull requests had changed that day. Release 12.1.1 was published on July 29 with fixes across core behavior, controls, XAML, Windows, macOS, Linux backends, Android, iOS, and headless sessions. The large open count includes issues and pull requests, so it requires careful searching before adopting a control or backend.

Alternatives

ProjectWhat it isPick it when
.NET MAUIMicrosoft's .NET UI framework for native mobile, tablet, and desktop applications.pick this instead when mobile device apps and Microsoft's native .NET UI stack matter more than Avalonia's Linux desktop support.
Uno PlatformA C# and XAML platform targeting mobile, web, desktop, and embedded devices.pick this instead when WinUI API compatibility is the starting point for your shared interface.
WPFMicrosoft's open-source .NET framework for Windows desktop interfaces.pick this instead when the application is staying on Windows and existing WPF compatibility outweighs cross-platform reach.

What people are saying

  1. [velocity-scout] AvaloniaUI/Avalonia

Sources

  1. Avalonia repository and README
  2. Avalonia source-build instructions
  3. Avalonia 12.1.1 release
  4. Wayland DispatcherTimer report
  5. Avalonia.Headless xUnit.v3 4.0.0 report
  6. Request for an official Adwaita theme
  7. Italic text clipping report

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →