Rooibos Documentation
Build terminal user interfaces with Ruby using The Elm Architecture.
Getting Started
New to Rooibos? Start here.
-
Why Rooibos? — What is a TUI? Why functional state management?
-
Installation — Set up Ruby and add
Rooibosto your project -
Quickstart — Build your first app in 5 minutes
Coming from another ecosystem?
-
For React Developers — Redux →
Rooibosmental model -
For Go Developers — BubbleTea →
Rooibostranslation -
For Python Developers — Textual →
Rooibostranslation -
Ruby Primer — Ruby basics for polyglots
Tutorial
Learn by building a complete File Browser application.
Essentials
Deep-dive into core concepts.
-
The Elm Architecture — Model-View-Update explained
-
Models — Designing state with
Data.define -
Messages — Events and pattern matching
-
Update Functions — Pure state transitions
-
Views — Rendering with RatatuiRuby
-
Commands — Async operations and side effects
-
The Runtime — How
Rooibosruns your app -
Shortcuts —
CmdandMsgaliases
Scaling Up
Advanced patterns for larger applications.
-
Custom Commands — Write your own async commands
-
Command Composition — Chain and parallelize work
-
Fractal Architecture — Nested fragments with
Cmd.map -
Message Routing — The Router DSL
-
Ractor Safety — Future-proof your app
-
Async Patterns — Streaming, polling, websockets
-
Testing — Comprehensive testing strategies
Best Practices
Common UI patterns and recipes.
Troubleshooting
When things go wrong.
-
Common Errors — Error messages and fixes
-
Debugging — Tracing and inspection
-
Performance — Optimization tips
For Contributors
-
Documentation Plan — The roadmap for these docs
-
Documentation Style Guide — How to write docs
-
Design Documents — Architecture decisions
-
Contributing Guidelines: How to contribute patches and features