Show HN: RatatuiRuby wraps Rust Ratatui as a RubyGem – TUIs with the joy of Ruby

22 days ago (ratatui-ruby.dev)

Excited to try it out as well. I often need to build simple CLI based apps in ruby so often would reach for TTY Toolkit: https://ttytoolkit.org/

However, I feel like it's in maintenance mode at this point, so glad to see some new options available.

Landing page is great: informative, visual example, clear code example. Love it

  • Thank you! I wrote the code snippets and picked the color palette, but the web design came by way of https://news.ycombinator.com/item?id=46587284

    And my wife, wonderful as always, helped critique the writing! My RadioMenu class's comments (in the "See More: Inline menu example" expando-section) were far worse before she helped.

I just made a new installer for Discourse on CharmRuby, now I gotta check this out and see if porting is feasible. Hopefully this reduces the app size, that is quite large with CharmRuby

Living the 80s, I guess the current nostalgia wave across tapes, portable CD players, Vynil and co, also applies to computer interfaces.

  • That's gotta be part of it. But I think another important part is how TUIs have important restrictions that lead to surprisingly delightful applications despite their downsides:

    - You don't have control over font size and your color palette can be limited (and chosen by the user in their Terminal settings), so it's hard to go too off-the-rails in aesthetic design

    - You work on a strict character grid, so it's hard to get things like padding, margin, and leading wrong.

    - You can't assume the use of a mouse, so everything has to work on keyboard shortcuts. This usually leads to extremely power-user-friendly tools. Plus, keyboard-driven, power-user-friendly UIs are hot right now, even on the web (Linear, Fernand, etc.).

  • [flagged]

    • Is there any evidence that Rust proponents did it, or are people assuming that because Rene has been critical of Rust? That would be horrible if true, but I'd rather not jump to conclusions that fast.

      1 reply →

Looks exciting!

Does it have proper support for opening an external editor (via $EDITOR like nano, vim, etc?)? I ran into issues with that in Ink and had to switch over to Bubbletea, but I'd love to use Ruby instead of Go

  • Yes! While there's nothing built-in for that, you have full control over when you enter or exit raw mode, so your TUI can support opening an external editor. The TL;DR is you need to call `RatatuiRuby.restore_terminal` before handing off to $EDITOR, and you can call `RatatuiRuby.init_terminal` again to re-enter your TUI.

    Here's an example: https://www.ratatui-ruby.dev/docs/trunk/examples/app_externa...

    Also, if you enjoy Ink and Bubbletea, you probably enjoy MVU. If that's the case, check out the upcoming Rooibos framework I'm building on RatatuiRuby: https://rooibos.run. (Caveat: it doesn't yet have a way to restore/init the terminal, but I clearly need to make that happen.)

I’m gonna look into this. I was originally going to use the curses gem for my ruby tui apps but dealing with straight curses gets annoying quick. Thanks!

I can't like this enough, Ruby is perfect language for TUI apps and emergence of TUI apps is really welcome change.

How significant are AI contributions to this project?