Back to browse
GitHub Repository

Build WPF/SwiftUI-grade web apps in AssemblyScript running on the browser. No DOM. No CSS. No virtual DOM diffing.

4 starsTypeScript

WPF grade canvas UI framework for the web

by zionsati·Jun 17, 2026·1 point·0 comments

AI Analysis

●●SolidWizardryBold Bet

No DOM, no CSS, no virtual DOM — just WASM and Skia rendering like WPF.

Strengths
  • Skia + Yoga + Harfbuzz + ICU stack brings native-grade text and shape rendering to web
  • ARIA compliance and semantic tree built-in despite bypassing DOM entirely
  • Demo pages under 100kb with brotli, runtime and fonts cached forever
Weaknesses
  • UI framework graveyard is crowded — Flutter Web, Blazor, and others already tried this
  • AssemblyScript ecosystem is niche; TypeScript devs may resist learning another compile target
Target Audience

Frontend developers frustrated with React/Vue, builders of complex web applications

Similar To

Flutter Web · Blazor · Avalonia

Post Description

Introducing fui-as - https://github.com/zion-sati/fui-as

This is a WPF grade UI framework with SwiftUI like fluent syntax that is created specifically for the web. As you probably know, creating a native feeling canvas wasm UI framework for the web is a massive ask but the goal is to make it feel as native as possible.

I've solved ARIA compliance problem, there's semantic tree by default but customisable. With brotli, the actual page is quite small, the demo pages are all under 100kb. The other bits such as the runtime and font assets are download once, cached forever.

It uses yoga, harfbuzz, ICU, skia for responsive UI, proper text formatting, shapes and shapes of modern UI, and comes with ICU data for all languages including Chinese Japanese and Korean. It also supports font tofu swapping, which is when you haven't loaded a font for a language but your user pasted some text in that language in text input/area.

Plenty more problems I've already solved which typically is canvas apps' biggest setbacks.

There are a few I have yet to implement, such as rendering a shadow DOM for pure Dev tool debugging purposes. Most likely it'll be opt in under Dev mode.

Other things like long press gesture and pinch to zoom are not done either.

I'm working on immediate more custom drawing as well as drawing text onto both immediate mode and memory bitmap canvases (yes canvas inside HTML canvas).

Maybe there's no point for such a thing any more these days when everyone can simply hackle AI to do things adhoc. But maybe someone out there still appreciates some good old engineering.

Similar Projects