// the find
ahmadawais/terminui
Super fast double buffered toolkit for building terminal UIs.
A TypeScript TUI toolkit that re-implements ratatui's API almost 1:1 — same widget set (Block, Paragraph, Gauge, Sparkline, Table), same constraint-based layout (Length/Percentage/Ratio/Min/Max/Fill), same border types — plus a JSX layer bolted on top that maps straight to the existing render calls instead of a real vdom. Good fit for someone who likes ratatui's model and wants it in Node without touching Rust/WASM.
The layout constraint solver and double-buffered cell diffing are a legitimate, proven design lifted wholesale from ratatui, not reinvented poorly. Wide-character measurement (CJK/fullwidth) is correctly handled, which most JS terminal libs just get wrong or skip. TS config is genuinely strict (noUncheckedIndexedAccess, zero any) and there's real test coverage split across core/jsx/widgets rather than one smoke test. The JSX API is honest about what it is — no vdom reconciler, just sugar over frameRenderWidget — so there's no hidden performance cliff from a diffing layer on top of a diffing layer.
There is no real terminal backend in the repo — src/backends only has test.ts, and the README itself says 'bring your own Node.js terminal backend.' For a toolkit whose whole pitch is building terminal UIs, you still have to write the ANSI/raw-mode I/O layer yourself before anything shows up on screen. The 'pure functional, no mutation' claim in the features list is contradicted by its own quick-start example (`state.selected = 1`) for List/Table/Scrollbar state, so the API isn't as clean as advertised. No push in 7 months on a project that hasn't shipped a production backend yet is a real signal to check open issues/PRs before depending on it. It's essentially a straight port of ratatui's surface API with no mention of that lineage, so you're trading ratatui's maturity and ecosystem for a TS wrapper around the same ideas.