Readit News logoReadit News
cswilliams · 22 days ago
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.

3eb7988a1663 · 22 days ago
Shouldn't some software be allowed to be done? Maintenance mode on a TUI library seems a reasonable place to be.
cswilliams · 22 days ago
Sure. I was probably trying to be too polite and didn't want to use the word "abandoned", but that's probably a better term for the library at this point. There's a good amount of open issues and PRs in many of the component gems that haven't been addressed in years and requests to help maintain it have gone unanswered[0].

[0] https://github.com/piotrmurach/tty-prompt/issues/210

an0malous · 22 days ago
sure it’s a good TUI library, but is it agentic?
iddan · 22 days ago
Landing page is great: informative, visual example, clear code example. Love it
Kerrick · 22 days ago
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.

xfalcox · 22 days ago
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
pjmlp · 22 days ago
Living the 80s, I guess the current nostalgia wave across tapes, portable CD players, Vynil and co, also applies to computer interfaces.
Kerrick · 22 days ago
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.).

Dead Comment

jarek83 · 22 days ago
It looks great overall, but the example browser is something really special! Never seen such detailed walkthroughs before.
Kerrick · 22 days ago
Thank you very much. I am not proud of the AI slop code [0] it took to get RDoc to generate the HTML for those pages, but I am proud of the result!

[0]: https://git.sr.ht/~kerrick/ratatui_ruby/tree/783a08eabe2307f...

[1]: https://www.ratatui-ruby.dev/docs/v1.0/examples/app_color_pi...

pythonaut_16 · 22 days ago
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

Kerrick · 22 days ago
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.)

riffraff · 22 days ago
I know nothing about this, but bubbletea-ruby was in the news recently

https://github.com/marcoroth/bubbletea-ruby

kasane_teto · 22 days ago
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!
aaronbrethorst · 23 days ago
super cool, great work Kerrick!
Kerrick · 23 days ago
Thank you! My first Show HN in 2012 [0] was an inline TUI (of sorts) written in Ruby [1], so this is a great day.

[0]: https://news.ycombinator.com/item?id=4017933

[1]: https://kerrick.github.io/google/