# EveryUI

**One lean interface, on every screen.** — In development

![An EveryUI screen running on a TV](https://matthicks.com/uploads/projects/everyui-logo.png?v=tleren)

It gets the reach Flutter promised without drawing every pixel itself or shipping a runtime the platform never asked for. The targets include the web, desktop, iOS and tvOS, Android and Android TV, Roku, Samsung's Tizen and LG's webOS TVs, and low-power devices.

Native on each platform

You describe the interface once. Each platform then renders it with its own native building blocks instead of a canvas that imitates them.

On the web, EveryUI renders real DOM. Password managers, autofill, input methods, text selection, find-in-page, and screen readers keep working, because the browser sees the page it expects.

On Android phones and Android TV, it renders platform views.

On Roku, it renders SceneGraph. Roku has no Scala runtime, so EveryUI compiles the same Scala code into the platform's own language.

On the desktop, apps ship as native binaries rather than a bundled virtual machine.

Small by default

Because it doesn't bring its own rendering engine, an EveryUI app starts small. On the web the framework's floor is about 7 KB compressed, where canvas-drawn toolkits start at megabytes of WebAssembly. That matters most on the devices people forget about: budget TVs, streaming sticks, and older hardware. Animations hold 60 frames per second even on a Roku.

Built for the ten-foot screen

Because it targets TVs and set-top boxes from the start, remote-control focus, arrow-key navigation, and ten-foot layouts are part of the foundation rather than an afterthought.
