NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Ratzilla (orhun.dev)
kaeso 4 days ago [-]
I think this may lack a bit of context, so I'll try to fill in.

This is a demo that was just showcased live by the author as part of their talk at FOSDEM'25: https://fosdem.org/2025/schedule/event/fosdem-2025-5496-brin...

The talk was centered on Ratatui (a TUI library in Rust, https://ratatui.rs/) now targeting terminals and web browsers with a shared approach. Video recording of the talk should appear online soon.

sixthDot 4 days ago [-]
I'll save your time : project homepage[1]

[1]: https://github.com/orhun/ratzilla

nimbius 4 days ago [-]
[flagged]
agieocean 4 days ago [-]
Nothing to do with autism come on
oddthink 4 days ago [-]
Looks interesting, but it's not at all responsive. I can't view it without making my window larger than my screen and manually sliding it back and forth. Even basic TUIs know their output size. I know it's a UI demo, but that seems pretty basic.

How is this still so hard? Tk basically had this figured out 25 years ago.

weinzierl 4 days ago [-]
It's a super early release and the project itself is pretty fresh, and that's also how it was announced today at FOSDEM, so we can expect improvements.
xg15 4 days ago [-]
Why choose between abusing the browser or the terminal for application GUIs if you can do both at the same time?

(Still looks kind of cool though)

RockRobotRock 4 days ago [-]
Yeah it sounds like the worst of both worlds to me. Still cool!
orhunp_ 3 days ago [-]
OP here, thanks for posting the project. The FOSDEM talk will be also available soon I hope.

I'm planning to focus more on responsiveness and adding more web-only widgets for the next releases. Of course there are a lot of other things to fix & improve :)

Let me know if you have any specific feedback or ideas!

AnonHP 4 days ago [-]
I’m totally ignorant on this and don’t understand. How is WebAssembly helpful for terminal UI apps and why has it been chosen here? Is it mainly for easier cross platform support (with the UI being HTML and then translated for the terminal)? How does it compare on ease of development, testing, maintenance effort, etc., to other terminal UI libraries?
pornel 4 days ago [-]
It's the other way around: there's an existing ratatui library that is pretty nice for making rich terminal UIs, and since ratatui is written in Rust, the easiest way of porting it to the web is through WASM.
weinzierl 4 days ago [-]
Exactly, Ratatui can bring terminal aesthetics to web but it also works the other way around. A lot of the modern terminal aesthetics is inspired by the web. It is not real 80s, more faux 80s.

Ratatui's creator had an excellent talk about this at FOSEM which basically was structured into these two chapters.

https://fosdem.org/2025/schedule/event/fosdem-2025-5496-brin...

wffurr 4 days ago [-]
It's not for terminal UI apps; it's for web apps themed to look like terminal UI apps.
rererereferred 4 days ago [-]
Web app that looks like a terminal, not what I thought at first, a terminal app written in a react-like way (and that people just call web-like).
freemasen 4 days ago [-]
This is amazing, the small iTerm wrapper I wrote for my portfolio/resume tui is going to be a lot easier to maintain/enhance!
ianbutler 4 days ago [-]
We've built a pretty complex CLI using Ratatui and so far we like it a lot. Exciting at the web targets I wasn't aware of this and might make our lives a lot easier for something we want/need to do.
orhunp_ 3 days ago [-]
OP here, that's great! Let me know if you ever try out Ratzilla :)
cmiller1 4 days ago [-]
Switching tabs doesn't seem to overwrite the vertical lines, I have pink and green pipes drawn on the 2nd and 3rd tab that were supposed to only be on the first one.
orhunp_ 3 days ago [-]
yup, we are aware of that bug: https://github.com/orhun/ratzilla/issues/28
cranberryturkey 4 days ago [-]
what the hell is this? it looks sick
assimpleaspossi 4 days ago [-]
You find this everywhere in the tech community. Especially places like github. Posts about software where there is no explanation whatsoever as to what it does or why.
iamwil 4 days ago [-]
It's impossible to explain everything from the beginning. You might not be the target audience and the software/blog post was unwittingly posted. And sometimes, people just put things on the web for shits and giggles with no audience in mind. With no audience in mind, you don't feel the need to explain anything.

Anyway, HN fulfills that need. HN is widely-read that it's likely SOMEONE knows what the hell something is, and if often willing to give a summary. So if you're befuddled, just read the comments.

tempodox 4 days ago [-]
I think that's because the authors are clairvoyant and naively expect us poor souls to be, too.
4 days ago [-]
sixthDot 4 days ago [-]
3eb7988a1663 4 days ago [-]
It is not clear to me - can I seamlessly compile the same codebase to a TUI and web or does it require web-first design?
nicoburns 4 days ago [-]
I think it requires TUI-first design. Then it should seamlessly compile for web.
goku12 4 days ago [-]
I think you're right. The library at the center of this is ratatui - a TUI library for Rust. The web translation layer is new.
cranberryturkey 3 days ago [-]
Can you write in JavaScript or does it have to be rust?
orhunp_ 3 days ago [-]
The primary goal is to serve apps that use https://ratatui.rs to web. You can still bundle Javascript via Trunk though.
miffe 4 days ago [-]
Really needs a framerate limiter, at 360 Hz it's just a flickering mess.
orhunp_ 3 days ago [-]
I would definitely appreciate some ideas on how to do that. Right now we are rendering in a loop created via RequestAnimationFrame
ycombiredd 2 days ago [-]
I swear this isn’t an “rtfm” dig, but in the case that this report of flickering is the first you’ve been made aware of it (and so you haven’t dug into it yet) I recently had to deal with this when experimenting with WebGL for the first time and found this thread to be full of information. https://stackoverflow.com/questions/19764018/controlling-fps... A few of the suggestions “work”, but in the end I went with the accepted answer, only modified to use window.performance.now() rather than Date.now() from the accepted answer.

There are more suggestions that make sense but I haven’t tried that include using multiple threads, calling setInterval/setTimeout in a separate thread for CPU work from the rAF() call (which is GPU and should not update if there is nothing to update) but this wasn’t immediately helpful to me so I went with the elapsed time test and explicit frameRate. There are some potential sync issues over time but they are discussed in the SO thread and additionally on the mozilla developer site, where they also discuss syncing to an audio clock at 60 Hz.

swayvil 4 days ago [-]
This is good art. It really speaks to me.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 16:45:24 GMT+0000 (Coordinated Universal Time) with Vercel.