Native UIs at the density of Tailwind, the quality of Flutter.
Vel is a declarative UI language with a reactive core, a from-scratch GPU renderer, and first-class C/C++ interop. Write 2.33× fewer tokens than React — ship a real native binary.
curl -fsSL https://vel.kadarla.com/install.sh | bash use "backend/users.h" #UserList @users: std::vector<User> = await fetchUsers() @filter = "" V g=md p=lg In placeholder="Search…" value=$filter if $users.size() > 0 List of=$users as=u Card -> click => open(u.id) H g=sm Avatar src=$u.avatar V T $u.name font=bold T $u.email fg=fgMuted else Spinner
#include "vel/App.h" #include "users.vel.h" int main() { vel::App app(900, 640, "Demo"); app.setRoot(std::make_unique<UserList>()); return app.run(); }
vel bench token vel bench layout VEL_PERF=60 glfwWaitEvents Three strictly-layered tiers
Registry → Framework → Engine
One-way dependencies, never the reverse. Each tier is independently useful — and the engine, Lume, stands on its own.
Registry
Opinionated, beautiful-by-default components — Btn, Card, Table, Tabs, Dialog, Chart. shadcn-grade UI in one-token names.
Framework
The reactive substrate. Signals, Computed, AsyncSignal, layout, router, net, storage — ~0 CPU when idle via damage tracking.
Lume Engine
A from-scratch GPU 2D renderer on Dawn/WebGPU. Analytic SDF shapes, FreeType glyph atlas, one source → Metal, D3D12, Vulkan, browser.
Why teams pick Vel
Compiles to native
velc emits idiomatic C++ that links into libvel. No VM, no JS bridge, no Electron. Just a native binary.
Beautiful by default
Every primitive renders well with zero config. Theme tokens (bg2, accent, md) are the language of styling.
Reactive substrate
Signals, Computed and AsyncSignal drive rebuilds. State, scroll, focus and drag survive hot reload.
First-class C/C++ interop
use "header.h" and call your backend directly. The framework knows nothing about your data layer.
One source, everywhere
macOS, Windows and the browser render identically — native WebGPU via WebAssembly.
Accessible on the web
A live DOM mirror gives screen readers, keyboard nav, IME and focus rings. Honors reduced-motion.
Build a real app today.
Install, scaffold, and see a native window in under 15 minutes — or edit Vel live in your browser right now.
curl -fsSL https://vel.kadarla.com/install.sh | bash