Skip to content
andre edited this page Jun 21, 2026 · 3 revisions

Building a WidBar widget

This is the developer documentation for writing widgets that run on the WidBar taskbar: the WidBar.SDK package, the project template, and the small amount of Windows packaging you can't get around. If you've shipped a WinUI 3 app before, almost none of this will surprise you. If you haven't, the template gets you to a running widget before you have to understand any of the plumbing.

Quick note on who this is for. It's for people building widgets. If you just want widgets on your taskbar, install WidBar from the Microsoft Store and you can ignore everything here.

How a widget actually works

A widget is an ordinary packaged WinUI 3 app with one twist: it never shows a window of its own. WidBar starts your process, asks it for some XAML, and paints that XAML into a free space on the taskbar. When the user clicks it, WidBar asks for more XAML and shows it in a popup. That's the whole model, more or less.

You write one class. It returns up to three pieces of UI:

  • the preview that sits on the taskbar,
  • the flyout popup shown on click, and
  • a settings page, if your widget has anything to configure.

Everything else is WidBar's job, not yours: starting the process, owning the taskbar surface, per-monitor DPI, the IPC, and restarting you when you crash.

One thing worth internalising early: a single process serves every copy of your widget. Drop it on two taskbars and CreatePlugin() runs twice in the same process. So keep per-widget state in instance fields. The moment you reach for a static, the two copies start fighting over it.

Widgets are discovered through a Windows AppExtension named com.widbar.widget. The template wires that up for you. See Packaging & publishing if you ever need to touch it.

Where to go next

A note on these pages

They live in the template repo under wiki/ and are mirrored here. Edit them in the repo via PR if you spot something wrong; the wiki copy is generated from there.

Useful links: SDK on NuGet, template repo, showcase catalog.

Clone this wiki locally