New · Slint MCP server + llms.txt — build native UIs with Cursor, Claude Code & Copilot
Platforms

Recompiled,
never rewritten.

The same .slint files compile natively for every target.
No web wrapper, no per-platform rewrite, no second team.

One source · native renderers · ~300 KB on bare metal · WASM in the browser

Microcontroller
RTOS · bare metal
Software Rendering
MPU / SoC
Linux · Android · QNX
OpenGL Rendering
Desktop
Windows · macOS · Linux
native build
Mobile
iOS · Android
store ready
Web
WASM · any browser
zero install

Proven across the spectrum

Shipping on real hardware

#MadeWithSlint products are running
in vehicles, on chargers, in studios, and on bare-metal microcontrollers.

A Slint in-car infotainment UI
Automotive HMI
A Slint solar-energy dashboard
Energy dashboard
A Slint pro-audio plugin UI
Pro-audio plugin
Slint running on an ESP32-S3 microcontroller
On a microcontroller
Nexter RoboticsSK SignetWesAudioArcEmbexEndres MachiningJasic Technology Europe
Runs on silicon from
STEspressifRaspberry PiToradex

How it works

One source, native everywhere

Write your UI once in the .slint language. The compiler emits a native renderer for each target: GPU-accelerated where there's a GPU, software-rendered where there isn't. It's the same UI, not a lowest-common-denominator port.

  • Native bindings for Rust, C++, JavaScript/TypeScript & Python.
  • One design system and one set of components across all targets.
  • Live preview while you build; no browser engine shipped anywhere.
build targetsone source
app.slintyour single UI codebase
compiles natively to ↓  pick a target

When memory is the BOM

Fits your RAM budget

DRAM and on-chip SRAM are some of the priciest lines on a bill of materials — and prices keep climbing. A UI that needs less of it lets you spec a smaller, cheaper part: no hardware redesign, no features cut.

Microcontroller · bare metal

No framebuffer tax

On an MCU the full-screen framebuffer is usually the single biggest RAM consumer. Slint renders line-by-line in software, so you keep a small line buffer instead of the whole frame.

~750 KBfull 800×480 framebuffer
vs
a few KBSlint line buffer
  • Runtime under 300 KiBno_std, no allocator required
  • Proven on an RP2040: 264 KB RAM, 2 MB flash

→ ship on a smaller, cheaper MCU

MPU · Linux · Android-class

Skip the heavyweight stack

A native Slint HMI carries no browser engine, no scripting VM and no window manager — a fraction of the DRAM an AOSP + Flutter/Qt/Electron UI needs. You replace the stack, not just tune it.

  • Renders straight to DRM/KMS or Wayland — no X11
  • Compiled to native code — no interpreter resident in RAM
  • The same .slint as the MCU tier — one UI, any memory budget

→ spec a lower-cost DRAM configuration

Tell us your target part and memory ceiling — we'll tell you honestly what fits. Talk to us

The same UI compiles native to each — from a $2 microcontroller to the browser. Pick a target to see how it runs there.

  • Microcontroller
  • Microprocessor
  • Desktop
  • Mobile
  • Web

Built to run where there's nothing to spare

Most UI toolkits assume an OS, a GPU and megabytes of RAM. Slint assumes none of it — so the part you ship can be smaller and cheaper. When a GPU or OS is there, it uses them.

~300 KB
flash footprint
60 fps
smooth, animated
No OS
runs on bare metal
No GPU
renders in software

Software renderer

Renders in software, line-by-line when RAM is tight — so a full framebuffer is optional and a GPU isn't required. When there is a GPU, Slint uses it.

Compiled, not interpreted

Your .slint compiles to native code ahead of time. No scripting engine, no web view to ship — that's how the footprint lands around 300 KB.

no_std Rust & bare-metal C++

Drops into your firmware with no allocator required. Sit on an RTOS, or run on bare metal with your own event loop and drivers.

One UI, MCU to cloud

The same source you flash to the microcontroller runs on desktop and in the browser. Prototype fast on your laptop, deploy unchanged.

Browse boards & silicon →

Embedded Linux, minus the desktop

MPUs come with an OS and usually a GPU. Slint uses both — and skips the window manager and the browser engine they'd otherwise drag in.

OpenGL ES
GPU-accelerated, software fallback
No X11
renders on DRM/KMS & Wayland
Yocto
meta-slint layer & Buildroot
One UI
shared with MCU & desktop

Straight to the display

On embedded Linux, Slint renders through DRM/KMS or Wayland — no X11, no window manager. The device boots into your UI like an appliance.

Uses the GPU, degrades gracefully

Hardware-accelerated through OpenGL ES; on SoCs without a usable GPU it renders in software instead.

Built into your image

Cross-compiles for ARM, AArch64 and RISC-V, and ships as a Yocto layer (meta-slint) or via Buildroot.

Same .slint as bare metal

Step up from the microcontroller, or down from a workstation, without touching the UI.

Browse boards & silicon →

Desktop apps that don't ship a browser

Electron-class toolkits bundle a whole browser engine. Slint compiles to a small native binary that draws real windows and uses the GPU.

No Chromium
native, not a web view
One binary
no runtime to install
GPU
Skia, with software fallback
3 platforms
Windows · macOS · Linux

A binary, not a browser

No Chromium, no Node, no JavaScript runtime. Slint compiles to a small native executable you ship as one file.

Looks right on each OS

Fluent on Windows, Cupertino on macOS, Material elsewhere — or your own design system.

Hardware-accelerated

Renders through Skia on the GPU, and falls back to software on machines without one.

Your language, not ours

Drive the same UI from Rust, C++, JavaScript or Python.

A real native app, not a web view

Slint builds a genuine iOS and Android app — compiled, GPU-accelerated and touch-native — not a website in a shell.

Native
iOS & Android, one codebase
No web view
a real native app
60 fps
GPU-accelerated, touch
Store-ready
App Store & Play

Native, not wrapped

An actual iOS and Android app — no embedded browser, no JavaScript bridge in the hot path.

Touch-first

Gestures, momentum scrolling and the on-screen keyboard are handled natively.

Smooth on the GPU

Hardware-accelerated through Metal and OpenGL ES for animated 60 fps UIs.

The same .slint everywhere

One UI codebase from the microcontroller to the phone to the desktop.

The same UI, recompiled for the browser

No second front-end team. The same .slint compiles to WebAssembly and runs in any modern browser, GPU-accelerated, with nothing to install.

WASM
compiled, not transpiled
WebGL
GPU-accelerated canvas
Zero install
runs in any browser
No rewrite
the same .slint

Compiles to WebAssembly

The same .slint becomes a WASM module. No React, no Vue, no second codebase to keep in sync.

Drawn on the GPU

Renders to a WebGL canvas, so animations stay smooth in the browser.

Nothing to install

Embed it in a page or share a URL; it runs anywhere a modern browser does.

You're looking at it

The live playground on this site is Slint compiled to WASM, running in your tab.

Common questions

Platform questions, answered

Which platforms does Slint support from a single codebase?

Slint compiles the same .slint UI natively to desktop (Windows, macOS, Linux), mobile (Android and iOS), embedded devices and microcontrollers, and the web via WebAssembly.

What are the minimum requirements to run Slint on embedded?

Slint's runtime fits in under 300 KiB of RAM and runs on microcontrollers and embedded Linux, on bare metal or an RTOS, with or without a GPU.

Does Slint need a GPU?

No. Slint chooses the optimal rendering method for the device — GPU-accelerated where there is a GPU, and a software renderer (full framebuffer or line-by-line) where there isn't.

How does Slint run in the browser?

Slint compiles to WebAssembly and renders to a canvas, so the same .slint UI used on desktop and embedded runs in any modern browser with zero install.

Is a Slint desktop app lighter than an Electron app?

Yes. Slint compiles to native code and does not bundle a browser engine, so applications start faster and use far less memory and disk than a typical Electron app.

Which languages can I use to build a Slint app?

Rust, C++, JavaScript/TypeScript, and Python — pick the language that fits each platform, from the same UI codebase.

How much RAM does Slint need?

Slint's runtime fits in under 300 KiB of RAM. On a microcontroller it can render line-by-line from a small line buffer instead of a full-screen framebuffer — usually the largest RAM consumer — so a smaller, cheaper part is often enough. It has run on an RP2040 with 264 KB of RAM.

Does Slint need a framebuffer?

No. Slint's software renderer can draw line-by-line into a small line buffer, so a full-screen framebuffer is optional — the single biggest RAM saving on a memory-constrained device. When a GPU or a full framebuffer is available, Slint uses it.

Does Slint run on an RTOS like FreeRTOS, Zephyr or QNX?

Yes. Slint is independent of the operating system: it runs on bare metal with your own event loop, or on an RTOS such as FreeRTOS, Zephyr, QNX or ThreadX, as well as on embedded Linux.

One UI, everywhere it needs to run

Build once. Ship to all of it.

Start on the platform in front of you — the rest are a recompile away.

Open source · royalty-free for desktop, mobile & web · commercial & support available