A declarative terminal UI kit for Elixir that builds rich text-based applications using an HTML-like DSL.
Ratatouille is a declarative terminal UI kit for Elixir that allows developers to build rich text-based terminal applications using an HTML-like DSL. It solves the problem of creating structured, maintainable terminal interfaces by implementing The Elm Architecture for state management and providing a strict, validated view system.
Elixir developers who need to build terminal-based applications, such as CLI tools, monitoring dashboards, or interactive text interfaces, and prefer a declarative, structured approach over imperative drawing libraries.
Developers choose Ratatouille for its declarative, HTML-like DSL that simplifies UI construction, its strict validation that catches errors early, and its implementation of The Elm Architecture, which brings predictable state management to terminal apps.
A TUI (terminal UI) kit for Elixir
Provides an intuitive, HTML-like syntax with tags like view, row, and column, making UI construction familiar and reducing boilerplate code, as shown in the counter example.
Implements The Elm Architecture with Model-Update-View pattern, ensuring clear state transitions and updates, which fits naturally with Elixir's functional style.
Enforces well-structured view trees and raises descriptive errors for invalid configurations, catching bugs early and simplifying debugging.
Supports text colors, backgrounds, attributes, and handles terminal events like key presses and resizing, enabling rich, interactive UIs without low-level handling.
The roadmap admits incomplete features like configurable charts and uniform styling support, limiting advanced use cases and requiring custom workarounds.
Packaging for distribution is described as 'rough around the edges' and requires additional tools like Distillery for executable releases, adding overhead.
Only a few projects are listed as using it, indicating a small community, fewer third-party libraries, and less shared knowledge or examples.
A toolkit for writing command-line user interfaces.
Command-line progress bars and spinners for Elixir.
Pretty-print tables of Elixir structs and maps.
An Elixir app which generates text-based tables for display
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.