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.
1.0.0-preview.1
This is a preview release. APIs may change before the stable 1.0 release. See Known Limitations for the current feature boundaries.
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 MikoEngineBuilder().Build();
engine.Initialize(root, new List<StyleSheet> { styleSheet }, canvas, 800, 600);
engine.Render(canvas);Head to the Getting Started guide to scaffold your first app.