Razor as the UI DSL
Author your UI as .razor components — the same syntax you know from Blazor. A source generator compiles them ahead of time into native draw calls. No XAML to learn.
A cross-platform rendering engine that draws every pixel with SkiaSharp — no browser, no WebView, no HTML/CSS runtime.
vs. Electron / WebView UIs — no embedded browser to ship, update, or sandbox; dramatically smaller binaries and lower memory; everything runs in one managed .NET process with optional Native AOT.
vs. .NET MAUI — Razor instead of XAML, one Skia renderer on every platform (the UI looks identical across targets), and you can bring much of an existing Blazor component codebase.
Experimental
Miko is an experimental project under active development. APIs may change between versions.
Author a page in Razor:
@page "/about"
@namespace MyApp.Pages
<h1>About</h1>
<p>Hello from Miko!</p>…or drive the engine directly without Razor:
var root = new DivElement { Class = "container" };
root.AddChild(new H1Element { TextContent = "Hello Miko" });
var engine = new MikoEngine();
engine.Initialize(root, new List<StyleSheet> { styleSheet }, canvas, 800, 600);
engine.Render(canvas);Head to the Getting Started guide to scaffold your first app.